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

NameTypeRequiredDescription
ticketIdstringRequiredTicket 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.

Projects
/projects
  1. Open a ticket from the table or the board.