Read, update, delete, stream, and publish thread events
Documentation Index
Fetch the complete documentation index at: https://docs.runtools.ai/llms.txt
Use this file to discover all available pages before exploring further.
agent_threads and thread_rollouts for fast listing. Transient deltas are live-only WebSocket frames.
Use threads when you want conversation history, multi-client live updates, compaction, or local Mac runs that publish back into cloud history.
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /v1/threads | agent:read | List visible threads |
GET | /v1/threads/{threadId} | agent:read | Get a thread snapshot |
GET | /v1/threads/{threadId}/events | agent:read | Read durable event history |
GET | /v1/threads/{threadId}/rollouts | agent:read | List compaction rollouts |
PATCH | /v1/threads/{threadId} | agent:run | Rename or archive a thread |
DELETE | /v1/threads/{threadId} | agent:run | Delete a thread |
POST | /v1/threads/{threadId}/compact | agent:run | Request compaction |
limit at 100 for thread lists and 500 for event reads.meta.nextCursor.include=all_rollouts on snapshot or event reads when you need non-active rollout history.api_key or token. The first frame is a snapshot for the owner, or a metadata-only snapshot for admin broader-view access.
Common live frames:
| Frame | Durable? | Description |
|---|---|---|
snapshot | No | Initial full snapshot with protocol_version: 1 |
run_started / run_completed | Yes | Run lifecycle |
user_message / assistant_message | Yes | Final persisted messages |
tool_call / tool_result | Yes | Persisted tool lifecycle and final output |
assistant_message_delta | No | Token deltas |
assistant_thinking_delta | No | Reasoning deltas |
assistant_message_source | No | Source/citation deltas |
tool_call_started / tool_output_delta / tool_call_completed | No | Live tool execution output |
compaction_started / compaction_completed | Yes | Rollout lifecycle |
thread_archived / thread_deleted / thread_renamed | No | Metadata updates |
POST /v1/thread-events. This route requires user or API-key auth and rejects internal service headers.
Durable frame types:
threadId, runId, rolloutId, and a positive sequenceNumber. They fan out to WebSocket subscribers but do not write JSONL or bump durable thread timestamps.
409 THREAD_BUSY.