# List tickets

> `GET` `/v1/tickets`

URL: https://www.agencytitan.com/docs/tag/tickets/GET/v1/tickets

Operation ID: `tickets_list`

Tag: [tickets](https://www.agencytitan.com/docs/tag/tickets.md)

## Description

Returns a paginated list of support tickets for your agency. Supports free-text search, sorting, and filtering by status, client, assigned users, department, inbox, priority, tags, SLA state, and ticket creation time. Repeat array filters to match any of several values.

## Parameters

- `assigned_to` (query, optional, `array<string>`) — Only return tickets assigned to at least one of these user ids (see List users). Optional filter. Omit unless the user asked for it; never guess identifiers.
- `bucket` (query, optional, `string`) — Workspace bucket such as mine, unread, needs_my_edits, or a status bucket. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `client_id` (query, optional, `array<string>`) — Only return tickets linked to one of these clients. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `created_at_from` (query, optional, `string`) — Only return tickets created at or after this timestamp. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `created_at_to` (query, optional, `string`) — Only return tickets created at or before this timestamp. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `department_id` (query, optional, `array<string>`) — Only return tickets in one of these departments. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `inbox_id` (query, optional, `array<string>`) — Only return tickets in one of these current or membership inboxes. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `limit` (query, optional, `integer`) — Maximum number of items to return (1-200).
- `offset` (query, optional, `integer`) — Number of items to skip before collecting the result set.
- `order` (query, optional, `string`) — Sort direction. Default `desc`.
- `priority` (query, optional, `array<string>`) — Only return tickets whose priority matches one of these values. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `search` (query, optional, `string`) — Free-text search filter.
- `sla_first_response_state` (query, optional, `array<string>`) — Only return tickets whose first-response SLA state matches one of these values. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `sla_resolution_state` (query, optional, `array<string>`) — Only return tickets whose resolution SLA state matches one of these values. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `sort` (query, optional, `string`) — Field to sort by. Default `latest_message_at`.
- `status` (query, optional, `array<string>`) — Only return tickets whose status matches one of these values. Optional filter. Omit unless the user asked for it; never guess identifiers.
- `tags` (query, optional, `array<string>`) — Only return tickets carrying at least one of these tags. Optional filter. Omit unless the user asked for it; never guess identifiers.

## Request body

_None_

## Responses

- `200` (`application/json`): Successful response.
  - Type: `object`
  - Properties:
    - `data` (`array<object>`, required)
    - `pagination` (`object`, required)
- `400` (`application/json`): Request validation failed (unknown or out-of-range parameters/properties are rejected).
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `401` (`application/json`): Missing, invalid, expired, or revoked bearer token.
  - Type: `object`
  - Properties:
    - `error` (`string`, required)
    - `error_description` (`string`, required)
- `403` (`application/json`): The authenticated user does not have permission for this operation.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `404` (`application/json`): The requested resource was not found.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `429` (`application/json`): Per-tenant rate limit exceeded (600 requests/minute across all /v1 REST endpoints). The Retry-After header indicates how many seconds to wait.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `500` (`application/json`): An unexpected internal error occurred.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)

## Authentication

- `bearerAuth` — http (bearer) — All /v1 endpoints (except `/v1/openapi.json` and `/v1/llms.txt`) require a bearer token. Two equal first-class paths: (1) an OAuth 2.0 access token from the au…

## Useful links

- Interactive page: https://www.agencytitan.com/docs/tag/tickets/GET/v1/tickets
- API reference home: https://www.agencytitan.com/docs/
- Tag page: https://www.agencytitan.com/docs/tag/tickets.md
- This operation as Markdown: https://www.agencytitan.com/docs/tag/tickets/GET/v1/tickets.md
- OpenAPI JSON: https://www.agencytitan.com/docs/openapi.json
- Full API Markdown: https://api.agencytitan.com/v1/llms.txt
- API keys: https://app.agencytitan.com/settings/api-mcp
