Skip to content

Tickets API

This content is not available in your language yet.

Manage support tickets via the API.

Endpoints

MethodEndpointDescription
GET/ticketsList tickets
POST/ticketsCreate ticket
GET/tickets/:idGet ticket
PATCH/tickets/:idUpdate ticket
DELETE/tickets/:idDelete ticket

List Tickets

Terminal window
GET /api/v1/tickets

Query Parameters

ParameterTypeDescription
statusstringFilter by status: open, pending, resolved, closed
prioritystringFilter by priority: low, normal, high, urgent
assignee_iduuidFilter by assignee
contact_iduuidFilter by contact
company_iduuidFilter by company
label_idsuuid[]Filter by labels (comma-separated)
searchstringSearch subject and messages
created_afterdatetimeTickets created after date
created_beforedatetimeTickets created before date
pageintegerPage number (default: 1)
per_pageintegerItems per page (default: 20, max: 100)

Response

{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"code": "ACME-42",
"subject": "Cannot login to dashboard",
"status": "open",
"priority": "high",
"contact": {
"id": "...",
"name": "John Doe",
"email": "john@example.com"
},
"company": {
"id": "...",
"name": "Acme Corp"
},
"assignee": {
"id": "...",
"name": "Jane Agent"
},
"labels": [
{ "id": "...", "name": "Technical", "color": "#3B82F6" }
],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T14:22:00Z"
}
],
"meta": {
"total": 156,
"page": 1,
"per_page": 20
}
}

Create Ticket

Terminal window
POST /api/v1/tickets

Request Body

{
"subject": "Cannot login to dashboard",
"description": "User reports being unable to login since this morning...",
"contact_id": "contact-uuid",
"priority": "high",
"assignee_id": "user-uuid",
"label_ids": ["label-uuid-1", "label-uuid-2"]
}
FieldTypeRequiredDescription
subjectstringYesTicket subject
descriptionstringNoInitial message body
contact_iduuidYesContact who submitted
prioritystringNolow, normal, high, urgent (default: normal)
assignee_iduuidNoUser to assign
label_idsuuid[]NoLabels to apply

Response

{
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"code": "ACME-43",
"subject": "Cannot login to dashboard",
"status": "open",
"priority": "high",
...
}
}

Get Ticket

Terminal window
GET /api/v1/tickets/:id

Response

Full ticket object including messages and time entries:

{
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"code": "ACME-42",
"subject": "Cannot login to dashboard",
"status": "open",
"priority": "high",
"contact": { ... },
"company": { ... },
"assignee": { ... },
"labels": [ ... ],
"messages": [
{
"id": "...",
"body": "I can't login since this morning...",
"is_internal": false,
"sender": { "name": "John Doe", "email": "john@example.com" },
"created_at": "2024-01-15T10:30:00Z"
}
],
"time_entries": [
{
"id": "...",
"duration_minutes": 30,
"description": "Investigated login issue",
"billable": true,
"user": { "name": "Jane Agent" },
"created_at": "2024-01-15T11:00:00Z"
}
],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T14:22:00Z"
}
}

Update Ticket

Terminal window
PATCH /api/v1/tickets/:id

Request Body

Only include fields you want to update:

{
"status": "pending",
"priority": "normal",
"assignee_id": "new-user-uuid",
"label_ids": ["label-uuid-1"]
}
FieldTypeDescription
subjectstringUpdate subject
statusstringChange status
prioritystringChange priority
assignee_iduuidReassign ticket
label_idsuuid[]Replace labels

Response

Updated ticket object.

Delete Ticket

Terminal window
DELETE /api/v1/tickets/:id

Response

204 No Content

Label Operations

Add Labels

Terminal window
POST /api/v1/tickets/:id/labels
{
"label_ids": ["label-uuid-1", "label-uuid-2"]
}

Remove Labels

Terminal window
DELETE /api/v1/tickets/:id/labels
{
"label_ids": ["label-uuid-1"]
}

Assignment

Assign Ticket

Terminal window
POST /api/v1/tickets/:id/assign
{
"assignee_id": "user-uuid"
}

Unassign Ticket

Terminal window
POST /api/v1/tickets/:id/unassign

Status Transitions

Tickets follow a workflow. Valid transitions:

FromTo
openpending, resolved, closed
pendingopen, resolved, closed
resolvedopen, closed
closedopen

Error Codes

CodeDescription
TICKET_NOT_FOUNDTicket doesn’t exist
CONTACT_NOT_FOUNDContact ID doesn’t exist
INVALID_STATUSInvalid status value
INVALID_PRIORITYInvalid priority value
LABEL_NOT_FOUNDOne or more label IDs don’t exist