---
title: "List chats"
method: GET
path: "/chats"
tags: ["Chats"]
---

# List chats

`GET /chats`

## Request

- Base URL: `https://app.gc.ai/api/external/v1`
- URL: `https://app.gc.ai/api/external/v1/chats`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/gc-ai/apis/gc-ai-external-api/docs/chats/get.ts> (a function with typed inputs; its response is checked against the schema)

List chats visible to the calling token with pagination.

- **Org-scoped tokens**: list chats that are visible to the whole organization. This includes chats that are not access-controlled and chats in an org-visible (non-access-controlled) project. Access-controlled chats stay private to their users.
- **User-scoped tokens**: list chats the user can access (created, shared, or non-access-controlled).

## Query parameters

- `limit` integer: Max items to return (default 100, max 500)
- `offset` integer, nullable: Number of items to skip (default 0)
- `project_id` string, uuid: Filter to chats in a specific project
- `q` string: Search by title (case-insensitive substring)

## Response `200`

Paginated list of chats

- ChatListResponse
  - `chats` ChatResponse[], required
    - `id` string, uuid, required: Unique chat identifier
    - `title` string, nullable, required: Chat title, or null if untitled
    - `summary` string, nullable, required: AI-generated summary, or null
    - `project_id` string, uuid, nullable, required: Associated project ID, or null
    - `is_public` boolean, required: Whether the chat has a public share link
    - `is_access_controlled` boolean, required: When true, only the creator and explicitly granted users can see the chat
    - `source` string, nullable, required: Origin of the chat (web, api, microsoft-word)
    - `created_at` string, required: ISO 8601 creation timestamp
    - `updated_at` string, required: ISO 8601 last-update timestamp
  - `pagination` Pagination, required
    - `limit` number, required: Page size
    - `offset` number, required: Current offset
    - `has_more` boolean, required: Whether more results exist

## Other responses

- `400`: Invalid query parameters
- `401`: Missing or malformed API key
- `403`: Project access required
- `429`: Rate limit exceeded. See [Rate Limits](https://docs.gc.ai/api-reference/concepts/rate-limits) for the tiers, limits, and how to back off.
- `500`: Internal server error
- `503`: Service temporarily unavailable

---

[API](https://skmtc.dev/gc-ai/apis/gc-ai-external-api.md) - [All operations](https://skmtc.dev/gc-ai/apis/gc-ai-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gc-ai/apis/gc-ai-external-api/revisions/2bbdfddf7107?raw)
