Threads are created implicitly. Every call to
POST /v1/chat/completions with a computer_id either continues an existing thread (when thread_id is passed) or creates a new one and returns its ID. Use these endpoints to list, inspect, rename, archive, or delete threads - you rarely need to create them by hand.Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /api/chat/threads?desktopId={id} | List threads for a computer. |
POST | /api/chat/threads | Create an empty thread. |
GET | /api/chat/threads/{id} | Get a thread with full message history. |
PATCH | /api/chat/threads/{id} | Update title, replace messages, archive, or unarchive. |
DELETE | /api/chat/threads/{id} | Delete a thread. |
POST | /api/chat/threads/{id}/title | Auto-generate a title with Claude Haiku. |
https://www.orgo.ai
Auth: Authorization: Bearer sk_live_... on every request.
List threads
Query parameters
UUID of the computer (the
id field from Create computer). Threads are scoped per-computer; to list across computers, call this endpoint once per computer.Response
Array of thread objects, most recent first.
Example
Create thread
POST /v1/chat/completions create one for you.
Request
UUID of the computer to attach the thread to.
Optional client-side identifier. Echoed back as
externalId in the response so clients can reconcile local and remote threads.Response
Returns201 Created.
The new thread’s UUID. Use this as
thread_id in subsequent chat completions.Mirror of
localId from the request. Omitted if not supplied.Example
Get thread
Response
Thread UUID.
active or archived.Title if set, otherwise omitted.
Full message history in chronological order.
Update thread
Request
New human-readable title.
Replaces the entire stored message history with this array. Use with care - this is a full overwrite, not an append.
Set to
true to archive. Archived threads are hidden from default list views but remain fetchable by ID.Set to
true to restore an archived thread.Response
Thread UUID.
Updated status (
active or archived).Updated title if set.
Example
Delete thread
PATCH with archive: true if you might need the conversation back.
Response
Generate title
Request
The messages to summarize. Only the first three are considered. Each message is
{ role, content } where content may be a string or an array of { type: "text", text } blocks.Response
text/plain stream in the assistant-ui format:
GET will include it in the title field.
Using threads with completions
Threads compose with chat completions - you almost never manage them directly in production code:Errors
| Status | Meaning |
|---|---|
| 400 | desktopId or messages missing from the request body. |
| 401 | Missing or invalid Authorization header. |
| 403 | The thread exists but belongs to a different user. |
| 404 | Thread does not exist. |
| 500 | Unexpected server error. Retry with backoff. |
error field: