---
title: "List tickets"
method: GET
path: "/api/v1/tickets"
tags: ["tickets"]
---

# List tickets

`GET /api/v1/tickets`

## Request

- Base URL: `https://app.blueticked.com`
- URL: `https://app.blueticked.com/api/v1/tickets`
- Auth: HTTP bearer

Sync the work queue: every ticket raised by flows, the team, or the API.

Newest first. Page with ?limit= (max 200, default 50) and ?cursor= (the previous page's next_cursor).

The opaque cursor includes an id tie-breaker so tickets created at the same instant are not skipped. Pass it back unchanged. Legacy timestamp cursors remain accepted.

Filter with ?status= (open | in_progress | resolved), ?priority= (low | normal | high | urgent), ?category=, and ?assigned_to= (a workspace user id, or `unassigned`).

`number` is the human reference quoted to customers, unique per workspace, not globally.

`team_id` is the workspace team the ticket is routed to (null when none). `sla_breached_at` is stamped once the ticket outlives the workspace's resolution target (the queue's Overdue chip) and stays null otherwise.

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

Success

- object
  - `data` object[], required
    - `category` string, required
    - `title` string, nullable, required
    - `priority` 'low' | 'normal' | 'high' | 'urgent', required
    - `assigned_to` string, nullable, required
    - `team_id` string, nullable, required
    - `contact_id` string, nullable, required
    - `conversation_id` string, nullable, required
    - `business_id` string, nullable, required
    - `resolved_at` string, nullable, required
    - `sla_breached_at` string, nullable, required
    - `fields` object, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `id` string, uuid, required
    - `number` number, required
    - `status` 'open' | 'in_progress' | 'resolved', required
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required
  - `request_id` string, required

## Other responses

- `400`: Validation failed
- `401`: Unauthorized: missing or invalid API key
- `402`: Insufficient wallet balance
- `403`: Forbidden: scope, plan limit, or suspension
- `404`: Not found
- `409`: Conflict (idempotency-key reuse or resource in use)
- `422`: Understood but refused: the request is well-formed, the action is not permitted for this resource
- `429`: Rate limited
- `500`: Internal error
- `502`: An upstream provider refused or failed the request
- `503`: Channel or send queue unavailable

---

[API](https://skmtc.dev/blueticked/apis/blueticked-api.md) · [All operations](https://skmtc.dev/blueticked/apis/blueticked-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blueticked/apis/blueticked-api/revisions/07132284f4ff?raw)
