Chat history
Read saved chats, their files and captures, and the sessions your computers publish.
| Operation | Request |
|---|---|
| List saved chats | GET /v1/history |
| List history projects | GET /v1/history/projects |
| List computer sessions | GET /v1/history/sessions |
| Publish computer sessions | PUT /v1/history/sessions/computers/{device} |
| Forget computer sessions | DELETE /v1/history/sessions/computers/{device} |
| Read session move requests | GET /v1/history/sessions/computers/{device}/moves |
| Set project session transcripts | PUT /v1/history/sessions/projects/{project}/transcript |
| Read computer session | GET /v1/history/sessions/{id} |
| Upload session transcript | PUT /v1/history/sessions/{id}/messages |
| Set session transcript | PUT /v1/history/sessions/{id}/transcript |
| Read saved capture | GET /v1/history/{id}/captures/{capture} |
| Read saved file | GET /v1/history/{id}/files/{file} |
| Read saved messages | GET /v1/history/{id}/messages |
List saved chats
GET /v1/history · listSavedChats
List your saved chats, newest first, or the chats of one shared project.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | No | |
after | query | string | No | Last public ID from this same list. Empty filtered pages may still have next. ID-order discovery is not a snapshot; restart to find newly inserted earlier IDs. |
project | query | string | No | A currently authorized shared project ID. Omit for all owned chats, including archived. |
Response
200 — A read-only saved page. No hosts are contacted and no seen/send state changes.
Type: HistoryList
| Field | Type | Required | Description |
|---|---|---|---|
data | array of HistorySummary | Yes | |
data[].id | string (uuid) | Yes | |
data[].title | string | Yes | |
data[].revision | integer | Yes | |
data[].updated_unix | integer | Yes | |
data[].pinned_unix | integer or null | Yes | |
data[].archived_unix | integer or null | Yes | |
data[].project | string or null | Yes | |
data[].source | one of "web", "terminal", "phone" | Yes | |
data[].messages | integer | Yes | |
data[].home | ChatHome (string) | No | |
data[].continues | null or ChatPartRef | No | |
data[].continued_by | null or ChatPartRef | No | |
next | string or null | Yes | |
sessions | array of HistorySession | No | Computer sessions, newest first, on the first page only. They never join data or its paging. |
sessions[].id | string (uuid) | Yes | |
sessions[].source | always "session" | Yes | |
sessions[].home | ChatHome (string) | Yes | |
sessions[].title | string | Yes | |
sessions[].computer | string | Yes | |
sessions[].project | string or null | Yes | |
sessions[].folder | string or null | Yes | |
sessions[].status | one of "idle", "working", "awaiting_input", "errored" | Yes | |
sessions[].last_activity_unix | integer | Yes | |
sessions[].updated_unix | integer | Yes | |
sessions[].recap | string | Yes | |
sessions[].online | boolean | Yes | |
sessions[].transcript | boolean | Yes | The transcript is on for this caller, so a copy may be read. |
sessions[].app_link | string or null | Yes | Opens the chat in the OpenAgents app. |
sessions[].continues | null or ChatPartRef | No | |
sessions[].continued_by | null or ChatPartRef | Yes | |
sessions[].agent | string or null | No | The saved agent the session runs; lists show its name with the OpenAgents mark. |
sessions[].home_transfer | boolean | No | This computer can move a chat through its normal continuation path. |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 429, 503 | Invalid page, signed out, denied, missing, changed, throttled, or unavailable. A failure is never an empty success. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
List history projects
GET /v1/history/projects · listHistoryProjects
List the projects your saved chats belong to.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | No | |
after | query | string | No | Last public ID from this same list. Empty filtered pages may still have next. ID-order discovery is not a snapshot; restart to find newly inserted earlier IDs. |
Response
200 — A read-only saved page. No hosts are contacted and no seen/send state changes.
Type: HistoryProjects
| Field | Type | Required | Description |
|---|---|---|---|
data | array of HistoryProject | Yes | |
data[].id | string | Yes | |
data[].name | string | Yes | |
data[].shared | boolean | Yes | |
next | string or null | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 429, 503 | Invalid page, signed out, denied, missing, changed, throttled, or unavailable. A failure is never an empty success. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/projects' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
List computer sessions
GET /v1/history/sessions · listComputerSessions
The caller's computer sessions, newest first, or a project's.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project | query | string | No | A project the caller is in. A shared project lists every member's rows in it. |
Response
200 — Session rows
Type: HistorySessions
| Field | Type | Required | Description |
|---|---|---|---|
data | array of HistorySession | Yes | |
data[].id | string (uuid) | Yes | |
data[].source | always "session" | Yes | |
data[].home | ChatHome (string) | Yes | |
data[].title | string | Yes | |
data[].computer | string | Yes | |
data[].project | string or null | Yes | |
data[].folder | string or null | Yes | |
data[].status | one of "idle", "working", "awaiting_input", "errored" | Yes | |
data[].last_activity_unix | integer | Yes | |
data[].updated_unix | integer | Yes | |
data[].recap | string | Yes | |
data[].online | boolean | Yes | |
data[].transcript | boolean | Yes | The transcript is on for this caller, so a copy may be read. |
data[].app_link | string or null | Yes | Opens the chat in the OpenAgents app. |
data[].continues | null or ChatPartRef | No | |
data[].continued_by | null or ChatPartRef | Yes | |
data[].agent | string or null | No | The saved agent the session runs; lists show its name with the OpenAgents mark. |
data[].home_transfer | boolean | No | This computer can move a chat through its normal continuation path. |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/sessions' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Publish computer sessions
PUT /v1/history/sessions/computers/{device} · publishComputerSessions
A host's current rows for this computer, replacing the ones it published before. Publishing also marks the computer online for 90 seconds.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
device | path | string | Yes |
Request body
Content type: application/json
Type: HistorySessionPublish
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
sessions | array of object | Yes | |
sessions[].id | string (uuid) | Yes | |
sessions[].title | string | Yes | |
sessions[].project | string or null | No | |
sessions[].folder | string or null | No | |
sessions[].status | one of "idle", "working", "awaiting_input", "errored" | Yes | |
sessions[].last_activity_unix | integer | Yes | |
sessions[].recap | string | No | |
sessions[].workspace | string or null | No | |
sessions[].continues | ChatPartRef | No | |
sessions[].continues.id | string (uuid) | Yes | |
sessions[].continues.home | ChatHome (string) | Yes | |
sessions[].agent | string or null | No | The saved agent the session runs. |
sessions[].home_transfer | boolean | No |
Response
200 — The sessions whose transcript is on
Type: object
| Field | Type | Required | Description |
|---|---|---|---|
transcripts | array of string (uuid) | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl -X PUT 'https://api.openagents.com/v1/history/sessions/computers/{device}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"sessions": [
{
"id": "00000000-0000-4000-8000-000000000000",
"title": "string",
"status": "idle",
"last_activity_unix": 0
}
]
}'
In the Rust SDK
Forget computer sessions
DELETE /v1/history/sessions/computers/{device} · forgetComputerSessions
Remove this computer's rows and transcript copies.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
device | path | string | Yes |
Response
200 — Removed
Type: object
| Field | Type | Required | Description |
|---|---|---|---|
removed | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl -X DELETE 'https://api.openagents.com/v1/history/sessions/computers/{device}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Read session move requests
GET /v1/history/sessions/computers/{device}/moves · readSessionMoveRequests
Account-owned requests to continue on the web, plus existing cloud destinations whose local metadata may need repair. The owning computer freezes its old part before claiming the destination through continueChatOnComputer.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
device | path | string | Yes |
Response
200 — Requests for this computer
Type: HistorySessionMoves
| Field | Type | Required | Description |
|---|---|---|---|
moves | array of object | Yes | |
moves[].source | string (uuid) | Yes | |
moves[].target | ChatPartRef | Yes | |
moves[].target.id | string (uuid) | Yes | |
moves[].target.home | ChatHome (string) | Yes | |
moves[].expires_unix | integer | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/sessions/computers/{device}/moves' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Set project session transcripts
PUT /v1/history/sessions/projects/{project}/transcript · setProjectSessionTranscripts
Turn the transcripts of every session in a project on or off. Shared project members read a copy only by this choice.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project | path | string | Yes |
Request body
Content type: application/json
Type: HistorySessionChoice
| Field | Type | Required | Description |
|---|---|---|---|
on | boolean | Yes |
Response
200 — The choice
Type: HistorySessionChoice
| Field | Type | Required | Description |
|---|---|---|---|
on | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl -X PUT 'https://api.openagents.com/v1/history/sessions/projects/{project}/transcript' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"on": false
}'
In the Rust SDK
Read computer session
GET /v1/history/sessions/{id} · readComputerSession
One session row, and its transcript copy when the transcript is on for the caller.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
project | query | string | No | A project the caller is in. A shared project lists every member's rows in it. |
Response
200 — One session
Type: HistorySessionDetail
| Field | Type | Required | Description |
|---|---|---|---|
session | HistorySession | Yes | A computer session's summary. It holds no transcript. |
session.id | string (uuid) | Yes | |
session.source | always "session" | Yes | |
session.home | ChatHome (string) | Yes | |
session.title | string | Yes | |
session.computer | string | Yes | |
session.project | string or null | Yes | |
session.folder | string or null | Yes | |
session.status | one of "idle", "working", "awaiting_input", "errored" | Yes | |
session.last_activity_unix | integer | Yes | |
session.updated_unix | integer | Yes | |
session.recap | string | Yes | |
session.online | boolean | Yes | |
session.transcript | boolean | Yes | The transcript is on for this caller, so a copy may be read. |
session.app_link | string or null | Yes | Opens the chat in the OpenAgents app. |
session.continues | null or ChatPartRef | No | |
session.continued_by | null or ChatPartRef | Yes | |
session.agent | string or null | No | The saved agent the session runs; lists show its name with the OpenAgents mark. |
session.home_transfer | boolean | No | This computer can move a chat through its normal continuation path. |
messages | null or array of HistorySessionMessage | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/sessions/{id}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
In the Rust SDK
Upload session transcript
PUT /v1/history/sessions/{id}/messages · uploadSessionTranscript
Replace the read-only transcript copy. Refused with transcript_off while the transcript is off. Text is bounded and screened.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Request body
Content type: application/json
Type: HistorySessionUpload
| Field | Type | Required | Description |
|---|---|---|---|
messages | array of HistorySessionMessage | Yes | |
messages[].role | one of "user", "assistant", "tool" | Yes | |
messages[].text | string | Yes |
Response
200 — Saved
Type: object
| Field | Type | Required | Description |
|---|---|---|---|
saved | integer | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl -X PUT 'https://api.openagents.com/v1/history/sessions/{id}/messages' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"messages": [
{
"role": "user",
"text": "string"
}
]
}'
In the Rust SDK
Set session transcript
PUT /v1/history/sessions/{id}/transcript · setSessionTranscript
Turn one chat's transcript on or off on the web. Off by default; off deletes the copy.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Request body
Content type: application/json
Type: HistorySessionChoice
| Field | Type | Required | Description |
|---|---|---|---|
on | boolean | Yes |
Response
200 — The choice
Type: object
| Field | Type | Required | Description |
|---|---|---|---|
on | boolean | Yes | |
transcript | boolean | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 404, 409, 429, 503 | Invalid, signed out, missing, transcript off, throttled, or unavailable. | AppAccountError |
Example
curl -X PUT 'https://api.openagents.com/v1/history/sessions/{id}/transcript' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"on": false
}'
In the Rust SDK
Read saved capture
GET /v1/history/{id}/captures/{capture} · readSavedCapture
Download a screen capture saved with a chat.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
capture | path | string (uuid) | Yes |
Response
200 — Saved attachment bytes. Current chat/project authorization is checked; missing saved bytes return 404.
Content type: application/octet-stream
Type: string (binary)
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 429, 503 | Invalid page, signed out, denied, missing, changed, throttled, or unavailable. A failure is never an empty success. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/{id}/captures/{capture}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
Read saved file
GET /v1/history/{id}/files/{file} · readSavedFile
Download a file attached to a saved chat.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
file | path | string | Yes |
Response
200 — Saved attachment bytes. Current chat/project authorization is checked; missing saved bytes return 404.
Content type: application/octet-stream
Type: string (binary)
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 429, 503 | Invalid page, signed out, denied, missing, changed, throttled, or unavailable. A failure is never an empty success. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/{id}/files/{file}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
Read saved messages
GET /v1/history/{id}/messages · readSavedMessages
Read one saved chat's messages, oldest first, a page at a time.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
limit | query | integer | No | |
after | query | string | No | Last public ID from this same list. Empty filtered pages may still have next. ID-order discovery is not a snapshot; restart to find newly inserted earlier IDs. |
revision | query | integer | No | Required with after. A changed transcript returns 409; restart without after. |
Response
200 — A read-only saved page. No hosts are contacted and no seen/send state changes.
Type: HistoryMessages
| Field | Type | Required | Description |
|---|---|---|---|
captures | array of HistoryCapture | Yes | |
captures[].id | string (uuid) | Yes | |
captures[].name | string | Yes | |
captures[].state | one of "saved", "unavailable", "not_saved" | Yes | |
captures[].size | integer or null | Yes | |
captures[].media | string or null | Yes | |
thread | HistorySummary | Yes | |
thread.id | string (uuid) | Yes | |
thread.title | string | Yes | |
thread.revision | integer | Yes | |
thread.updated_unix | integer | Yes | |
thread.pinned_unix | integer or null | Yes | |
thread.archived_unix | integer or null | Yes | |
thread.project | string or null | Yes | |
thread.source | one of "web", "terminal", "phone" | Yes | |
thread.messages | integer | Yes | |
thread.home | ChatHome (string) | No | |
thread.continues | null or ChatPartRef | No | |
thread.continued_by | null or ChatPartRef | No | |
revision | integer | Yes | |
data | array of HistoryMessage | Yes | |
data[].id | string | Yes | |
data[].role | one of "user", "assistant", "tool", "thinking" | Yes | |
data[].text | string | Yes | |
data[].files | array of HistoryFile | Yes | |
data[].files[].id | string | Yes | |
data[].files[].name | string | Yes | |
data[].files[].kind | one of "png", "jpeg", "gif", "webp", "pdf", "text", "step", "stl" | Yes | |
data[].files[].size | integer | Yes | |
data[].tool | HistoryTool (object or null) | Yes | |
data[].tool.name | string | Yes | |
data[].tool.summary | string | Yes | |
data[].tool.status | one of "running", "done", "failed" | Yes | |
data[].tool.input | string | Yes | |
data[].tool.output | string | Yes | |
data[].cards | array of LabCard and object | No | |
data[].cards[].schema | string | No | Default: |
data[].cards[].kind | string | Yes | |
data[].cards[].document | string | Yes | |
data[].cards[].version | integer (uint64) | Yes | |
data[].cards[].title | string | Yes | |
data[].cards[].summary | string | No | Default: |
data[].cards[].state | one of "queued", "running", "done", "failed", "cancelled" or always "uncertain" or null | No | The job the card waits on, if any. Default: |
data[].cards[].state_text | string or null | No | Plain words about the state ("Rendering the preview, about 3 min"). Default: |
data[].cards[].refusal | object or null | No | A change a kind won't accept, with the sentence every surface shows. Default: |
data[].cards[].refusal.code | string | Yes | A stable code clients can branch on ( |
data[].cards[].refusal.message | string | Yes | Plain words, shown as is. |
data[].cards[].view | one of "video", "image", "compare", "model3d", "playable", "report", "none" or always "unknown" | Yes | |
data[].cards[].primary | string or null | No | Artifact ids; clients fetch them through the API with their own access. Default: |
data[].cards[].poster | string or null | No | Default: |
data[].cards[].strip | array of string | No | Default: |
data[].cards[].compare | object or null | No | Default: |
data[].cards[].compare.a | object | Yes | An immutable version, possibly of another kind's document (a CAD part placed in a Robot Lab scene). Reading through it checks access to both. |
data[].cards[].compare.a.document | string | Yes | |
data[].cards[].compare.a.version | integer (uint64) | Yes | |
data[].cards[].compare.b | object | Yes | An immutable version, possibly of another kind's document (a CAD part placed in a Robot Lab scene). Reading through it checks access to both. |
data[].cards[].compare.b.document | string | Yes | |
data[].cards[].compare.b.version | integer (uint64) | Yes | |
data[].cards[].compare.at | object | No | Where in a version a note points. Default: |
data[].cards[].compare.a_primary | string or null | No | Default: |
data[].cards[].compare.b_primary | string or null | No | Default: |
data[].cards[].notes | array of object | No | Default: |
data[].cards[].notes[].locator | object | Yes | Where in a version a note points. |
data[].cards[].notes[].author | string | Yes | |
data[].cards[].notes[].text | string | Yes | |
data[].cards[].page | string or null | No | The kind's deeper page (player, viewport, game). Default: |
data[].cards[].private_local | boolean | No | Set when an input must stay on its host; shown on the card. Default: |
data[].cards[].detail | any | No | Kind-specific; clients that don't know it ignore it. Default: |
data[].cards[].space | string | No | The space used for artifact reads with the reader's own credentials. |
data[].generated_files | array of any | Yes | |
data[].artifacts | array of any | Yes | |
data[].reply | object or null | No | Person-visible cards only; model-routing evidence is not included. |
data[].reply.cards | array of object | No | |
next | string or null | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 429, 503 | Invalid page, signed out, denied, missing, changed, throttled, or unavailable. A failure is never an empty success. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/history/{id}/messages' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"