Chats in the public API are asynchronous. Starting or continuing a conversation returns ids immediately; you poll a single message endpoint until the assistant’sDocumentation Index
Fetch the complete documentation index at: https://dev.chief.bot/llms.txt
Use this file to discover all available pages before exploring further.
response field is present.
Lifecycle overview
There is no lifecycle enum on messages in v1. Treat the appearance ofresponse as completion.
Start a new chat
POST /v1/chats accepts a CreateChatRequest body:
prompt(required) — user message that starts the threadintelligence—auto(default),fast,expert, orresearchprovider—automatic,anthropic,openai, orgoogleskills— array of skill names to preloadpublic_data— setfalseto disable public web search for this turnscope— optional knowledge scope (assets, chats, labels, concepts, projects, views)
202):
GET /v1/chats/{chat_id}/messages/{message_id}.
Append a turn
POST /v1/chats/{id}/messages uses the same optional fields as create, with prompt required. The chat id is in the path.
Response (202):
Read one message
GET /v1/chats/{id}/messages/{mid} returns a Message:
| Field | Notes |
|---|---|
id | Message id |
prompt | User text (markdown); omitted until written |
response | Assistant answer (markdown, final only); omitted until written |
created_at | When the message row was persisted |
List messages (ids only)
GET /v1/chats/{id}/messages returns summaries (id, created_at) without body text. Fetch each message individually for content.
Chat metadata
GET /v1/chats/{id} returns chat_id and optional modified_at (latest message time). It does not include messages.
List chats
GET /v1/chats returns chats newest first with cursor pagination:
| Query | Purpose |
|---|---|
after_id | Pass previous page’s last_id for the next page |
before_id | Paginate backward (mutually exclusive with after_id) |
limit | Page size (1–100, default 25) |
Scoping knowledge
Usescope on create or send to limit what the assistant may consult. Tenancy always comes from X-Project-Id; do not put project ids in scope unless you are explicitly widening to additional projects via scope.project_ids.
Example—question only your uploaded report: