List Chat Conversations

get/v1/chat-conversations

Returns AI chat conversations for the authenticated workspace, newest first. Each conversation captures a chat thread with its mode, page context, and message totals. Read only, cursor paginated. ## Filtering & sorting Filter via `POST /v1/records/query` (root `chat_conversations`) or the `filters` model; operators are gated by each field's data type. See [Filtering & sorting](../filtering-and-sorting). **Filterable fields** | Field | Type | Allowed operators | |---|---|---| | `active_tab_key` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `created_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `deleted_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `message_count` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `mode` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `page_path` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `pk` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `source` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `thread_id` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `title` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `total_tokens` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `updated_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | **Sortable fields:** `active_tab_key`, `created_at`, `deleted_at`, `message_count`, `mode`, `page_path`, `pk`, `source`, `thread_id`, `title`, `total_tokens`, `updated_at` (via `orderBy` / `sort`, `asc`|`desc`).

Requires a bearer token: Authorization: Bearer <token>.

Query parameters

NameTypeRequiredDescription
cursorstringNoOpaque pagination cursor returned in links.next of a previous page. Omit to fetch the first page.e.g. eyJwayI6NTUwfQ
limitintegerNoMaximum number of conversations to return per page.e.g. 25

Request

cURL
curl -X GET https://api.wellapp.ai/v1/chat-conversations \
  -H "Authorization: Bearer $WELL_API_TOKEN"

Responses

200A page of chat conversations.

{
  "data": [
    {
      "type": "chat_conversation",
      "id": "2f3a4b5c-6d7e-4f80-9a1b-2c3d4e5f6a7b",
      "attributes": {
        "title": "Reconcile Mercury inflows for May",
        "thread_id": "9b8a7c6d-5e4f-4031-8271-0a9b8c7d6e5f",
        "mode": "analyst",
        "source": "web",
        "page_path": "/workspaces/foldspace/records/transactions",
        "active_tab_key": "transactions",
        "message_count": 14,
        "total_tokens": 18342,
        "created_at": "2026-06-07T11:05:40.000Z",
        "updated_at": "2026-06-07T11:31:09.000Z"
      }
    }
  ],
  "meta": {
    "total": 1,
    "count": 1
  },
  "links": {
    "next": null
  }
}

400Invalid pagination parameters.

{
  "code": "BAD_REQUEST",
  "status": 400,
  "title": "Bad Request",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

401Missing or invalid bearer token.

{
  "code": "UNAUTHORIZED",
  "status": 401,
  "title": "Unauthorized",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

This resource's related objects (the ones you can include) and how to filter or sort on each:

RelationshipCardinalityFilter on a fieldSort by a field
workspaceto-one (workspace){ "workspace": { "name": { "_eq": … } } }"field": "workspace.name"

Replace field_name with any field of the related object. See its object-reference page for the full field list.

Filter by a to-one relation (and sort by it):

{
  "root": "chat_conversations",
  "whereClause": { "workspace": { "name": { "_ilike": "%acme%" } } },
  "orderBy": { "field": "workspace.name", "direction": "asc" }
}