API reference/Chat and agents
Replay Records
Look back at how a run came together: replay stores prompts, responses, and tool inputs and
results. Durable chat runs write a record automatically under their runId; client-side agents can upload their own.
Only the authenticated account can read its records through these endpoints.
Review before sharing. Credential filtering is best-effort, not anonymization.
redacted: true means the filter ran, not that every sensitive detail was removed.
Keep secrets out of prompts and tool data, and review any record you export or share.
Stores a RunRecord and returns 201. The owner is derived from the authenticated wallet, so clients cannot write into someone else's namespace. Posting the same run_id again replaces the stored record. Malformed JSON or a missing required field returns 400.
#Body
| Name | Type | In | Description |
| schemaVersionrequired | integer | body | RunRecord schema version. Currently 1 or 2. |
| run_idrequired | string | body | Caller-chosen run id (max 128 chars). Uniqueness is per owner. |
| user_requestrequired | string | body | The user prompt or request that triggered the run. |
| roundsrequired | array | body | Recorded model messages, tool calls, and tool results. |
Payload cap. JSON is capped at 1,000,000 UTF-8 bytes (1 MB),
not characters. Larger payloads return 413.
#Response
{
"runId": "run_…",
"schemaVersion": 2,
"redacted": true,
"createTime": 1731950400,
"updateTime": 1731950400
}
Lists recent RunRecords for the caller, newest first. Summaries include the first 1,024 Unicode characters of each prompt and final response. Fetch an individual record for the full text and tool data.
#Query parameters
| Name | Type | In | Description |
| limit | integer | query | Default 50, clamped to 1–200. A non-numeric value returns 400. |
| cursor | string | query | Omit for the first page. Pass the previous response's nextCursor unchanged to fetch the next page; a modified cursor returns 400. Stop when it is null. |
#Response
{
"records": [
{
"runId": "run_…",
"schemaVersion": 2,
"createTime": 1731950400,
"updateTime": 1731950400,
"userRequest": "Storyboard a 5-shot neon teaser.",
"finalResponse": "Here's your storyboard.",
"modelId": "qwen3.6-35b-a3b-gguf-iq4xs",
"rounds": 3
}
],
"nextCursor": null
}
Returns a full RunRecord, suitable for the replay viewer. Unknown ids return 404. The credential filter is applied again when records are read.
#Response
{
"record": { "schemaVersion": 2, "run_id": "run_…", "rounds": [ "…" ] },
"createTime": 1731950400
}