GET
/api/public/v1/tickets/{ticketId}Get a ticket
One work item with its milestone, assignee, labels, and the counts of its checklist items, comments and attachments. A ticket id from another company returns 404 rather than 403.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Dev Tools → API, to an assistant or CLI sign-in when you approve or edit it under Dev Tools, and to a teammate under Employee → Permissions.
projects:read
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ticketId | string | Required | Ticket ID. |
GETExample request
curl
curl -X GET "https://www.pxb.app/api/public/v1/tickets/{ticketId}" \
-H "Authorization: Bearer your_access_token"200Example response
json
{
"message": "Ticket retrieved successfully!",
"content": {
"ticket": {
"id": "tkt_a1b2c3",
"key": "APOLLO-14",
"number": 14,
"title": "Ship the billing export",
"description": "CSV export of the ledger for accountants.",
"status": "PLANNING",
"priority": "HIGH",
"estimate": 5,
"dueDate": "2026-09-15T08:00:00.000Z",
"isOverdue": false,
"project": {
"id": "prj_a1b2c3",
"key": "APOLLO",
"name": "Apollo billing rebuild",
"color": "violet"
},
"type": {
"id": "typ_01",
"name": "Task",
"icon": "CircleCheck",
"color": "blue"
},
"milestone": {
"id": "epc_9f8e",
"name": "Billing",
"color": "violet"
},
"goal": {
"id": "spr_22",
"number": 4,
"year": 2026,
"status": "ACTIVE"
},
"assignee": {
"employeeId": "emp_44f1",
"name": "Dana Reyes",
"email": null,
"avatarUrl": null
},
"creator": {
"employeeId": "emp_12ab",
"name": "Sam Okafor",
"email": null,
"avatarUrl": null
},
"reporter": {
"kind": "CUSTOMER",
"id": "acc_5e2f",
"name": "Priya Nair",
"email": "priya@example.com",
"avatarUrl": null
},
"labels": [
{
"id": "lbl_77",
"name": "customer-request",
"color": "amber"
}
],
"projectId": "prj_a1b2c3",
"typeId": "typ_01",
"milestoneId": "epc_9f8e",
"goalId": "spr_22",
"boardOrder": 0,
"planOrder": 0,
"subtaskCount": 2,
"commentCount": 4,
"attachmentCount": 0,
"linkCount": 1,
"createdAt": "2026-08-01T14:02:00.000Z",
"updatedAt": "2026-08-20T09:41:00.000Z",
"resolvedAt": null
}
}
}404Example response
In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.