---
title: "Search tickets"
method: GET
path: "/v1/tickets/search"
tags: ["tickets"]
---

# Search tickets

`GET /v1/tickets/search`

Find tickets by contact identity, subject, channel value, or message body. This search spans all statuses unless you provide a `status` filter.

## Query parameters

- `workspace_id` string, required — Workspace to query.
- `query` string, required — Search value. Ticket metadata search covers subject, contact identity, and supported channel values. Use `field=message` to search message body text.
- `field` 'any' | 'contact' | 'subject' | 'channel' | 'message' — Search scope. `subject` restricts to the ticket subject, `contact` restricts to the linked contact identity, `channel` restricts to contact channel values, and `message` searches ticket transcripts.
- `limit` integer
- `cursor` string
- `status` 'open' | 'new' | 'pending' | 'resolved' | 'closed' — Optional ticket status filter. `open` searches actionable tickets (`new` + `pending`).
- `inbox_type_id` string
- `waiting_on` 'team' | 'customer' | 'third_party' | 'none'
- `channel` string

## Response `200`

Ticket search results

- object — Cursor-paginated tickets response.
  - `data` object[], required
    - `id` string, required
    - `workspace_id` string, required
    - `contact_id` string, required
    - `conversation_id` string, required
    - `channel` string, required
    - `status` 'new' | 'pending' | 'resolved' | 'closed', required
    - `waiting_on` string, nullable, required
    - `inbox_type_id` string, required
    - `subject` string, nullable, required
    - `summary` string, nullable, required
    - `ai_paused` boolean, required
    - `assignee` object, nullable, required
      - `id` string, required
      - `name` string, required
      - `email` string, required
      - `picture_url` string, nullable, required
    - `follow_up_at` string, nullable, required
    - `last_message_at` string, nullable, required
    - `last_message_preview` string, nullable, required
    - `created_at` string, required
    - `updated_at` string, required
    - `call_transcript_id` string, nullable, required
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Forbidden
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/conduit/apis/conduit-api.md) · [All operations](https://skmtc.dev/conduit/apis/conduit-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conduit/conduit-api/revisions/3ad7e17f96ad/schema)
