One turn: the agent reads input (and any attachments) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without conversation_id a new conversation starts. Waits up to 55 seconds; a turn still running then comes back in_progress (poll GET /v1/responses/). With stream: true the answer is server-sent events: response.created; output_text.delta (text: the next piece of the reply as the model writes it; output_text.reset takes back what a failed try streamed); message.delta (each whole message once written); tool_call.started, tool_call.completed (a code run’s has files: what the code made); ui (a form: surface_id, title, fields, a2ui; the turn ends after it); task.started (task_id, goal, kind: browser or desktop, computer for a desktop task, plan: the steps the person sees as its progress, the browser’s session_id, and live_url: its live view in the console), task.step (text: what it says it’s doing now, and with a plan plan_step: the step it’s on), task.completed; input.delivered (messages sent meanwhile, read); with visual answers on, answer.layout first (its answer may be laid out as UI) and message.view (seq, view: that answer laid out as cards, before the reply ends; its text is still the answer); then response.completed, response.failed, response.cancelled, or response.requires_action (response: the reply, paused on a request in its output). A message sent while a reply is still running is queued for that reply instead: 202 at once (streamed or not), with the reply as it is now and queued_message (your message’s item, queued: true). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/. Its stream has input.delivered (seqs: the items read, to: reply or task) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with status: failed. If a deploy hands a streamed turn to another server, the stream can close without a response.* event: follow it with GET /v1/responses/. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with approval: "always", or a step one of its tasks hands back: the task is paused until it’s decided, then carries on) pauses: status: requires_action, with the request (an approval item) in output. Decide it with conversation_id and approval (or an A2UI action on its surface), and no input; a question is answered the same way with answer. Your team decides, as the API key or the member signed in. The same reply carries on (same id), streamed with stream: true; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: { object: "decision", approval | question }. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations//decisions. Someone deciding first: 409 with code: already_decided and decided_by.
What the person says, up to 8,000 characters. Can be empty when the message has attachments or answers a form (action), and is left out with a decision (approval, answer).
For a new conversation (no conversation_id), the agent's first message, shown as said before the person wrote and recorded as the agent's. Used only when the agent has no first message of its own.
For a new conversation (no conversation_id): what it starts knowing, like { "customer_name": "Ana", "account_id": "A-77" }. Names are lowercase letters, numbers and _ (up to 40), values text up to 1,000 characters. The agent reads them with Eager's own (current_date, current_time, day_of_week, time_zone, language, channel, conversation_id, agent_name, and where known caller_number, agent_number, page_url, user_name, user_email) and doesn't ask for them; a procedure's input of the same name is taken as given. Eager's own names can't be passed, except time_zone (an IANA zone; the date and time are where the person is) and language. Sent with a conversation_id, it's a 400.
Files the person attached: upload ids (upl_…) from POST /v1/uploads, up to 10. Images and PDFs the model sees, text files it reads; any other file needs Run code (tools.code, Claude or GPT models). A file sent in one conversation can’t be sent in another.
Answers a form the agent showed (a ui item): { name: "submit", surfaceId, context: { <field id>: value } }, or the same wrapped as { version: "v0.9", action }. Needs conversation_id. The answers reach the agent as the person’s message; input, if sent too, is added after them. 404 for an unknown form, 409 if it was answered already. Or decides a request, as approval and answer do: on an approval item’s surface (surface_id), name is approve or deny; on a question item’s, its form’s submit (context: { answer: ["<option>"] }, or { answer: "<text>" } with no options).
requires_action: paused on a request in output (an approval or question item) until someone decides it. Send the decision to POST /v1/agents/{agent_id}/responses (approval, answer, or an A2UI action on its surface), and this same response carries on.
What the reply used, set when it ends (empty until then). Its tokens are paid from the balance at the model’s price, rounded up to a whole cent per reply. The browser and desktop tasks it started are charged as tasks.
Only when your message was queued (202): its item.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Eager","description":"Train AI agents like new hires: hand an agent your files and coach it, and it writes its own procedures and works in any software, even without an API.","colors":{"primary":"#183B2B","light":"#C9EE6A","dark":"#183B2B"},"logo":{"light":"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/light.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=e586dcc65be9b0c262b28f3c88841ebd","dark":"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/dark.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=47ef805b722f3fb6888488a040c99a9b","href":"https://guidinghand.ai"},"favicon":"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/favicon.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=825f6431fe8735610a0d5b4d82b094ef","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"links":[{"href":"https://guidinghand.ai/console","label":"Console"}],"primary":{"type":"button","label":"Get an API key","href":"https://guidinghand.ai/console"}},"footer":{"socials":{"website":"https://guidinghand.ai"}},"fonts":{"heading":{"family":"Instrument Serif","weight":400},"body":{"family":"Geist"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"guiding-hand","hasAudioNarration":false,"actualSubdomain":"guiding-hand","customDomains":["docs.guidinghand.ai"],"gitSource":{"type":"github","owner":"chaowss","repo":"guidinghand","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6add309dc712644f43433dab","collectionId":"4389e879-6cd8-4a16-a557-fa3f3063eaee","liveDeploymentHistoryId":"6add309dc712644f43433dab","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6add309dc712644f43433dab","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API reference","count":326},{"language":"default","tag":"Documentation","count":26},{"language":"default","tag":"Agent tools","count":16},{"language":"default","tag":"Agents","count":15},{"language":"default","tag":"Phone numbers","count":12},{"language":"default","tag":"Test runs","count":11},{"language":"default","tag":"Computers","count":10},{"language":"default","tag":"Procedures","count":10},{"language":"default","tag":"Schedules","count":10},{"language":"default","tag":"Start states","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/responses/send-a-message-to-an-agent","slug":"/api-reference/responses/send-a-message-to-an-agent","pageMetadata":{"title":"Send a message to an agent","description":"One turn: the agent reads `input` (and any `attachments`) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without `conversation_id` a new conversation starts. Waits up to 55 seconds; a turn still running then comes back `in_progress` (poll GET /v1/responses/{id}). With `stream: true` the answer is server-sent events: `response.created`; `output_text.delta` (`text`: the next piece of the reply as the model writes it; `output_text.reset` takes back what a failed try streamed); `message.delta` (each whole message once written); `tool_call.started`, `tool_call.completed` (a code run’s has `files`: what the code made); `ui` (a form: `surface_id`, `title`, `fields`, `a2ui`; the turn ends after it); `task.started` (`task_id`, `goal`, `kind`: `browser` or `desktop`, `computer` for a desktop task, `plan`: the steps the person sees as its progress, the browser’s `session_id`, and `live_url`: its live view in the console), `task.step` (`text`: what it says it's doing now, and with a plan `plan_step`: the step it's on), `task.completed`; `input.delivered` (messages sent meanwhile, read); with visual answers on, `answer.layout` first (its answer may be laid out as UI) and `message.view` (`seq`, `view`: that answer laid out as cards, before the reply ends; its text is still the answer); then `response.completed`, `response.failed`, `response.cancelled`, or `response.requires_action` (`response`: the reply, paused on a request in its `output`). A message sent while a reply is still running is queued for that reply instead: `202` at once (streamed or not), with the reply as it is now and `queued_message` (your message’s item, `queued: true`). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has `input.delivered` (`seqs`: the items read, `to`: `reply` or `task`) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with `status: failed`. If a deploy hands a streamed turn to another server, the stream can close without a `response.*` event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with `approval: \"always\"`, or a step one of its tasks hands back: the task is `paused` until it’s decided, then carries on) pauses: `status: requires_action`, with the request (an `approval` item) in `output`. Decide it with `conversation_id` and `approval` (or an A2UI `action` on its surface), and no `input`; a question is answered the same way with `answer`. Your team decides, as the API key or the member signed in. The same reply carries on (same `id`), streamed with `stream: true`; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: `{ object: \"decision\", approval | question }`. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with `code: already_decided` and `decided_by`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/responses","href":"/api-reference/responses/send-a-message-to-an-agent","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"One turn: the agent reads \", _jsx(_components.code, {\n children: \"input\"\n }), \" (and any \", _jsx(_components.code, {\n children: \"attachments\"\n }), \") and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without \", _jsx(_components.code, {\n children: \"conversation_id\"\n }), \" a new conversation starts. Waits up to 55 seconds; a turn still running then comes back \", _jsx(_components.code, {\n children: \"in_progress\"\n }), \" (poll GET /v1/responses/\", \"). With \", _jsx(_components.code, {\n children: \"stream: true\"\n }), \" the answer is server-sent events: \", _jsx(_components.code, {\n children: \"response.created\"\n }), \"; \", _jsx(_components.code, {\n children: \"output_text.delta\"\n }), \" (\", _jsx(_components.code, {\n children: \"text\"\n }), \": the next piece of the reply as the model writes it; \", _jsx(_components.code, {\n children: \"output_text.reset\"\n }), \" takes back what a failed try streamed); \", _jsx(_components.code, {\n children: \"message.delta\"\n }), \" (each whole message once written); \", _jsx(_components.code, {\n children: \"tool_call.started\"\n }), \", \", _jsx(_components.code, {\n children: \"tool_call.completed\"\n }), \" (a code run’s has \", _jsx(_components.code, {\n children: \"files\"\n }), \": what the code made); \", _jsx(_components.code, {\n children: \"ui\"\n }), \" (a form: \", _jsx(_components.code, {\n children: \"surface_id\"\n }), \", \", _jsx(_components.code, {\n children: \"title\"\n }), \", \", _jsx(_components.code, {\n children: \"fields\"\n }), \", \", _jsx(_components.code, {\n children: \"a2ui\"\n }), \"; the turn ends after it); \", _jsx(_components.code, {\n children: \"task.started\"\n }), \" (\", _jsx(_components.code, {\n children: \"task_id\"\n }), \", \", _jsx(_components.code, {\n children: \"goal\"\n }), \", \", _jsx(_components.code, {\n children: \"kind\"\n }), \": \", _jsx(_components.code, {\n children: \"browser\"\n }), \" or \", _jsx(_components.code, {\n children: \"desktop\"\n }), \", \", _jsx(_components.code, {\n children: \"computer\"\n }), \" for a desktop task, \", _jsx(_components.code, {\n children: \"plan\"\n }), \": the steps the person sees as its progress, the browser’s \", _jsx(_components.code, {\n children: \"session_id\"\n }), \", and \", _jsx(_components.code, {\n children: \"live_url\"\n }), \": its live view in the console), \", _jsx(_components.code, {\n children: \"task.step\"\n }), \" (\", _jsx(_components.code, {\n children: \"text\"\n }), \": what it says it’s doing now, and with a plan \", _jsx(_components.code, {\n children: \"plan_step\"\n }), \": the step it’s on), \", _jsx(_components.code, {\n children: \"task.completed\"\n }), \"; \", _jsx(_components.code, {\n children: \"input.delivered\"\n }), \" (messages sent meanwhile, read); with visual answers on, \", _jsx(_components.code, {\n children: \"answer.layout\"\n }), \" first (its answer may be laid out as UI) and \", _jsx(_components.code, {\n children: \"message.view\"\n }), \" (\", _jsx(_components.code, {\n children: \"seq\"\n }), \", \", _jsx(_components.code, {\n children: \"view\"\n }), \": that answer laid out as cards, before the reply ends; its text is still the answer); then \", _jsx(_components.code, {\n children: \"response.completed\"\n }), \", \", _jsx(_components.code, {\n children: \"response.failed\"\n }), \", \", _jsx(_components.code, {\n children: \"response.cancelled\"\n }), \", or \", _jsx(_components.code, {\n children: \"response.requires_action\"\n }), \" (\", _jsx(_components.code, {\n children: \"response\"\n }), \": the reply, paused on a request in its \", _jsx(_components.code, {\n children: \"output\"\n }), \"). A message sent while a reply is still running is queued for that reply instead: \", _jsx(_components.code, {\n children: \"202\"\n }), \" at once (streamed or not), with the reply as it is now and \", _jsx(_components.code, {\n children: \"queued_message\"\n }), \" (your message’s item, \", _jsx(_components.code, {\n children: \"queued: true\"\n }), \"). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/\", \". Its stream has \", _jsx(_components.code, {\n children: \"input.delivered\"\n }), \" (\", _jsx(_components.code, {\n children: \"seqs\"\n }), \": the items read, \", _jsx(_components.code, {\n children: \"to\"\n }), \": \", _jsx(_components.code, {\n children: \"reply\"\n }), \" or \", _jsx(_components.code, {\n children: \"task\"\n }), \") when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with \", _jsx(_components.code, {\n children: \"status: failed\"\n }), \". If a deploy hands a streamed turn to another server, the stream can close without a \", _jsx(_components.code, {\n children: \"response.*\"\n }), \" event: follow it with GET /v1/responses/\", \". A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with \", _jsx(_components.code, {\n children: \"approval: \\\"always\\\"\"\n }), \", or a step one of its tasks hands back: the task is \", _jsx(_components.code, {\n children: \"paused\"\n }), \" until it’s decided, then carries on) pauses: \", _jsx(_components.code, {\n children: \"status: requires_action\"\n }), \", with the request (an \", _jsx(_components.code, {\n children: \"approval\"\n }), \" item) in \", _jsx(_components.code, {\n children: \"output\"\n }), \". Decide it with \", _jsx(_components.code, {\n children: \"conversation_id\"\n }), \" and \", _jsx(_components.code, {\n children: \"approval\"\n }), \" (or an A2UI \", _jsx(_components.code, {\n children: \"action\"\n }), \" on its surface), and no \", _jsx(_components.code, {\n children: \"input\"\n }), \"; a question is answered the same way with \", _jsx(_components.code, {\n children: \"answer\"\n }), \". Your team decides, as the API key or the member signed in. The same reply carries on (same \", _jsx(_components.code, {\n children: \"id\"\n }), \"), streamed with \", _jsx(_components.code, {\n children: \"stream: true\"\n }), \"; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: \", _jsx(_components.code, {\n children: \"{ object: \\\"decision\\\", approval | question }\"\n }), \". To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/\", \"/decisions. Someone deciding first: 409 with \", _jsx(_components.code, {\n children: \"code: already_decided\"\n }), \" and \", _jsx(_components.code, {\n children: \"decided_by\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Send a message to an agent","description":"One turn: the agent reads `input` (and any `attachments`) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without `conversation_id` a new conversation starts. Waits up to 55 seconds; a turn still running then comes back `in_progress` (poll GET /v1/responses/{id}). With `stream: true` the answer is server-sent events: `response.created`; `output_text.delta` (`text`: the next piece of the reply as the model writes it; `output_text.reset` takes back what a failed try streamed); `message.delta` (each whole message once written); `tool_call.started`, `tool_call.completed` (a code run’s has `files`: what the code made); `ui` (a form: `surface_id`, `title`, `fields`, `a2ui`; the turn ends after it); `task.started` (`task_id`, `goal`, `kind`: `browser` or `desktop`, `computer` for a desktop task, `plan`: the steps the person sees as its progress, the browser’s `session_id`, and `live_url`: its live view in the console), `task.step` (`text`: what it says it's doing now, and with a plan `plan_step`: the step it's on), `task.completed`; `input.delivered` (messages sent meanwhile, read); with visual answers on, `answer.layout` first (its answer may be laid out as UI) and `message.view` (`seq`, `view`: that answer laid out as cards, before the reply ends; its text is still the answer); then `response.completed`, `response.failed`, `response.cancelled`, or `response.requires_action` (`response`: the reply, paused on a request in its `output`). A message sent while a reply is still running is queued for that reply instead: `202` at once (streamed or not), with the reply as it is now and `queued_message` (your message’s item, `queued: true`). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has `input.delivered` (`seqs`: the items read, `to`: `reply` or `task`) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with `status: failed`. If a deploy hands a streamed turn to another server, the stream can close without a `response.*` event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with `approval: \"always\"`, or a step one of its tasks hands back: the task is `paused` until it’s decided, then carries on) pauses: `status: requires_action`, with the request (an `approval` item) in `output`. Decide it with `conversation_id` and `approval` (or an A2UI `action` on its surface), and no `input`; a question is answered the same way with `answer`. Your team decides, as the API key or the member signed in. The same reply carries on (same `id`), streamed with `stream: true`; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: `{ object: \"decision\", approval | question }`. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with `code: already_decided` and `decided_by`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/responses","href":"/api-reference/responses/send-a-message-to-an-agent","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Responses"],"summary":"Send a message to an agent","operationId":"createResponse","description":"One turn: the agent reads `input` (and any `attachments`) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without `conversation_id` a new conversation starts. Waits up to 55 seconds; a turn still running then comes back `in_progress` (poll GET /v1/responses/{id}). With `stream: true` the answer is server-sent events: `response.created`; `output_text.delta` (`text`: the next piece of the reply as the model writes it; `output_text.reset` takes back what a failed try streamed); `message.delta` (each whole message once written); `tool_call.started`, `tool_call.completed` (a code run’s has `files`: what the code made); `ui` (a form: `surface_id`, `title`, `fields`, `a2ui`; the turn ends after it); `task.started` (`task_id`, `goal`, `kind`: `browser` or `desktop`, `computer` for a desktop task, `plan`: the steps the person sees as its progress, the browser’s `session_id`, and `live_url`: its live view in the console), `task.step` (`text`: what it says it's doing now, and with a plan `plan_step`: the step it's on), `task.completed`; `input.delivered` (messages sent meanwhile, read); with visual answers on, `answer.layout` first (its answer may be laid out as UI) and `message.view` (`seq`, `view`: that answer laid out as cards, before the reply ends; its text is still the answer); then `response.completed`, `response.failed`, `response.cancelled`, or `response.requires_action` (`response`: the reply, paused on a request in its `output`). A message sent while a reply is still running is queued for that reply instead: `202` at once (streamed or not), with the reply as it is now and `queued_message` (your message’s item, `queued: true`). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has `input.delivered` (`seqs`: the items read, `to`: `reply` or `task`) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with `status: failed`. If a deploy hands a streamed turn to another server, the stream can close without a `response.*` event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with `approval: \"always\"`, or a step one of its tasks hands back: the task is `paused` until it’s decided, then carries on) pauses: `status: requires_action`, with the request (an `approval` item) in `output`. Decide it with `conversation_id` and `approval` (or an A2UI `action` on its surface), and no `input`; a question is answered the same way with `answer`. Your team decides, as the API key or the member signed in. The same reply carries on (same `id`), streamed with `stream: true`; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: `{ object: \"decision\", approval | question }`. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with `code: already_decided` and `decided_by`.","requestBody":"a5bd074f-3c46-4423-9c97-b05c7ecdeef8","responses":{"200":"d6c1d4a3-b5f9-49bf-9cdc-698364ac4360","202":"b63b7cb1-7a03-4d1a-8d4a-aeb08881c213","400":"489fb43d-0dc7-4791-99c2-dc1eee232fca","402":"c4856dd4-0257-473a-a440-7b512394bac3","404":"36dc69ae-fd5b-41bd-8676-ba77fa2abe54","409":"1434227e-300d-4a8e-9ab5-6eee32a8876d","503":"50316e69-6ca0-42e2-a403-6204a24db70d"},"method":"post","type":"path","servers":["85e29cb7-6717-4fc8-a547-7f631658d89f","9a2e9bd4-a985-4b06-b2e6-6058cff49185"],"security":["19caf6ec-6aee-430b-b1b4-3f12500d5525"],"path":"/v1/agents/{agent_id}/responses","baseUrlOptions":["https://guidinghand.ai","https://dev.guidinghand.ai"],"title":"Send a message to an agent","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"38a924a6-3e9e-45b8-9ef0-22b39516ea39":{"name":"agent_id","in":"path","required":true,"description":"The agent’s id, e.g. `billing`.","schema":{"type":"string","isRequired":true,"description":"The agent’s id, e.g. `billing`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"string","maxLength":8000,"description":"What the person says, up to 8,000 characters. Can be empty when the message has attachments or answers a form (`action`), and is left out with a decision (`approval`, `answer`).","uniqueKey":"input","typeLabel":"string"},"conversation_id":{"type":"string","uniqueKey":"conversation_id","typeLabel":"string"},"opening":{"type":"string","maxLength":500,"description":"For a new conversation (no conversation_id), the agent's first message, shown as said before the person wrote and recorded as the agent's. Used only when the agent has no first message of its own.","uniqueKey":"opening","typeLabel":"string"},"variables":{"type":"object","maxProperties":50,"additionalProperties":{"oneOf":[{"type":"string","maxLength":1000,"uniqueKey":"variables.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","maxLength":1000,"uniqueKey":"variables.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","maxLength":1000,"uniqueKey":"variables.additionalProperties.oneOf.2","typeLabel":"boolean"}],"uniqueKey":"variables.additionalProperties","typeLabel":"string | number | boolean"},"description":"For a new conversation (no conversation_id): what it starts knowing, like `{ \"customer_name\": \"Ana\", \"account_id\": \"A-77\" }`. Names are lowercase letters, numbers and _ (up to 40), values text up to 1,000 characters. The agent reads them with Eager's own (`current_date`, `current_time`, `day_of_week`, `time_zone`, `language`, `channel`, `conversation_id`, `agent_name`, and where known `caller_number`, `agent_number`, `page_url`, `user_name`, `user_email`) and doesn't ask for them; a procedure's input of the same name is taken as given. Eager's own names can't be passed, except `time_zone` (an IANA zone; the date and time are where the person is) and `language`. Sent with a conversation_id, it's a 400.","uniqueKey":"variables","typeLabel":"object"},"stream":{"type":"boolean","uniqueKey":"stream","typeLabel":"boolean"},"version":{"oneOf":[{"description":"`draft`, or a version number, for this turn only. Default: the published version.","const":"draft","uniqueKey":"version.oneOf.0","typeLabel":"any"},{"type":"integer","description":"`draft`, or a version number, for this turn only. Default: the published version.","uniqueKey":"version.oneOf.1","typeLabel":"integer"}],"uniqueKey":"version","typeLabel":"any | integer"},"metadata":{"type":"object","description":"Your own values for a new conversation (a JSON object, up to 4,000 characters). Only used when the conversation is created.","uniqueKey":"metadata","typeLabel":"object"},"attachments":{"type":"array","maxItems":10,"items":{"type":"string","uniqueKey":"attachments.items.[INDEX]","typeLabel":"string"},"description":"Files the person attached: upload ids (`upl_…`) from POST /v1/uploads, up to 10. Images and PDFs the model sees, text files it reads; any other file needs Run code (`tools.code`, Claude or GPT models). A file sent in one conversation can’t be sent in another.","uniqueKey":"attachments","typeLabel":"string[]"},"action":{"type":"object","description":"Answers a form the agent showed (a `ui` item): `{ name: \"submit\", surfaceId, context: { \u003cfield id>: value } }`, or the same wrapped as `{ version: \"v0.9\", action }`. Needs `conversation_id`. The answers reach the agent as the person’s message; `input`, if sent too, is added after them. 404 for an unknown form, 409 if it was answered already. Or decides a request, as `approval` and `answer` do: on an `approval` item’s surface (`surface_id`), `name` is `approve` or `deny`; on a `question` item’s, its form’s `submit` (`context: { answer: [\"\u003coption>\"] }`, or `{ answer: \"\u003ctext>\" }` with no options).","properties":{"surfaceId":{"type":"string","isRequired":true,"uniqueKey":"action.surfaceId","typeLabel":"string"},"name":{"type":"string","enum":["submit","approve","deny"],"uniqueKey":"action.name","typeLabel":"enum\u003cstring>"},"context":{"type":"object","uniqueKey":"action.context","typeLabel":"object"}},"required":["surfaceId"],"uniqueKey":"action","typeLabel":"object"},"approval":{"type":"object","description":"Decides an `approval` item of the conversation (its `approval_id`): needs `conversation_id`, and no `input`. The reply that paused for it carries on.","required":["approval_id","decision"],"properties":{"approval_id":{"type":"string","isRequired":true,"uniqueKey":"approval.approval_id","typeLabel":"string"},"decision":{"type":"string","enum":["approve","deny"],"isRequired":true,"uniqueKey":"approval.decision","typeLabel":"enum\u003cstring>"},"note":{"type":"string","maxLength":500,"description":"For the agent: why, or what to do instead.","uniqueKey":"approval.note","typeLabel":"string"}},"uniqueKey":"approval","typeLabel":"object"},"answer":{"type":"object","description":"Answers a `question` item of the conversation (its `question_id`): needs `conversation_id`, and no `input`.","required":["question_id","answer"],"properties":{"question_id":{"type":"string","isRequired":true,"uniqueKey":"answer.question_id","typeLabel":"string"},"answer":{"type":"string","maxLength":4000,"isRequired":true,"uniqueKey":"answer.answer","typeLabel":"string"}},"uniqueKey":"answer","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"input":"\u003cstring>","conversation_id":"\u003cstring>","opening":"\u003cstring>","variables":{},"stream":true,"version":"draft","metadata":{},"attachments":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"d6c1d4a3-b5f9-49bf-9cdc-698364ac4360":{"description":"The turn (or, streamed, its events). A decision: the reply it carries on, or with no paused reply, the decision.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"object":{"const":"response","uniqueKey":"oneOf.0.object","typeLabel":"any"},"id":{"type":"string","example":"resp_…","uniqueKey":"oneOf.0.id","typeLabel":"string"},"conversation_id":{"type":"string","uniqueKey":"oneOf.0.conversation_id","typeLabel":"string"},"status":{"type":"string","enum":["in_progress","requires_action","completed","failed","cancelled"],"description":"`requires_action`: paused on a request in `output` (an `approval` or `question` item) until someone decides it. Send the decision to POST /v1/agents/{agent_id}/responses (`approval`, `answer`, or an A2UI `action` on its surface), and this same response carries on.","uniqueKey":"oneOf.0.status","typeLabel":"enum\u003cstring>"},"error":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.error.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.error.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.error","typeLabel":"string | null"},"output":{"type":"array","items":{"type":"object","description":"One item of a conversation. `type` says which fields it has.","properties":{"object":{"const":"conversation_item","uniqueKey":"oneOf.0.output.items.[INDEX].object","typeLabel":"any"},"seq":{"type":"integer","uniqueKey":"oneOf.0.output.items.[INDEX].seq","typeLabel":"integer"},"response_id":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].response_id","typeLabel":"string"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.output.items.[INDEX].at","typeLabel":"string\u003cdate-time>"},"type":{"type":"string","enum":["user_message","assistant_message","tool_call","tool_result","task","ui","approval","question","speech"],"uniqueKey":"oneOf.0.output.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"user_message, assistant_message, speech.","uniqueKey":"oneOf.0.output.items.[INDEX].text","typeLabel":"string"},"speaker":{"type":"string","enum":["caller","agent"],"description":"speech: who said the line on a phone call.","uniqueKey":"oneOf.0.output.items.[INDEX].speaker","typeLabel":"enum\u003cstring>"},"queued":{"type":"boolean","description":"user_message: sent while a reply was running, and not read by the agent yet. Absent once it is.","uniqueKey":"oneOf.0.output.items.[INDEX].queued","typeLabel":"boolean"},"view":{"type":"object","description":"assistant_message: the answer laid out as UI, when that reads better than text (visual answers, `tools.visual`): sections, each a card when it has a `title` (and maybe a `badge`), of blocks. Block types: `text` (text), `facts` (items: label, value), `table` (columns, rows), `options` (items: title, label, price, detail, points, pick: what the person says by choosing it), `list` (style bullet, check or number; items), `callout` (tone, text), `badges` (items: text, tone), `bars` (items: label, value), `buttons` (items: label, message: what the person says by pressing it). Tones: neutral, good, warning, bad, info. Every figure in it is one of the text’s; the text stays the answer.","properties":{"version":{"type":"integer","const":1,"uniqueKey":"oneOf.0.output.items.[INDEX].view.version","typeLabel":"integer"},"sections":{"type":"array","items":{"type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text","facts","table","options","list","callout","badges","bars","buttons"],"isRequired":true,"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].blocks","typeLabel":"object[]"},"title":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].title","typeLabel":"string"},"badge":{"type":"object","properties":{"text":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].badge.text","typeLabel":"string"},"tone":{"type":"string","enum":["neutral","good","warning","bad","info"],"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].badge.tone","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX].badge","typeLabel":"object"}},"required":["blocks"],"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.output.items.[INDEX].view.sections","typeLabel":"object[]"}},"uniqueKey":"oneOf.0.output.items.[INDEX].view","typeLabel":"object"},"call_id":{"type":"string","description":"tool_call, tool_result.","uniqueKey":"oneOf.0.output.items.[INDEX].call_id","typeLabel":"string"},"name":{"type":"string","description":"tool_call, tool_result: the tool. Code runs (Run code) are `bash_code_execution` (`arguments.command`) or `text_editor_code_execution` (`arguments.command`, `path`, `file_text`…) on Claude models, `code_interpreter` (`arguments.code`) on GPT models and `code_execution` (`arguments.code`) on Gemini models.","uniqueKey":"oneOf.0.output.items.[INDEX].name","typeLabel":"string"},"arguments":{"type":"object","uniqueKey":"oneOf.0.output.items.[INDEX].arguments","typeLabel":"object"},"label":{"oneOf":[{"type":"string","description":"tool_call: what it did, in plain words.","uniqueKey":"oneOf.0.output.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","description":"tool_call: what it did, in plain words.","uniqueKey":"oneOf.0.output.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].label","typeLabel":"string | null"},"output":{"type":"string","description":"tool_result.","uniqueKey":"oneOf.0.output.items.[INDEX].output","typeLabel":"string"},"task":{"type":"object","description":"task: a browser or computer task the agent started.","properties":{"task_id":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].task.task_id","typeLabel":"string"},"kind":{"type":"string","enum":["browser","desktop"],"description":"Where it ran: the conversation's cloud browser, or one of the agent's computers.","uniqueKey":"oneOf.0.output.items.[INDEX].task.kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","description":"`paused`: waiting on a request in its conversation (an `approval` or `question` item) to be decided there.","enum":["queued","running","paused","completed","failed","stopped"],"uniqueKey":"oneOf.0.output.items.[INDEX].task.status","typeLabel":"enum\u003cstring>"},"result":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].task.result.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.output.items.[INDEX].task.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].task.result","typeLabel":"string | null"},"goal":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].task.goal.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.output.items.[INDEX].task.goal.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].task.goal","typeLabel":"string | null"},"computer":{"type":"string","description":"Desktop tasks: the session code of the computer it ran on.","uniqueKey":"oneOf.0.output.items.[INDEX].task.computer","typeLabel":"string"},"plan":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].task.plan.items.[INDEX]","typeLabel":"string"},"description":"Its progress as the person sees it: the short steps the agent wrote for them when it started the task (its procedure's, said simply, when it followed one). Left out when it gave none.","uniqueKey":"oneOf.0.output.items.[INDEX].task.plan","typeLabel":"string[]"},"plan_step":{"type":"integer","minimum":1,"description":"With `plan`: the step it's on (1 is the first). It only moves forward; once the task is `completed`, every step is done.","uniqueKey":"oneOf.0.output.items.[INDEX].task.plan_step","typeLabel":"integer"}},"uniqueKey":"oneOf.0.output.items.[INDEX].task","typeLabel":"object"},"files":{"type":"array","items":{"type":"object","description":"A file in a conversation: one a person attached to a message, or one the agent’s code made. Download it from GET /v1/uploads/{id}/content.","properties":{"id":{"type":"string","description":"The upload’s id, `upl_…`.","uniqueKey":"oneOf.0.output.items.[INDEX].files.items.[INDEX].id","typeLabel":"string"},"filename":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].files.items.[INDEX].filename","typeLabel":"string"},"content_type":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].files.items.[INDEX].content_type","typeLabel":"string"},"kind":{"type":"string","enum":["image","pdf","text","other"],"description":"How the model gets it: `image` (PNG, JPEG, GIF or WebP) and `pdf` it sees; `text` it reads (long files are cut); `other` only its code sandbox opens (Run code).","uniqueKey":"oneOf.0.output.items.[INDEX].files.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"bytes":{"type":"integer","uniqueKey":"oneOf.0.output.items.[INDEX].files.items.[INDEX].bytes","typeLabel":"integer"}},"uniqueKey":"oneOf.0.output.items.[INDEX].files.items.[INDEX]","typeLabel":"object"},"description":"user_message: the files the person attached. tool_result of a code run: the files the agent’s code made.","uniqueKey":"oneOf.0.output.items.[INDEX].files","typeLabel":"object[]"},"error":{"type":"boolean","description":"tool_result: it didn’t work.","uniqueKey":"oneOf.0.output.items.[INDEX].error","typeLabel":"boolean"},"surface_id":{"type":"string","description":"ui: the form’s id (`srf_…`). Answer it with `action` on the next message.","uniqueKey":"oneOf.0.output.items.[INDEX].surface_id","typeLabel":"string"},"title":{"type":"string","description":"ui: the form’s title.","uniqueKey":"oneOf.0.output.items.[INDEX].title","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.output.items.[INDEX].fields.items.[INDEX]","typeLabel":"object"},"description":"ui: up to 8 fields, each `{ id, label, kind, options?, allow_other?, min?, max?, step?, unit?, default? }`; `kind` is `choice`, `multi_choice`, `yes_no`, `text`, `number`, `slider` or `date`.","uniqueKey":"oneOf.0.output.items.[INDEX].fields","typeLabel":"object[]"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.output.items.[INDEX].a2ui.items.[INDEX]","typeLabel":"object"},"description":"ui: the same form as A2UI v0.9 messages.","uniqueKey":"oneOf.0.output.items.[INDEX].a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"oneOf.0.output.items.[INDEX].answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"oneOf.0.output.items.[INDEX].answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].answer","typeLabel":"object | null"},"approval":{"type":"object","description":"approval: a request the reply paused on, or one decided as it was asked (guardrails in `auto` or `unattended` mode).","properties":{"approval_id":{"type":"string","example":"apr_…","uniqueKey":"oneOf.0.output.items.[INDEX].approval.approval_id","typeLabel":"string"},"scope":{"type":"string","enum":["run","step"],"description":"`run`: a whole task (or a tool call). `step`: one step of a task.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.scope","typeLabel":"enum\u003cstring>"},"action":{"type":"string","description":"What will happen, in Eager’s words.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.action","typeLabel":"string"},"source":{"oneOf":[{"type":"string","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.source","typeLabel":"enum\u003cstring> | null"},"site":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].approval.site.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.output.items.[INDEX].approval.site.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.site","typeLabel":"string | null"},"app":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].approval.app.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.output.items.[INDEX].approval.app.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.app","typeLabel":"string | null"},"category":{"oneOf":[{"type":"string","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"oneOf.0.output.items.[INDEX].approval.category.oneOf.0","typeLabel":"string"},{"type":"null","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"oneOf.0.output.items.[INDEX].approval.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.category","typeLabel":"string | null"},"risk":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].approval.risk.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.output.items.[INDEX].approval.risk.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.risk","typeLabel":"string | null"},"task_id":{"oneOf":[{"type":"string","description":"The task it’s for, once there is one.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.task_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The task it’s for, once there is one.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.task_id","typeLabel":"string | null"},"procedure_id":{"oneOf":[{"type":"string","description":"The procedure whose Approval asked for it.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.procedure_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The procedure whose Approval asked for it.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.procedure_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.procedure_id","typeLabel":"string | null"},"by":{"type":"string","enum":["anyone","team"],"description":"`anyone`: the person in the chat (when the agent lets them approve) or your team. `team`: only your team.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.by","typeLabel":"enum\u003cstring>"},"who":{"oneOf":[{"type":"string","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"oneOf.0.output.items.[INDEX].approval.who.oneOf.0","typeLabel":"string"},{"type":"null","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"oneOf.0.output.items.[INDEX].approval.who.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.who","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"What to check or bring, from the procedure.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"What to check or bring, from the procedure.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.note","typeLabel":"string | null"},"covers":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.covers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"A run’s: the \"Ask first\" categories its task may then do without asking again, as they were when it was asked. The surface says so.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.covers","typeLabel":"enum\u003cstring>[]"},"surface_id":{"type":"string","description":"Its A2UI surface’s id (`srf_…`), for an `action` that decides it.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.output.items.[INDEX].approval.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The request as A2UI v0.9 messages: what will happen, what else it allows, who signs off, the note, and Approve and Deny buttons (their actions are named `approve` and `deny`).","uniqueKey":"oneOf.0.output.items.[INDEX].approval.a2ui","typeLabel":"object[]"},"decision":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.decision","typeLabel":"enum\u003cstring>"},"note":{"type":"string","description":"The decider’s note to the agent, if any.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.note","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"]},"note":{"type":"string","description":"The decider’s note to the agent, if any."},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].approval.decision","typeLabel":"object | null"}},"uniqueKey":"oneOf.0.output.items.[INDEX].approval","typeLabel":"object"},"question":{"type":"object","description":"question: a question a task asks.","properties":{"question_id":{"type":"string","example":"qst_…","uniqueKey":"oneOf.0.output.items.[INDEX].question.question_id","typeLabel":"string"},"task_id":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].question.task_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.output.items.[INDEX].question.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].question.task_id","typeLabel":"string | null"},"question":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].question.question","typeLabel":"string"},"options":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].question.options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.output.items.[INDEX].question.options","typeLabel":"string[]"},"surface_id":{"type":"string","description":"Its form’s id (`srf_…`), for an `action` that answers it.","uniqueKey":"oneOf.0.output.items.[INDEX].question.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.output.items.[INDEX].question.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The form as A2UI v0.9 messages; its one field is `answer` (and `answer_other`, for something else).","uniqueKey":"oneOf.0.output.items.[INDEX].question.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"text":{"type":"string","uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0.text","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"text":{"type":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"oneOf.0.output.items.[INDEX].question.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.output.items.[INDEX].question.answer","typeLabel":"object | null"}},"uniqueKey":"oneOf.0.output.items.[INDEX].question","typeLabel":"object"}},"uniqueKey":"oneOf.0.output.items.[INDEX]","typeLabel":"object"},"description":"This turn’s items.","uniqueKey":"oneOf.0.output","typeLabel":"object[]"},"usage":{"type":"object","description":"What the reply used, set when it ends (empty until then). Its tokens are paid from the balance at the model’s price, rounded up to a whole cent per reply. The browser and desktop tasks it started are charged as tasks.","properties":{"input_tokens":{"type":"integer","description":"All input, `cached_tokens` and `cache_write_tokens` included.","uniqueKey":"oneOf.0.usage.input_tokens","typeLabel":"integer"},"cached_tokens":{"type":"integer","description":"Input read from the prompt cache, billed at the model’s cached price.","uniqueKey":"oneOf.0.usage.cached_tokens","typeLabel":"integer"},"cache_write_tokens":{"type":"integer","description":"Input written to the prompt cache, billed at the cache-write price (1.25x input). Claude models only; 0 on the others.","uniqueKey":"oneOf.0.usage.cache_write_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","description":"Output, the model’s thinking included.","uniqueKey":"oneOf.0.usage.output_tokens","typeLabel":"integer"},"reasoning_tokens":{"type":"integer","description":"How much of `output_tokens` was thinking, where the provider reports it (OpenAI, Gemini). 0 on Claude models.","uniqueKey":"oneOf.0.usage.reasoning_tokens","typeLabel":"integer"},"tasks":{"type":"array","description":"The tasks the reply started, with what each cost.","items":{"type":"object","properties":{"task_id":{"type":"string","uniqueKey":"oneOf.0.usage.tasks.items.[INDEX].task_id","typeLabel":"string"},"cost_cents":{"oneOf":[{"type":"integer","description":"The task’s `cost_cents`.","uniqueKey":"oneOf.0.usage.tasks.items.[INDEX].cost_cents.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The task’s `cost_cents`.","uniqueKey":"oneOf.0.usage.tasks.items.[INDEX].cost_cents.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.usage.tasks.items.[INDEX].cost_cents","typeLabel":"integer | null"}},"uniqueKey":"oneOf.0.usage.tasks.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.usage.tasks","typeLabel":"object[]"},"code_runs":{"type":"integer","description":"Times the agent ran code in its sandbox. Left out when it ran none.","uniqueKey":"oneOf.0.usage.code_runs","typeLabel":"integer"}},"uniqueKey":"oneOf.0.usage","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"ended_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"oneOf.0.ended_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"oneOf.0.ended_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.ended_at","typeLabel":"string\u003cdate-time> | null"},"queued_message":{"type":"object","description":"Only when your message was queued (`202`): its item.","properties":{"object":{"const":"conversation_item","uniqueKey":"oneOf.0.queued_message.object","typeLabel":"any"},"seq":{"type":"integer","uniqueKey":"oneOf.0.queued_message.seq","typeLabel":"integer"},"response_id":{"type":"string","uniqueKey":"oneOf.0.queued_message.response_id","typeLabel":"string"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.queued_message.at","typeLabel":"string\u003cdate-time>"},"type":{"type":"string","enum":["user_message","assistant_message","tool_call","tool_result","task","ui","approval","question","speech"],"uniqueKey":"oneOf.0.queued_message.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"user_message, assistant_message, speech.","uniqueKey":"oneOf.0.queued_message.text","typeLabel":"string"},"speaker":{"type":"string","enum":["caller","agent"],"description":"speech: who said the line on a phone call.","uniqueKey":"oneOf.0.queued_message.speaker","typeLabel":"enum\u003cstring>"},"queued":{"type":"boolean","description":"user_message: sent while a reply was running, and not read by the agent yet. Absent once it is.","uniqueKey":"oneOf.0.queued_message.queued","typeLabel":"boolean"},"view":{"type":"object","description":"assistant_message: the answer laid out as UI, when that reads better than text (visual answers, `tools.visual`): sections, each a card when it has a `title` (and maybe a `badge`), of blocks. Block types: `text` (text), `facts` (items: label, value), `table` (columns, rows), `options` (items: title, label, price, detail, points, pick: what the person says by choosing it), `list` (style bullet, check or number; items), `callout` (tone, text), `badges` (items: text, tone), `bars` (items: label, value), `buttons` (items: label, message: what the person says by pressing it). Tones: neutral, good, warning, bad, info. Every figure in it is one of the text’s; the text stays the answer.","properties":{"version":{"type":"integer","const":1,"uniqueKey":"oneOf.0.queued_message.view.version","typeLabel":"integer"},"sections":{"type":"array","items":{"type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text","facts","table","options","list","callout","badges","bars","buttons"],"isRequired":true,"uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].blocks","typeLabel":"object[]"},"title":{"type":"string","uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].title","typeLabel":"string"},"badge":{"type":"object","properties":{"text":{"type":"string","uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].badge.text","typeLabel":"string"},"tone":{"type":"string","enum":["neutral","good","warning","bad","info"],"uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].badge.tone","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX].badge","typeLabel":"object"}},"required":["blocks"],"uniqueKey":"oneOf.0.queued_message.view.sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.queued_message.view.sections","typeLabel":"object[]"}},"uniqueKey":"oneOf.0.queued_message.view","typeLabel":"object"},"call_id":{"type":"string","description":"tool_call, tool_result.","uniqueKey":"oneOf.0.queued_message.call_id","typeLabel":"string"},"name":{"type":"string","description":"tool_call, tool_result: the tool. Code runs (Run code) are `bash_code_execution` (`arguments.command`) or `text_editor_code_execution` (`arguments.command`, `path`, `file_text`…) on Claude models, `code_interpreter` (`arguments.code`) on GPT models and `code_execution` (`arguments.code`) on Gemini models.","uniqueKey":"oneOf.0.queued_message.name","typeLabel":"string"},"arguments":{"type":"object","uniqueKey":"oneOf.0.queued_message.arguments","typeLabel":"object"},"label":{"oneOf":[{"type":"string","description":"tool_call: what it did, in plain words.","uniqueKey":"oneOf.0.queued_message.label.oneOf.0","typeLabel":"string"},{"type":"null","description":"tool_call: what it did, in plain words.","uniqueKey":"oneOf.0.queued_message.label.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.label","typeLabel":"string | null"},"output":{"type":"string","description":"tool_result.","uniqueKey":"oneOf.0.queued_message.output","typeLabel":"string"},"task":{"type":"object","description":"task: a browser or computer task the agent started.","properties":{"task_id":{"type":"string","uniqueKey":"oneOf.0.queued_message.task.task_id","typeLabel":"string"},"kind":{"type":"string","enum":["browser","desktop"],"description":"Where it ran: the conversation's cloud browser, or one of the agent's computers.","uniqueKey":"oneOf.0.queued_message.task.kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","description":"`paused`: waiting on a request in its conversation (an `approval` or `question` item) to be decided there.","enum":["queued","running","paused","completed","failed","stopped"],"uniqueKey":"oneOf.0.queued_message.task.status","typeLabel":"enum\u003cstring>"},"result":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.queued_message.task.result.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.queued_message.task.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.task.result","typeLabel":"string | null"},"goal":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.queued_message.task.goal.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.queued_message.task.goal.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.task.goal","typeLabel":"string | null"},"computer":{"type":"string","description":"Desktop tasks: the session code of the computer it ran on.","uniqueKey":"oneOf.0.queued_message.task.computer","typeLabel":"string"},"plan":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.queued_message.task.plan.items.[INDEX]","typeLabel":"string"},"description":"Its progress as the person sees it: the short steps the agent wrote for them when it started the task (its procedure's, said simply, when it followed one). Left out when it gave none.","uniqueKey":"oneOf.0.queued_message.task.plan","typeLabel":"string[]"},"plan_step":{"type":"integer","minimum":1,"description":"With `plan`: the step it's on (1 is the first). It only moves forward; once the task is `completed`, every step is done.","uniqueKey":"oneOf.0.queued_message.task.plan_step","typeLabel":"integer"}},"uniqueKey":"oneOf.0.queued_message.task","typeLabel":"object"},"files":{"type":"array","items":{"type":"object","description":"A file in a conversation: one a person attached to a message, or one the agent’s code made. Download it from GET /v1/uploads/{id}/content.","properties":{"id":{"type":"string","description":"The upload’s id, `upl_…`.","uniqueKey":"oneOf.0.queued_message.files.items.[INDEX].id","typeLabel":"string"},"filename":{"type":"string","uniqueKey":"oneOf.0.queued_message.files.items.[INDEX].filename","typeLabel":"string"},"content_type":{"type":"string","uniqueKey":"oneOf.0.queued_message.files.items.[INDEX].content_type","typeLabel":"string"},"kind":{"type":"string","enum":["image","pdf","text","other"],"description":"How the model gets it: `image` (PNG, JPEG, GIF or WebP) and `pdf` it sees; `text` it reads (long files are cut); `other` only its code sandbox opens (Run code).","uniqueKey":"oneOf.0.queued_message.files.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"bytes":{"type":"integer","uniqueKey":"oneOf.0.queued_message.files.items.[INDEX].bytes","typeLabel":"integer"}},"uniqueKey":"oneOf.0.queued_message.files.items.[INDEX]","typeLabel":"object"},"description":"user_message: the files the person attached. tool_result of a code run: the files the agent’s code made.","uniqueKey":"oneOf.0.queued_message.files","typeLabel":"object[]"},"error":{"type":"boolean","description":"tool_result: it didn’t work.","uniqueKey":"oneOf.0.queued_message.error","typeLabel":"boolean"},"surface_id":{"type":"string","description":"ui: the form’s id (`srf_…`). Answer it with `action` on the next message.","uniqueKey":"oneOf.0.queued_message.surface_id","typeLabel":"string"},"title":{"type":"string","description":"ui: the form’s title.","uniqueKey":"oneOf.0.queued_message.title","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.queued_message.fields.items.[INDEX]","typeLabel":"object"},"description":"ui: up to 8 fields, each `{ id, label, kind, options?, allow_other?, min?, max?, step?, unit?, default? }`; `kind` is `choice`, `multi_choice`, `yes_no`, `text`, `number`, `slider` or `date`.","uniqueKey":"oneOf.0.queued_message.fields","typeLabel":"object[]"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.queued_message.a2ui.items.[INDEX]","typeLabel":"object"},"description":"ui: the same form as A2UI v0.9 messages.","uniqueKey":"oneOf.0.queued_message.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"oneOf.0.queued_message.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"oneOf.0.queued_message.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.answer","typeLabel":"object | null"},"approval":{"type":"object","description":"approval: a request the reply paused on, or one decided as it was asked (guardrails in `auto` or `unattended` mode).","properties":{"approval_id":{"type":"string","example":"apr_…","uniqueKey":"oneOf.0.queued_message.approval.approval_id","typeLabel":"string"},"scope":{"type":"string","enum":["run","step"],"description":"`run`: a whole task (or a tool call). `step`: one step of a task.","uniqueKey":"oneOf.0.queued_message.approval.scope","typeLabel":"enum\u003cstring>"},"action":{"type":"string","description":"What will happen, in Eager’s words.","uniqueKey":"oneOf.0.queued_message.approval.action","typeLabel":"string"},"source":{"oneOf":[{"type":"string","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"oneOf.0.queued_message.approval.source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"oneOf.0.queued_message.approval.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.source","typeLabel":"enum\u003cstring> | null"},"site":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.queued_message.approval.site.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.queued_message.approval.site.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.site","typeLabel":"string | null"},"app":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.queued_message.approval.app.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.queued_message.approval.app.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.app","typeLabel":"string | null"},"category":{"oneOf":[{"type":"string","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"oneOf.0.queued_message.approval.category.oneOf.0","typeLabel":"string"},{"type":"null","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"oneOf.0.queued_message.approval.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.category","typeLabel":"string | null"},"risk":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.queued_message.approval.risk.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.queued_message.approval.risk.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.risk","typeLabel":"string | null"},"task_id":{"oneOf":[{"type":"string","description":"The task it’s for, once there is one.","uniqueKey":"oneOf.0.queued_message.approval.task_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The task it’s for, once there is one.","uniqueKey":"oneOf.0.queued_message.approval.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.task_id","typeLabel":"string | null"},"procedure_id":{"oneOf":[{"type":"string","description":"The procedure whose Approval asked for it.","uniqueKey":"oneOf.0.queued_message.approval.procedure_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The procedure whose Approval asked for it.","uniqueKey":"oneOf.0.queued_message.approval.procedure_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.procedure_id","typeLabel":"string | null"},"by":{"type":"string","enum":["anyone","team"],"description":"`anyone`: the person in the chat (when the agent lets them approve) or your team. `team`: only your team.","uniqueKey":"oneOf.0.queued_message.approval.by","typeLabel":"enum\u003cstring>"},"who":{"oneOf":[{"type":"string","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"oneOf.0.queued_message.approval.who.oneOf.0","typeLabel":"string"},{"type":"null","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"oneOf.0.queued_message.approval.who.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.who","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"What to check or bring, from the procedure.","uniqueKey":"oneOf.0.queued_message.approval.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"What to check or bring, from the procedure.","uniqueKey":"oneOf.0.queued_message.approval.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.note","typeLabel":"string | null"},"covers":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"oneOf.0.queued_message.approval.covers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"A run’s: the \"Ask first\" categories its task may then do without asking again, as they were when it was asked. The surface says so.","uniqueKey":"oneOf.0.queued_message.approval.covers","typeLabel":"enum\u003cstring>[]"},"surface_id":{"type":"string","description":"Its A2UI surface’s id (`srf_…`), for an `action` that decides it.","uniqueKey":"oneOf.0.queued_message.approval.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.queued_message.approval.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The request as A2UI v0.9 messages: what will happen, what else it allows, who signs off, the note, and Approve and Deny buttons (their actions are named `approve` and `deny`).","uniqueKey":"oneOf.0.queued_message.approval.a2ui","typeLabel":"object[]"},"decision":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"],"uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.decision","typeLabel":"enum\u003cstring>"},"note":{"type":"string","description":"The decider’s note to the agent, if any.","uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.note","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"]},"note":{"type":"string","description":"The decider’s note to the agent, if any."},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"oneOf.0.queued_message.approval.decision.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.approval.decision","typeLabel":"object | null"}},"uniqueKey":"oneOf.0.queued_message.approval","typeLabel":"object"},"question":{"type":"object","description":"question: a question a task asks.","properties":{"question_id":{"type":"string","example":"qst_…","uniqueKey":"oneOf.0.queued_message.question.question_id","typeLabel":"string"},"task_id":{"oneOf":[{"type":"string","uniqueKey":"oneOf.0.queued_message.question.task_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.0.queued_message.question.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.question.task_id","typeLabel":"string | null"},"question":{"type":"string","uniqueKey":"oneOf.0.queued_message.question.question","typeLabel":"string"},"options":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.queued_message.question.options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.queued_message.question.options","typeLabel":"string[]"},"surface_id":{"type":"string","description":"Its form’s id (`srf_…`), for an `action` that answers it.","uniqueKey":"oneOf.0.queued_message.question.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.0.queued_message.question.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The form as A2UI v0.9 messages; its one field is `answer` (and `answer_other`, for something else).","uniqueKey":"oneOf.0.queued_message.question.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"text":{"type":"string","uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0.text","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"text":{"type":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"oneOf.0.queued_message.question.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.queued_message.question.answer","typeLabel":"object | null"}},"uniqueKey":"oneOf.0.queued_message.question","typeLabel":"object"}},"uniqueKey":"oneOf.0.queued_message","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"A request decided (POST /v1/conversations/{conversation_id}/decisions, or the responses route when no reply was paused for it): the approval or question as it is now.","properties":{"object":{"const":"decision","uniqueKey":"oneOf.1.object","typeLabel":"any"},"approval":{"type":"object","description":"A request for a yes before something runs: a task from a procedure whose Approval is on (`scope: run`), an HTTP tool with `approval: \"always\"`, or one guarded step of a task (`scope: step`). Described by Eager, never by the model. Open while `decision` is null; the first decision counts.","properties":{"approval_id":{"type":"string","example":"apr_…","uniqueKey":"oneOf.1.approval.approval_id","typeLabel":"string"},"scope":{"type":"string","enum":["run","step"],"description":"`run`: a whole task (or a tool call). `step`: one step of a task.","uniqueKey":"oneOf.1.approval.scope","typeLabel":"enum\u003cstring>"},"action":{"type":"string","description":"What will happen, in Eager’s words.","uniqueKey":"oneOf.1.approval.action","typeLabel":"string"},"source":{"oneOf":[{"type":"string","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"oneOf.1.approval.source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"oneOf.1.approval.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.source","typeLabel":"enum\u003cstring> | null"},"site":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.approval.site.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.approval.site.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.site","typeLabel":"string | null"},"app":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.approval.app.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.approval.app.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.app","typeLabel":"string | null"},"category":{"oneOf":[{"type":"string","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"oneOf.1.approval.category.oneOf.0","typeLabel":"string"},{"type":"null","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"oneOf.1.approval.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.category","typeLabel":"string | null"},"risk":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.approval.risk.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.approval.risk.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.risk","typeLabel":"string | null"},"task_id":{"oneOf":[{"type":"string","description":"The task it’s for, once there is one.","uniqueKey":"oneOf.1.approval.task_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The task it’s for, once there is one.","uniqueKey":"oneOf.1.approval.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.task_id","typeLabel":"string | null"},"procedure_id":{"oneOf":[{"type":"string","description":"The procedure whose Approval asked for it.","uniqueKey":"oneOf.1.approval.procedure_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The procedure whose Approval asked for it.","uniqueKey":"oneOf.1.approval.procedure_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.procedure_id","typeLabel":"string | null"},"by":{"type":"string","enum":["anyone","team"],"description":"`anyone`: the person in the chat (when the agent lets them approve) or your team. `team`: only your team.","uniqueKey":"oneOf.1.approval.by","typeLabel":"enum\u003cstring>"},"who":{"oneOf":[{"type":"string","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"oneOf.1.approval.who.oneOf.0","typeLabel":"string"},{"type":"null","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"oneOf.1.approval.who.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.who","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"What to check or bring, from the procedure.","uniqueKey":"oneOf.1.approval.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"What to check or bring, from the procedure.","uniqueKey":"oneOf.1.approval.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.note","typeLabel":"string | null"},"covers":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"oneOf.1.approval.covers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"A run’s: the \"Ask first\" categories its task may then do without asking again, as they were when it was asked. The surface says so.","uniqueKey":"oneOf.1.approval.covers","typeLabel":"enum\u003cstring>[]"},"surface_id":{"type":"string","description":"Its A2UI surface’s id (`srf_…`), for an `action` that decides it.","uniqueKey":"oneOf.1.approval.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.1.approval.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The request as A2UI v0.9 messages: what will happen, what else it allows, who signs off, the note, and Approve and Deny buttons (their actions are named `approve` and `deny`).","uniqueKey":"oneOf.1.approval.a2ui","typeLabel":"object[]"},"decision":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"],"uniqueKey":"oneOf.1.approval.decision.oneOf.0.decision","typeLabel":"enum\u003cstring>"},"note":{"type":"string","description":"The decider’s note to the agent, if any.","uniqueKey":"oneOf.1.approval.decision.oneOf.0.note","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"oneOf.1.approval.decision.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"oneOf.1.approval.decision.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"oneOf.1.approval.decision.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"oneOf.1.approval.decision.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.1.approval.decision.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"oneOf.1.approval.decision.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"]},"note":{"type":"string","description":"The decider’s note to the agent, if any."},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"oneOf.1.approval.decision.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.approval.decision","typeLabel":"object | null"}},"uniqueKey":"oneOf.1.approval","typeLabel":"object"},"question":{"type":"object","description":"A question a task asks, drawn as a form: a choice from `options` (or something else), or short text. Open while `answer` is null; the first answer counts.","properties":{"question_id":{"type":"string","example":"qst_…","uniqueKey":"oneOf.1.question.question_id","typeLabel":"string"},"task_id":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.question.task_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.question.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.question.task_id","typeLabel":"string | null"},"question":{"type":"string","uniqueKey":"oneOf.1.question.question","typeLabel":"string"},"options":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.question.options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.question.options","typeLabel":"string[]"},"surface_id":{"type":"string","description":"Its form’s id (`srf_…`), for an `action` that answers it.","uniqueKey":"oneOf.1.question.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.1.question.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The form as A2UI v0.9 messages; its one field is `answer` (and `answer_other`, for something else).","uniqueKey":"oneOf.1.question.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"text":{"type":"string","uniqueKey":"oneOf.1.question.answer.oneOf.0.text","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"oneOf.1.question.answer.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"oneOf.1.question.answer.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"oneOf.1.question.answer.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"oneOf.1.question.answer.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"oneOf.1.question.answer.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"oneOf.1.question.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"text":{"type":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"oneOf.1.question.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.question.answer","typeLabel":"object | null"}},"uniqueKey":"oneOf.1.question","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"response","id":"resp_…","conversation_id":"\u003cstring>","status":"in_progress","error":"\u003cstring>","output":[{"object":"conversation_item","seq":123,"response_id":"\u003cstring>","at":"2023-11-07T05:31:56Z","type":"user_message","text":"\u003cstring>","speaker":"caller","queued":true,"view":{"version":1,"sections":[{"blocks":[{"type":"text"}],"title":"\u003cstring>","badge":{"text":"\u003cstring>","tone":"neutral"}}]},"call_id":"\u003cstring>","name":"\u003cstring>","arguments":{},"label":"\u003cstring>","output":"\u003cstring>","task":{"task_id":"\u003cstring>","kind":"browser","status":"queued","result":"\u003cstring>","goal":"\u003cstring>","computer":"\u003cstring>","plan":["\u003cstring>"],"plan_step":2},"files":[{"id":"\u003cstring>","filename":"\u003cstring>","content_type":"\u003cstring>","kind":"image","bytes":123}],"error":true,"surface_id":"\u003cstring>","title":"\u003cstring>","fields":[{}],"a2ui":[{}],"answer":{},"approval":{"approval_id":"apr_…","scope":"run","action":"\u003cstring>","source":"guardrail","site":"\u003cstring>","app":"\u003cstring>","category":"\u003cstring>","risk":"\u003cstring>","task_id":"\u003cstring>","procedure_id":"\u003cstring>","by":"anyone","who":"\u003cstring>","note":"\u003cstring>","covers":["purchase"],"surface_id":"\u003cstring>","a2ui":[{}],"decision":{"decision":"approve","note":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}},"question":{"question_id":"qst_…","task_id":"\u003cstring>","question":"\u003cstring>","options":["\u003cstring>"],"surface_id":"\u003cstring>","a2ui":[{}],"answer":{"text":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}}}],"usage":{"input_tokens":123,"cached_tokens":123,"cache_write_tokens":123,"output_tokens":123,"reasoning_tokens":123,"tasks":[{"task_id":"\u003cstring>","cost_cents":123}],"code_runs":123},"created_at":"2023-11-07T05:31:56Z","ended_at":"2023-11-07T05:31:56Z","queued_message":{"object":"conversation_item","seq":123,"response_id":"\u003cstring>","at":"2023-11-07T05:31:56Z","type":"user_message","text":"\u003cstring>","speaker":"caller","queued":true,"view":{"version":1,"sections":[{"blocks":[{"type":"text"}],"title":"\u003cstring>","badge":{"text":"\u003cstring>","tone":"neutral"}}]},"call_id":"\u003cstring>","name":"\u003cstring>","arguments":{},"label":"\u003cstring>","output":"\u003cstring>","task":{"task_id":"\u003cstring>","kind":"browser","status":"queued","result":"\u003cstring>","goal":"\u003cstring>","computer":"\u003cstring>","plan":["\u003cstring>"],"plan_step":2},"files":[{"id":"\u003cstring>","filename":"\u003cstring>","content_type":"\u003cstring>","kind":"image","bytes":123}],"error":true,"surface_id":"\u003cstring>","title":"\u003cstring>","fields":[{}],"a2ui":[{}],"answer":{},"approval":{"approval_id":"apr_…","scope":"run","action":"\u003cstring>","source":"guardrail","site":"\u003cstring>","app":"\u003cstring>","category":"\u003cstring>","risk":"\u003cstring>","task_id":"\u003cstring>","procedure_id":"\u003cstring>","by":"anyone","who":"\u003cstring>","note":"\u003cstring>","covers":["purchase"],"surface_id":"\u003cstring>","a2ui":[{}],"decision":{"decision":"approve","note":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}},"question":{"question_id":"qst_…","task_id":"\u003cstring>","question":"\u003cstring>","options":["\u003cstring>"],"surface_id":"\u003cstring>","a2ui":[{}],"answer":{"text":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"b63b7cb1-7a03-4d1a-8d4a-aeb08881c213":{"description":"Your message was queued for the reply still running in the conversation: that reply as it is now (`in_progress`), with `queued_message`.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"const":"response","uniqueKey":"object","typeLabel":"any"},"id":{"type":"string","example":"resp_…","uniqueKey":"id","typeLabel":"string"},"conversation_id":{"type":"string","uniqueKey":"conversation_id","typeLabel":"string"},"status":{"type":"string","enum":["in_progress","requires_action","completed","failed","cancelled"],"description":"`requires_action`: paused on a request in `output` (an `approval` or `question` item) until someone decides it. Send the decision to POST /v1/agents/{agent_id}/responses (`approval`, `answer`, or an A2UI `action` on its surface), and this same response carries on.","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"error":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"string | null"},"output":{"type":"array","items":{"type":"object","description":"One item of a conversation. `type` says which fields it has.","properties":{"object":{"const":"conversation_item","uniqueKey":"output.items.[INDEX].object","typeLabel":"any"},"seq":{"type":"integer","uniqueKey":"output.items.[INDEX].seq","typeLabel":"integer"},"response_id":{"type":"string","uniqueKey":"output.items.[INDEX].response_id","typeLabel":"string"},"at":{"type":"string","format":"date-time","uniqueKey":"output.items.[INDEX].at","typeLabel":"string\u003cdate-time>"},"type":{"type":"string","enum":["user_message","assistant_message","tool_call","tool_result","task","ui","approval","question","speech"],"uniqueKey":"output.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"user_message, assistant_message, speech.","uniqueKey":"output.items.[INDEX].text","typeLabel":"string"},"speaker":{"type":"string","enum":["caller","agent"],"description":"speech: who said the line on a phone call.","uniqueKey":"output.items.[INDEX].speaker","typeLabel":"enum\u003cstring>"},"queued":{"type":"boolean","description":"user_message: sent while a reply was running, and not read by the agent yet. Absent once it is.","uniqueKey":"output.items.[INDEX].queued","typeLabel":"boolean"},"view":{"type":"object","description":"assistant_message: the answer laid out as UI, when that reads better than text (visual answers, `tools.visual`): sections, each a card when it has a `title` (and maybe a `badge`), of blocks. Block types: `text` (text), `facts` (items: label, value), `table` (columns, rows), `options` (items: title, label, price, detail, points, pick: what the person says by choosing it), `list` (style bullet, check or number; items), `callout` (tone, text), `badges` (items: text, tone), `bars` (items: label, value), `buttons` (items: label, message: what the person says by pressing it). Tones: neutral, good, warning, bad, info. Every figure in it is one of the text’s; the text stays the answer.","properties":{"version":{"type":"integer","const":1,"uniqueKey":"output.items.[INDEX].view.version","typeLabel":"integer"},"sections":{"type":"array","items":{"type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text","facts","table","options","list","callout","badges","bars","buttons"],"isRequired":true,"uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].blocks","typeLabel":"object[]"},"title":{"type":"string","uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].title","typeLabel":"string"},"badge":{"type":"object","properties":{"text":{"type":"string","uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].badge.text","typeLabel":"string"},"tone":{"type":"string","enum":["neutral","good","warning","bad","info"],"uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].badge.tone","typeLabel":"enum\u003cstring>"}},"uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX].badge","typeLabel":"object"}},"required":["blocks"],"uniqueKey":"output.items.[INDEX].view.sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"output.items.[INDEX].view.sections","typeLabel":"object[]"}},"uniqueKey":"output.items.[INDEX].view","typeLabel":"object"},"call_id":{"type":"string","description":"tool_call, tool_result.","uniqueKey":"output.items.[INDEX].call_id","typeLabel":"string"},"name":{"type":"string","description":"tool_call, tool_result: the tool. Code runs (Run code) are `bash_code_execution` (`arguments.command`) or `text_editor_code_execution` (`arguments.command`, `path`, `file_text`…) on Claude models, `code_interpreter` (`arguments.code`) on GPT models and `code_execution` (`arguments.code`) on Gemini models.","uniqueKey":"output.items.[INDEX].name","typeLabel":"string"},"arguments":{"type":"object","uniqueKey":"output.items.[INDEX].arguments","typeLabel":"object"},"label":{"oneOf":[{"type":"string","description":"tool_call: what it did, in plain words.","uniqueKey":"output.items.[INDEX].label.oneOf.0","typeLabel":"string"},{"type":"null","description":"tool_call: what it did, in plain words.","uniqueKey":"output.items.[INDEX].label.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].label","typeLabel":"string | null"},"output":{"type":"string","description":"tool_result.","uniqueKey":"output.items.[INDEX].output","typeLabel":"string"},"task":{"type":"object","description":"task: a browser or computer task the agent started.","properties":{"task_id":{"type":"string","uniqueKey":"output.items.[INDEX].task.task_id","typeLabel":"string"},"kind":{"type":"string","enum":["browser","desktop"],"description":"Where it ran: the conversation's cloud browser, or one of the agent's computers.","uniqueKey":"output.items.[INDEX].task.kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","description":"`paused`: waiting on a request in its conversation (an `approval` or `question` item) to be decided there.","enum":["queued","running","paused","completed","failed","stopped"],"uniqueKey":"output.items.[INDEX].task.status","typeLabel":"enum\u003cstring>"},"result":{"oneOf":[{"type":"string","uniqueKey":"output.items.[INDEX].task.result.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"output.items.[INDEX].task.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].task.result","typeLabel":"string | null"},"goal":{"oneOf":[{"type":"string","uniqueKey":"output.items.[INDEX].task.goal.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"output.items.[INDEX].task.goal.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].task.goal","typeLabel":"string | null"},"computer":{"type":"string","description":"Desktop tasks: the session code of the computer it ran on.","uniqueKey":"output.items.[INDEX].task.computer","typeLabel":"string"},"plan":{"type":"array","items":{"type":"string","uniqueKey":"output.items.[INDEX].task.plan.items.[INDEX]","typeLabel":"string"},"description":"Its progress as the person sees it: the short steps the agent wrote for them when it started the task (its procedure's, said simply, when it followed one). Left out when it gave none.","uniqueKey":"output.items.[INDEX].task.plan","typeLabel":"string[]"},"plan_step":{"type":"integer","minimum":1,"description":"With `plan`: the step it's on (1 is the first). It only moves forward; once the task is `completed`, every step is done.","uniqueKey":"output.items.[INDEX].task.plan_step","typeLabel":"integer"}},"uniqueKey":"output.items.[INDEX].task","typeLabel":"object"},"files":{"type":"array","items":{"type":"object","description":"A file in a conversation: one a person attached to a message, or one the agent’s code made. Download it from GET /v1/uploads/{id}/content.","properties":{"id":{"type":"string","description":"The upload’s id, `upl_…`.","uniqueKey":"output.items.[INDEX].files.items.[INDEX].id","typeLabel":"string"},"filename":{"type":"string","uniqueKey":"output.items.[INDEX].files.items.[INDEX].filename","typeLabel":"string"},"content_type":{"type":"string","uniqueKey":"output.items.[INDEX].files.items.[INDEX].content_type","typeLabel":"string"},"kind":{"type":"string","enum":["image","pdf","text","other"],"description":"How the model gets it: `image` (PNG, JPEG, GIF or WebP) and `pdf` it sees; `text` it reads (long files are cut); `other` only its code sandbox opens (Run code).","uniqueKey":"output.items.[INDEX].files.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"bytes":{"type":"integer","uniqueKey":"output.items.[INDEX].files.items.[INDEX].bytes","typeLabel":"integer"}},"uniqueKey":"output.items.[INDEX].files.items.[INDEX]","typeLabel":"object"},"description":"user_message: the files the person attached. tool_result of a code run: the files the agent’s code made.","uniqueKey":"output.items.[INDEX].files","typeLabel":"object[]"},"error":{"type":"boolean","description":"tool_result: it didn’t work.","uniqueKey":"output.items.[INDEX].error","typeLabel":"boolean"},"surface_id":{"type":"string","description":"ui: the form’s id (`srf_…`). Answer it with `action` on the next message.","uniqueKey":"output.items.[INDEX].surface_id","typeLabel":"string"},"title":{"type":"string","description":"ui: the form’s title.","uniqueKey":"output.items.[INDEX].title","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","uniqueKey":"output.items.[INDEX].fields.items.[INDEX]","typeLabel":"object"},"description":"ui: up to 8 fields, each `{ id, label, kind, options?, allow_other?, min?, max?, step?, unit?, default? }`; `kind` is `choice`, `multi_choice`, `yes_no`, `text`, `number`, `slider` or `date`.","uniqueKey":"output.items.[INDEX].fields","typeLabel":"object[]"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"output.items.[INDEX].a2ui.items.[INDEX]","typeLabel":"object"},"description":"ui: the same form as A2UI v0.9 messages.","uniqueKey":"output.items.[INDEX].a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"output.items.[INDEX].answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"output.items.[INDEX].answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].answer","typeLabel":"object | null"},"approval":{"type":"object","description":"approval: a request the reply paused on, or one decided as it was asked (guardrails in `auto` or `unattended` mode).","properties":{"approval_id":{"type":"string","example":"apr_…","uniqueKey":"output.items.[INDEX].approval.approval_id","typeLabel":"string"},"scope":{"type":"string","enum":["run","step"],"description":"`run`: a whole task (or a tool call). `step`: one step of a task.","uniqueKey":"output.items.[INDEX].approval.scope","typeLabel":"enum\u003cstring>"},"action":{"type":"string","description":"What will happen, in Eager’s words.","uniqueKey":"output.items.[INDEX].approval.action","typeLabel":"string"},"source":{"oneOf":[{"type":"string","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"output.items.[INDEX].approval.source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"output.items.[INDEX].approval.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.source","typeLabel":"enum\u003cstring> | null"},"site":{"oneOf":[{"type":"string","uniqueKey":"output.items.[INDEX].approval.site.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"output.items.[INDEX].approval.site.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.site","typeLabel":"string | null"},"app":{"oneOf":[{"type":"string","uniqueKey":"output.items.[INDEX].approval.app.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"output.items.[INDEX].approval.app.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.app","typeLabel":"string | null"},"category":{"oneOf":[{"type":"string","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"output.items.[INDEX].approval.category.oneOf.0","typeLabel":"string"},{"type":"null","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"output.items.[INDEX].approval.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.category","typeLabel":"string | null"},"risk":{"oneOf":[{"type":"string","uniqueKey":"output.items.[INDEX].approval.risk.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"output.items.[INDEX].approval.risk.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.risk","typeLabel":"string | null"},"task_id":{"oneOf":[{"type":"string","description":"The task it’s for, once there is one.","uniqueKey":"output.items.[INDEX].approval.task_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The task it’s for, once there is one.","uniqueKey":"output.items.[INDEX].approval.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.task_id","typeLabel":"string | null"},"procedure_id":{"oneOf":[{"type":"string","description":"The procedure whose Approval asked for it.","uniqueKey":"output.items.[INDEX].approval.procedure_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The procedure whose Approval asked for it.","uniqueKey":"output.items.[INDEX].approval.procedure_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.procedure_id","typeLabel":"string | null"},"by":{"type":"string","enum":["anyone","team"],"description":"`anyone`: the person in the chat (when the agent lets them approve) or your team. `team`: only your team.","uniqueKey":"output.items.[INDEX].approval.by","typeLabel":"enum\u003cstring>"},"who":{"oneOf":[{"type":"string","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"output.items.[INDEX].approval.who.oneOf.0","typeLabel":"string"},{"type":"null","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"output.items.[INDEX].approval.who.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.who","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"What to check or bring, from the procedure.","uniqueKey":"output.items.[INDEX].approval.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"What to check or bring, from the procedure.","uniqueKey":"output.items.[INDEX].approval.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.note","typeLabel":"string | null"},"covers":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"output.items.[INDEX].approval.covers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"A run’s: the \"Ask first\" categories its task may then do without asking again, as they were when it was asked. The surface says so.","uniqueKey":"output.items.[INDEX].approval.covers","typeLabel":"enum\u003cstring>[]"},"surface_id":{"type":"string","description":"Its A2UI surface’s id (`srf_…`), for an `action` that decides it.","uniqueKey":"output.items.[INDEX].approval.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"output.items.[INDEX].approval.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The request as A2UI v0.9 messages: what will happen, what else it allows, who signs off, the note, and Approve and Deny buttons (their actions are named `approve` and `deny`).","uniqueKey":"output.items.[INDEX].approval.a2ui","typeLabel":"object[]"},"decision":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"],"uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.decision","typeLabel":"enum\u003cstring>"},"note":{"type":"string","description":"The decider’s note to the agent, if any.","uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.note","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"output.items.[INDEX].approval.decision.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"]},"note":{"type":"string","description":"The decider’s note to the agent, if any."},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"output.items.[INDEX].approval.decision.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].approval.decision","typeLabel":"object | null"}},"uniqueKey":"output.items.[INDEX].approval","typeLabel":"object"},"question":{"type":"object","description":"question: a question a task asks.","properties":{"question_id":{"type":"string","example":"qst_…","uniqueKey":"output.items.[INDEX].question.question_id","typeLabel":"string"},"task_id":{"oneOf":[{"type":"string","uniqueKey":"output.items.[INDEX].question.task_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"output.items.[INDEX].question.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].question.task_id","typeLabel":"string | null"},"question":{"type":"string","uniqueKey":"output.items.[INDEX].question.question","typeLabel":"string"},"options":{"type":"array","items":{"type":"string","uniqueKey":"output.items.[INDEX].question.options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"output.items.[INDEX].question.options","typeLabel":"string[]"},"surface_id":{"type":"string","description":"Its form’s id (`srf_…`), for an `action` that answers it.","uniqueKey":"output.items.[INDEX].question.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"output.items.[INDEX].question.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The form as A2UI v0.9 messages; its one field is `answer` (and `answer_other`, for something else).","uniqueKey":"output.items.[INDEX].question.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"text":{"type":"string","uniqueKey":"output.items.[INDEX].question.answer.oneOf.0.text","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"output.items.[INDEX].question.answer.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"output.items.[INDEX].question.answer.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"output.items.[INDEX].question.answer.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"output.items.[INDEX].question.answer.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"output.items.[INDEX].question.answer.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"output.items.[INDEX].question.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"text":{"type":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"output.items.[INDEX].question.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"output.items.[INDEX].question.answer","typeLabel":"object | null"}},"uniqueKey":"output.items.[INDEX].question","typeLabel":"object"}},"uniqueKey":"output.items.[INDEX]","typeLabel":"object"},"description":"This turn’s items.","uniqueKey":"output","typeLabel":"object[]"},"usage":{"type":"object","description":"What the reply used, set when it ends (empty until then). Its tokens are paid from the balance at the model’s price, rounded up to a whole cent per reply. The browser and desktop tasks it started are charged as tasks.","properties":{"input_tokens":{"type":"integer","description":"All input, `cached_tokens` and `cache_write_tokens` included.","uniqueKey":"usage.input_tokens","typeLabel":"integer"},"cached_tokens":{"type":"integer","description":"Input read from the prompt cache, billed at the model’s cached price.","uniqueKey":"usage.cached_tokens","typeLabel":"integer"},"cache_write_tokens":{"type":"integer","description":"Input written to the prompt cache, billed at the cache-write price (1.25x input). Claude models only; 0 on the others.","uniqueKey":"usage.cache_write_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","description":"Output, the model’s thinking included.","uniqueKey":"usage.output_tokens","typeLabel":"integer"},"reasoning_tokens":{"type":"integer","description":"How much of `output_tokens` was thinking, where the provider reports it (OpenAI, Gemini). 0 on Claude models.","uniqueKey":"usage.reasoning_tokens","typeLabel":"integer"},"tasks":{"type":"array","description":"The tasks the reply started, with what each cost.","items":{"type":"object","properties":{"task_id":{"type":"string","uniqueKey":"usage.tasks.items.[INDEX].task_id","typeLabel":"string"},"cost_cents":{"oneOf":[{"type":"integer","description":"The task’s `cost_cents`.","uniqueKey":"usage.tasks.items.[INDEX].cost_cents.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The task’s `cost_cents`.","uniqueKey":"usage.tasks.items.[INDEX].cost_cents.oneOf.1","typeLabel":"null"}],"uniqueKey":"usage.tasks.items.[INDEX].cost_cents","typeLabel":"integer | null"}},"uniqueKey":"usage.tasks.items.[INDEX]","typeLabel":"object"},"uniqueKey":"usage.tasks","typeLabel":"object[]"},"code_runs":{"type":"integer","description":"Times the agent ran code in its sandbox. Left out when it ran none.","uniqueKey":"usage.code_runs","typeLabel":"integer"}},"uniqueKey":"usage","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"ended_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"ended_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"ended_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"ended_at","typeLabel":"string\u003cdate-time> | null"},"queued_message":{"type":"object","description":"Only when your message was queued (`202`): its item.","properties":{"object":{"const":"conversation_item","uniqueKey":"queued_message.object","typeLabel":"any"},"seq":{"type":"integer","uniqueKey":"queued_message.seq","typeLabel":"integer"},"response_id":{"type":"string","uniqueKey":"queued_message.response_id","typeLabel":"string"},"at":{"type":"string","format":"date-time","uniqueKey":"queued_message.at","typeLabel":"string\u003cdate-time>"},"type":{"type":"string","enum":["user_message","assistant_message","tool_call","tool_result","task","ui","approval","question","speech"],"uniqueKey":"queued_message.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"user_message, assistant_message, speech.","uniqueKey":"queued_message.text","typeLabel":"string"},"speaker":{"type":"string","enum":["caller","agent"],"description":"speech: who said the line on a phone call.","uniqueKey":"queued_message.speaker","typeLabel":"enum\u003cstring>"},"queued":{"type":"boolean","description":"user_message: sent while a reply was running, and not read by the agent yet. Absent once it is.","uniqueKey":"queued_message.queued","typeLabel":"boolean"},"view":{"type":"object","description":"assistant_message: the answer laid out as UI, when that reads better than text (visual answers, `tools.visual`): sections, each a card when it has a `title` (and maybe a `badge`), of blocks. Block types: `text` (text), `facts` (items: label, value), `table` (columns, rows), `options` (items: title, label, price, detail, points, pick: what the person says by choosing it), `list` (style bullet, check or number; items), `callout` (tone, text), `badges` (items: text, tone), `bars` (items: label, value), `buttons` (items: label, message: what the person says by pressing it). Tones: neutral, good, warning, bad, info. Every figure in it is one of the text’s; the text stays the answer.","properties":{"version":{"type":"integer","const":1,"uniqueKey":"queued_message.view.version","typeLabel":"integer"},"sections":{"type":"array","items":{"type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text","facts","table","options","list","callout","badges","bars","buttons"],"isRequired":true,"uniqueKey":"queued_message.view.sections.items.[INDEX].blocks.items.[INDEX].type","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"queued_message.view.sections.items.[INDEX].blocks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"queued_message.view.sections.items.[INDEX].blocks","typeLabel":"object[]"},"title":{"type":"string","uniqueKey":"queued_message.view.sections.items.[INDEX].title","typeLabel":"string"},"badge":{"type":"object","properties":{"text":{"type":"string","uniqueKey":"queued_message.view.sections.items.[INDEX].badge.text","typeLabel":"string"},"tone":{"type":"string","enum":["neutral","good","warning","bad","info"],"uniqueKey":"queued_message.view.sections.items.[INDEX].badge.tone","typeLabel":"enum\u003cstring>"}},"uniqueKey":"queued_message.view.sections.items.[INDEX].badge","typeLabel":"object"}},"required":["blocks"],"uniqueKey":"queued_message.view.sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"queued_message.view.sections","typeLabel":"object[]"}},"uniqueKey":"queued_message.view","typeLabel":"object"},"call_id":{"type":"string","description":"tool_call, tool_result.","uniqueKey":"queued_message.call_id","typeLabel":"string"},"name":{"type":"string","description":"tool_call, tool_result: the tool. Code runs (Run code) are `bash_code_execution` (`arguments.command`) or `text_editor_code_execution` (`arguments.command`, `path`, `file_text`…) on Claude models, `code_interpreter` (`arguments.code`) on GPT models and `code_execution` (`arguments.code`) on Gemini models.","uniqueKey":"queued_message.name","typeLabel":"string"},"arguments":{"type":"object","uniqueKey":"queued_message.arguments","typeLabel":"object"},"label":{"oneOf":[{"type":"string","description":"tool_call: what it did, in plain words.","uniqueKey":"queued_message.label.oneOf.0","typeLabel":"string"},{"type":"null","description":"tool_call: what it did, in plain words.","uniqueKey":"queued_message.label.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.label","typeLabel":"string | null"},"output":{"type":"string","description":"tool_result.","uniqueKey":"queued_message.output","typeLabel":"string"},"task":{"type":"object","description":"task: a browser or computer task the agent started.","properties":{"task_id":{"type":"string","uniqueKey":"queued_message.task.task_id","typeLabel":"string"},"kind":{"type":"string","enum":["browser","desktop"],"description":"Where it ran: the conversation's cloud browser, or one of the agent's computers.","uniqueKey":"queued_message.task.kind","typeLabel":"enum\u003cstring>"},"status":{"type":"string","description":"`paused`: waiting on a request in its conversation (an `approval` or `question` item) to be decided there.","enum":["queued","running","paused","completed","failed","stopped"],"uniqueKey":"queued_message.task.status","typeLabel":"enum\u003cstring>"},"result":{"oneOf":[{"type":"string","uniqueKey":"queued_message.task.result.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"queued_message.task.result.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.task.result","typeLabel":"string | null"},"goal":{"oneOf":[{"type":"string","uniqueKey":"queued_message.task.goal.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"queued_message.task.goal.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.task.goal","typeLabel":"string | null"},"computer":{"type":"string","description":"Desktop tasks: the session code of the computer it ran on.","uniqueKey":"queued_message.task.computer","typeLabel":"string"},"plan":{"type":"array","items":{"type":"string","uniqueKey":"queued_message.task.plan.items.[INDEX]","typeLabel":"string"},"description":"Its progress as the person sees it: the short steps the agent wrote for them when it started the task (its procedure's, said simply, when it followed one). Left out when it gave none.","uniqueKey":"queued_message.task.plan","typeLabel":"string[]"},"plan_step":{"type":"integer","minimum":1,"description":"With `plan`: the step it's on (1 is the first). It only moves forward; once the task is `completed`, every step is done.","uniqueKey":"queued_message.task.plan_step","typeLabel":"integer"}},"uniqueKey":"queued_message.task","typeLabel":"object"},"files":{"type":"array","items":{"type":"object","description":"A file in a conversation: one a person attached to a message, or one the agent’s code made. Download it from GET /v1/uploads/{id}/content.","properties":{"id":{"type":"string","description":"The upload’s id, `upl_…`.","uniqueKey":"queued_message.files.items.[INDEX].id","typeLabel":"string"},"filename":{"type":"string","uniqueKey":"queued_message.files.items.[INDEX].filename","typeLabel":"string"},"content_type":{"type":"string","uniqueKey":"queued_message.files.items.[INDEX].content_type","typeLabel":"string"},"kind":{"type":"string","enum":["image","pdf","text","other"],"description":"How the model gets it: `image` (PNG, JPEG, GIF or WebP) and `pdf` it sees; `text` it reads (long files are cut); `other` only its code sandbox opens (Run code).","uniqueKey":"queued_message.files.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"bytes":{"type":"integer","uniqueKey":"queued_message.files.items.[INDEX].bytes","typeLabel":"integer"}},"uniqueKey":"queued_message.files.items.[INDEX]","typeLabel":"object"},"description":"user_message: the files the person attached. tool_result of a code run: the files the agent’s code made.","uniqueKey":"queued_message.files","typeLabel":"object[]"},"error":{"type":"boolean","description":"tool_result: it didn’t work.","uniqueKey":"queued_message.error","typeLabel":"boolean"},"surface_id":{"type":"string","description":"ui: the form’s id (`srf_…`). Answer it with `action` on the next message.","uniqueKey":"queued_message.surface_id","typeLabel":"string"},"title":{"type":"string","description":"ui: the form’s title.","uniqueKey":"queued_message.title","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","uniqueKey":"queued_message.fields.items.[INDEX]","typeLabel":"object"},"description":"ui: up to 8 fields, each `{ id, label, kind, options?, allow_other?, min?, max?, step?, unit?, default? }`; `kind` is `choice`, `multi_choice`, `yes_no`, `text`, `number`, `slider` or `date`.","uniqueKey":"queued_message.fields","typeLabel":"object[]"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"queued_message.a2ui.items.[INDEX]","typeLabel":"object"},"description":"ui: the same form as A2UI v0.9 messages.","uniqueKey":"queued_message.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"queued_message.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"ui: `{ values, text, at }` once answered, else null.","uniqueKey":"queued_message.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.answer","typeLabel":"object | null"},"approval":{"type":"object","description":"approval: a request the reply paused on, or one decided as it was asked (guardrails in `auto` or `unattended` mode).","properties":{"approval_id":{"type":"string","example":"apr_…","uniqueKey":"queued_message.approval.approval_id","typeLabel":"string"},"scope":{"type":"string","enum":["run","step"],"description":"`run`: a whole task (or a tool call). `step`: one step of a task.","uniqueKey":"queued_message.approval.scope","typeLabel":"enum\u003cstring>"},"action":{"type":"string","description":"What will happen, in Eager’s words.","uniqueKey":"queued_message.approval.action","typeLabel":"string"},"source":{"oneOf":[{"type":"string","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"queued_message.approval.source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["guardrail","safety_check","screen_check","tool","agent",null],"description":"What asked for a step’s approval: the agent’s guardrails, its model maker’s safety check, the screen check, a tool, or `agent` (the task’s own model asked, so `action` is in its words). Null for a run’s.","uniqueKey":"queued_message.approval.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.source","typeLabel":"enum\u003cstring> | null"},"site":{"oneOf":[{"type":"string","uniqueKey":"queued_message.approval.site.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"queued_message.approval.site.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.site","typeLabel":"string | null"},"app":{"oneOf":[{"type":"string","uniqueKey":"queued_message.approval.app.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"queued_message.approval.app.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.app","typeLabel":"string | null"},"category":{"oneOf":[{"type":"string","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"queued_message.approval.category.oneOf.0","typeLabel":"string"},{"type":"null","description":"A step’s \"Ask first\" category (see `GuardrailCategory`).","uniqueKey":"queued_message.approval.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.category","typeLabel":"string | null"},"risk":{"oneOf":[{"type":"string","uniqueKey":"queued_message.approval.risk.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"queued_message.approval.risk.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.risk","typeLabel":"string | null"},"task_id":{"oneOf":[{"type":"string","description":"The task it’s for, once there is one.","uniqueKey":"queued_message.approval.task_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The task it’s for, once there is one.","uniqueKey":"queued_message.approval.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.task_id","typeLabel":"string | null"},"procedure_id":{"oneOf":[{"type":"string","description":"The procedure whose Approval asked for it.","uniqueKey":"queued_message.approval.procedure_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The procedure whose Approval asked for it.","uniqueKey":"queued_message.approval.procedure_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.procedure_id","typeLabel":"string | null"},"by":{"type":"string","enum":["anyone","team"],"description":"`anyone`: the person in the chat (when the agent lets them approve) or your team. `team`: only your team.","uniqueKey":"queued_message.approval.by","typeLabel":"enum\u003cstring>"},"who":{"oneOf":[{"type":"string","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"queued_message.approval.who.oneOf.0","typeLabel":"string"},{"type":"null","description":"Who signs off, as the procedure says (a label, not a permission).","uniqueKey":"queued_message.approval.who.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.who","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"What to check or bring, from the procedure.","uniqueKey":"queued_message.approval.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"What to check or bring, from the procedure.","uniqueKey":"queued_message.approval.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.note","typeLabel":"string | null"},"covers":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"queued_message.approval.covers.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"A run’s: the \"Ask first\" categories its task may then do without asking again, as they were when it was asked. The surface says so.","uniqueKey":"queued_message.approval.covers","typeLabel":"enum\u003cstring>[]"},"surface_id":{"type":"string","description":"Its A2UI surface’s id (`srf_…`), for an `action` that decides it.","uniqueKey":"queued_message.approval.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"queued_message.approval.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The request as A2UI v0.9 messages: what will happen, what else it allows, who signs off, the note, and Approve and Deny buttons (their actions are named `approve` and `deny`).","uniqueKey":"queued_message.approval.a2ui","typeLabel":"object[]"},"decision":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"],"uniqueKey":"queued_message.approval.decision.oneOf.0.decision","typeLabel":"enum\u003cstring>"},"note":{"type":"string","description":"The decider’s note to the agent, if any.","uniqueKey":"queued_message.approval.decision.oneOf.0.note","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"queued_message.approval.decision.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"queued_message.approval.decision.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"queued_message.approval.decision.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"queued_message.approval.decision.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"queued_message.approval.decision.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"queued_message.approval.decision.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"decision":{"type":"string","enum":["approve","deny"]},"note":{"type":"string","description":"The decider’s note to the agent, if any."},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"queued_message.approval.decision.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.approval.decision","typeLabel":"object | null"}},"uniqueKey":"queued_message.approval","typeLabel":"object"},"question":{"type":"object","description":"question: a question a task asks.","properties":{"question_id":{"type":"string","example":"qst_…","uniqueKey":"queued_message.question.question_id","typeLabel":"string"},"task_id":{"oneOf":[{"type":"string","uniqueKey":"queued_message.question.task_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"queued_message.question.task_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.question.task_id","typeLabel":"string | null"},"question":{"type":"string","uniqueKey":"queued_message.question.question","typeLabel":"string"},"options":{"type":"array","items":{"type":"string","uniqueKey":"queued_message.question.options.items.[INDEX]","typeLabel":"string"},"uniqueKey":"queued_message.question.options","typeLabel":"string[]"},"surface_id":{"type":"string","description":"Its form’s id (`srf_…`), for an `action` that answers it.","uniqueKey":"queued_message.question.surface_id","typeLabel":"string"},"a2ui":{"type":"array","items":{"type":"object","uniqueKey":"queued_message.question.a2ui.items.[INDEX]","typeLabel":"object"},"description":"The form as A2UI v0.9 messages; its one field is `answer` (and `answer_other`, for something else).","uniqueKey":"queued_message.question.a2ui","typeLabel":"object[]"},"answer":{"oneOf":[{"type":"object","description":"Null while it’s open.","properties":{"text":{"type":"string","uniqueKey":"queued_message.question.answer.oneOf.0.text","typeLabel":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"queued_message.question.answer.oneOf.0.by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"queued_message.question.answer.oneOf.0.by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"queued_message.question.answer.oneOf.0.by.key_id","typeLabel":"string"}},"uniqueKey":"queued_message.question.answer.oneOf.0.by","typeLabel":"object"},"at":{"type":"string","format":"date-time","uniqueKey":"queued_message.question.answer.oneOf.0.at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"queued_message.question.answer.oneOf.0","typeLabel":"object"},{"type":"null","description":"Null while it’s open.","properties":{"text":{"type":"string"},"by":{"type":"object","description":"Who decided a request, or answered a question.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined."},"email":{"type":"string","description":"`team`: the member who decided."},"key_id":{"type":"string","description":"`team`: the API key that decided."}}},"at":{"type":"string","format":"date-time"}},"uniqueKey":"queued_message.question.answer.oneOf.1","typeLabel":"null"}],"uniqueKey":"queued_message.question.answer","typeLabel":"object | null"}},"uniqueKey":"queued_message.question","typeLabel":"object"}},"uniqueKey":"queued_message","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"response","id":"resp_…","conversation_id":"\u003cstring>","status":"in_progress","error":"\u003cstring>","output":[{"object":"conversation_item","seq":123,"response_id":"\u003cstring>","at":"2023-11-07T05:31:56Z","type":"user_message","text":"\u003cstring>","speaker":"caller","queued":true,"view":{"version":1,"sections":[{"blocks":[{"type":"text"}],"title":"\u003cstring>","badge":{"text":"\u003cstring>","tone":"neutral"}}]},"call_id":"\u003cstring>","name":"\u003cstring>","arguments":{},"label":"\u003cstring>","output":"\u003cstring>","task":{"task_id":"\u003cstring>","kind":"browser","status":"queued","result":"\u003cstring>","goal":"\u003cstring>","computer":"\u003cstring>","plan":["\u003cstring>"],"plan_step":2},"files":[{"id":"\u003cstring>","filename":"\u003cstring>","content_type":"\u003cstring>","kind":"image","bytes":123}],"error":true,"surface_id":"\u003cstring>","title":"\u003cstring>","fields":[{}],"a2ui":[{}],"answer":{},"approval":{"approval_id":"apr_…","scope":"run","action":"\u003cstring>","source":"guardrail","site":"\u003cstring>","app":"\u003cstring>","category":"\u003cstring>","risk":"\u003cstring>","task_id":"\u003cstring>","procedure_id":"\u003cstring>","by":"anyone","who":"\u003cstring>","note":"\u003cstring>","covers":["purchase"],"surface_id":"\u003cstring>","a2ui":[{}],"decision":{"decision":"approve","note":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}},"question":{"question_id":"qst_…","task_id":"\u003cstring>","question":"\u003cstring>","options":["\u003cstring>"],"surface_id":"\u003cstring>","a2ui":[{}],"answer":{"text":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}}}],"usage":{"input_tokens":123,"cached_tokens":123,"cache_write_tokens":123,"output_tokens":123,"reasoning_tokens":123,"tasks":[{"task_id":"\u003cstring>","cost_cents":123}],"code_runs":123},"created_at":"2023-11-07T05:31:56Z","ended_at":"2023-11-07T05:31:56Z","queued_message":{"object":"conversation_item","seq":123,"response_id":"\u003cstring>","at":"2023-11-07T05:31:56Z","type":"user_message","text":"\u003cstring>","speaker":"caller","queued":true,"view":{"version":1,"sections":[{"blocks":[{"type":"text"}],"title":"\u003cstring>","badge":{"text":"\u003cstring>","tone":"neutral"}}]},"call_id":"\u003cstring>","name":"\u003cstring>","arguments":{},"label":"\u003cstring>","output":"\u003cstring>","task":{"task_id":"\u003cstring>","kind":"browser","status":"queued","result":"\u003cstring>","goal":"\u003cstring>","computer":"\u003cstring>","plan":["\u003cstring>"],"plan_step":2},"files":[{"id":"\u003cstring>","filename":"\u003cstring>","content_type":"\u003cstring>","kind":"image","bytes":123}],"error":true,"surface_id":"\u003cstring>","title":"\u003cstring>","fields":[{}],"a2ui":[{}],"answer":{},"approval":{"approval_id":"apr_…","scope":"run","action":"\u003cstring>","source":"guardrail","site":"\u003cstring>","app":"\u003cstring>","category":"\u003cstring>","risk":"\u003cstring>","task_id":"\u003cstring>","procedure_id":"\u003cstring>","by":"anyone","who":"\u003cstring>","note":"\u003cstring>","covers":["purchase"],"surface_id":"\u003cstring>","a2ui":[{}],"decision":{"decision":"approve","note":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}},"question":{"question_id":"qst_…","task_id":"\u003cstring>","question":"\u003cstring>","options":["\u003cstring>"],"surface_id":"\u003cstring>","a2ui":[{}],"answer":{"text":"\u003cstring>","by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"at":"2023-11-07T05:31:56Z"}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"489fb43d-0dc7-4791-99c2-dc1eee232fca":{"description":"Invalid request, or an attachment this agent can’t open (`code`: `attachment_not_supported`; turn on Run code, on a Claude or GPT model, for files other than images, PDFs and text).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c4856dd4-0257-473a-a440-7b512394bac3":{"description":"The org’s balance can’t pay for the reply: it’s empty (`insufficient_balance`), or auto top-up can’t add funds (`auto_topup_limit_reached`, `card_needs_attention`). A reply is paid from the balance for the tokens it uses, at the model’s price; free credit is part of the balance. Add funds in Usage \u0026 billing.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"36dc69ae-fd5b-41bd-8676-ba77fa2abe54":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"1434227e-300d-4a8e-9ab5-6eee32a8876d":{"description":"A form was answered while the conversation is still answering, an attachment was already sent in another conversation, or someone decided (or answered) the request first: `code: already_decided`, with `decided_by`.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"50316e69-6ca0-42e2-a403-6204a24db70d":{"description":"The agent’s model isn’t available right now.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"19caf6ec-6aee-430b-b1b4-3f12500d5525":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An org API key (`gh_live_…`) from Settings → API keys in the console.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"85e29cb7-6717-4fc8-a547-7f631658d89f":{"url":"https://guidinghand.ai","description":"Production"},"9a2e9bd4-a985-4b06-b2e6-6058cff49185":{"url":"https://dev.guidinghand.ai","description":"Development (Stripe test mode)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An org API key (`gh_live_…`) from Settings → API keys in the console.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An org API key (`gh_live_…`) from Settings → API keys in the console.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"guiding-hand","siteName":"Eager","title":"Send a message to an agent - Eager","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T22:26:44.686Z","originalFileLocation":"api-reference/responses/send-a-message-to-an-agent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"One turn: the agent reads input (and any attachments) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without conversation_id a new conversation starts. Waits up to 55 seconds; a turn still running then comes back in_progress (poll GET /v1/responses/{id}). With stream: true the answer is server-sent events: response.created; output_text.delta (text: the next piece of the reply as the model writes it; output_text.reset takes back what a failed try streamed); message.delta (each whole message once written); tool_call.started, tool_call.completed (a code run’s has files: what the code made); ui (a form: surface_id, title, fields, a2ui; the turn ends after it); task.started (task_id, goal, kind: browser or desktop, computer for a desktop task, plan: the steps the person sees as its progress, the browser’s session_id, and live_url: its live view in the console), task.step (text: what it says it\u0026#x27;s doing now, and with a plan plan_step: the step it\u0026#x27;s on), task.completed; input.delivered (messages sent meanwhile, read); with visual answers on, answer.layout first (its answer may be laid out as UI) and message.view (seq, view: that answer laid out as cards, before the reply ends; its text is still the answer); then response.completed, response.failed, response.cancelled, or response.requires_action (response: the reply, paused on a request in its output). A message sent while a reply is still running is queued for that reply instead: 202 at once (streamed or not), with the reply as it is now and queued_message (your message’s item, queued: true). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has input.delivered (seqs: the items read, to: reply or task) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with status: failed. If a deploy hands a streamed turn to another server, the stream can close without a response.* event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with approval: \u0026quot;always\u0026quot;, or a step one of its tasks hands back: the task is paused until it’s decided, then carries on) pauses: status: requires_action, with the request (an approval item) in output. Decide it with conversation_id and approval (or an A2UI action on its surface), and no input; a question is answered the same way with answer. Your team decides, as the API key or the member signed in. The same reply carries on (same id), streamed with stream: true; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: { object: \u0026quot;decision\u0026quot;, approval | question }. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with code: already_decided and decided_by.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Eager\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send a message to an agent - Eager\">\u003cmeta data-mint-head property=\"og:description\" content=\"One turn: the agent reads input (and any attachments) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without conversation_id a new conversation starts. Waits up to 55 seconds; a turn still running then comes back in_progress (poll GET /v1/responses/{id}). With stream: true the answer is server-sent events: response.created; output_text.delta (text: the next piece of the reply as the model writes it; output_text.reset takes back what a failed try streamed); message.delta (each whole message once written); tool_call.started, tool_call.completed (a code run’s has files: what the code made); ui (a form: surface_id, title, fields, a2ui; the turn ends after it); task.started (task_id, goal, kind: browser or desktop, computer for a desktop task, plan: the steps the person sees as its progress, the browser’s session_id, and live_url: its live view in the console), task.step (text: what it says it\u0026#x27;s doing now, and with a plan plan_step: the step it\u0026#x27;s on), task.completed; input.delivered (messages sent meanwhile, read); with visual answers on, answer.layout first (its answer may be laid out as UI) and message.view (seq, view: that answer laid out as cards, before the reply ends; its text is still the answer); then response.completed, response.failed, response.cancelled, or response.requires_action (response: the reply, paused on a request in its output). A message sent while a reply is still running is queued for that reply instead: 202 at once (streamed or not), with the reply as it is now and queued_message (your message’s item, queued: true). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has input.delivered (seqs: the items read, to: reply or task) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with status: failed. If a deploy hands a streamed turn to another server, the stream can close without a response.* event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with approval: \u0026quot;always\u0026quot;, or a step one of its tasks hands back: the task is paused until it’s decided, then carries on) pauses: status: requires_action, with the request (an approval item) in output. Decide it with conversation_id and approval (or an A2UI action on its surface), and no input; a question is answered the same way with answer. Your team decides, as the API key or the member signed in. The same reply carries on (same id), streamed with stream: true; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: { object: \u0026quot;decision\u0026quot;, approval | question }. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with code: already_decided and decided_by.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Eager\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://guiding-hand.mintlify.app/_mintlify/api/og/v2?division=Responses\u0026amp;title=Send+a+message+to+an+agent\u0026amp;description=One+turn%3A+the+agent+reads+%60input%60+%28and+any+%60attachments%60%29+and+answers%2C+using+its+tools%2C+showing+a+form+when+it+needs+details%2C+and+running+browser+tasks+%28on+the+\u0026amp;theme=7594b6f93cdebe57af53f99d\u0026amp;signature=edb6ab331c99bd164c82fa4be4a2048a5129c48a401ac51aac5cbf5abebe3df5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Send a message to an agent - Eager\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One turn: the agent reads input (and any attachments) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without conversation_id a new conversation starts. Waits up to 55 seconds; a turn still running then comes back in_progress (poll GET /v1/responses/{id}). With stream: true the answer is server-sent events: response.created; output_text.delta (text: the next piece of the reply as the model writes it; output_text.reset takes back what a failed try streamed); message.delta (each whole message once written); tool_call.started, tool_call.completed (a code run’s has files: what the code made); ui (a form: surface_id, title, fields, a2ui; the turn ends after it); task.started (task_id, goal, kind: browser or desktop, computer for a desktop task, plan: the steps the person sees as its progress, the browser’s session_id, and live_url: its live view in the console), task.step (text: what it says it\u0026#x27;s doing now, and with a plan plan_step: the step it\u0026#x27;s on), task.completed; input.delivered (messages sent meanwhile, read); with visual answers on, answer.layout first (its answer may be laid out as UI) and message.view (seq, view: that answer laid out as cards, before the reply ends; its text is still the answer); then response.completed, response.failed, response.cancelled, or response.requires_action (response: the reply, paused on a request in its output). A message sent while a reply is still running is queued for that reply instead: 202 at once (streamed or not), with the reply as it is now and queued_message (your message’s item, queued: true). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has input.delivered (seqs: the items read, to: reply or task) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with status: failed. If a deploy hands a streamed turn to another server, the stream can close without a response.* event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with approval: \u0026quot;always\u0026quot;, or a step one of its tasks hands back: the task is paused until it’s decided, then carries on) pauses: status: requires_action, with the request (an approval item) in output. Decide it with conversation_id and approval (or an A2UI action on its surface), and no input; a question is answered the same way with answer. Your team decides, as the API key or the member signed in. The same reply carries on (same id), streamed with stream: true; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: { object: \u0026quot;decision\u0026quot;, approval | question }. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with code: already_decided and decided_by.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://guiding-hand.mintlify.app/_mintlify/api/og/v2?division=Responses\u0026amp;title=Send+a+message+to+an+agent\u0026amp;description=One+turn%3A+the+agent+reads+%60input%60+%28and+any+%60attachments%60%29+and+answers%2C+using+its+tools%2C+showing+a+form+when+it+needs+details%2C+and+running+browser+tasks+%28on+the+\u0026amp;theme=7594b6f93cdebe57af53f99d\u0026amp;signature=edb6ab331c99bd164c82fa4be4a2048a5129c48a401ac51aac5cbf5abebe3df5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Eager\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#183B2B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/responses/send-a-message-to-an-agent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.guidinghand.ai/#organization\",\"name\":\"Eager\",\"url\":\"https://docs.guidinghand.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/light.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=e586dcc65be9b0c262b28f3c88841ebd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.guidinghand.ai#website\",\"name\":\"Eager\",\"url\":\"https://docs.guidinghand.ai\",\"publisher\":{\"@id\":\"https://docs.guidinghand.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent#webpage\",\"url\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent\",\"name\":\"Send a message to an agent\",\"description\":\"One turn: the agent reads input (and any attachments) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without conversation_id a new conversation starts. Waits up to 55 seconds; a turn still running then comes back in_progress (poll GET /v1/responses/{id}). With stream: true the answer is server-sent events: response.created; output_text.delta (text: the next piece of the reply as the model writes it; output_text.reset takes back what a failed try streamed); message.delta (each whole message once written); tool_call.started, tool_call.completed (a code run’s has files: what the code made); ui (a form: surface_id, title, fields, a2ui; the turn ends after it); task.started (task_id, goal, kind: browser or desktop, computer for a desktop task, plan: the steps the person sees as its progress, the browser’s session_id, and live_url: its live view in the console), task.step (text: what it says it's doing now, and with a plan plan_step: the step it's on), task.completed; input.delivered (messages sent meanwhile, read); with visual answers on, answer.layout first (its answer may be laid out as UI) and message.view (seq, view: that answer laid out as cards, before the reply ends; its text is still the answer); then response.completed, response.failed, response.cancelled, or response.requires_action (response: the reply, paused on a request in its output). A message sent while a reply is still running is queued for that reply instead: 202 at once (streamed or not), with the reply as it is now and queued_message (your message’s item, queued: true). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has input.delivered (seqs: the items read, to: reply or task) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with status: failed. If a deploy hands a streamed turn to another server, the stream can close without a response.* event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with approval: \\\"always\\\", or a step one of its tasks hands back: the task is paused until it’s decided, then carries on) pauses: status: requires_action, with the request (an approval item) in output. Decide it with conversation_id and approval (or an A2UI action on its surface), and no input; a question is answered the same way with answer. Your team decides, as the API key or the member signed in. The same reply carries on (same id), streamed with stream: true; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: { object: \\\"decision\\\", approval | question }. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with code: already_decided and decided_by.\",\"dateModified\":\"2026-10-24T22:26:44.686Z\",\"isPartOf\":{\"@id\":\"https://docs.guidinghand.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API reference\",\"item\":\"https://docs.guidinghand.ai/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Send a message to an agent\",\"item\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent#apireference\",\"headline\":\"Send a message to an agent\",\"name\":\"Send a message to an agent\",\"description\":\"One turn: the agent reads input (and any attachments) and answers, using its tools, showing a form when it needs details, and running browser tasks (on the conversation’s cloud browser) or desktop tasks (on its linked computers) when it needs a website or a desktop app. Without conversation_id a new conversation starts. Waits up to 55 seconds; a turn still running then comes back in_progress (poll GET /v1/responses/{id}). With stream: true the answer is server-sent events: response.created; output_text.delta (text: the next piece of the reply as the model writes it; output_text.reset takes back what a failed try streamed); message.delta (each whole message once written); tool_call.started, tool_call.completed (a code run’s has files: what the code made); ui (a form: surface_id, title, fields, a2ui; the turn ends after it); task.started (task_id, goal, kind: browser or desktop, computer for a desktop task, plan: the steps the person sees as its progress, the browser’s session_id, and live_url: its live view in the console), task.step (text: what it says it's doing now, and with a plan plan_step: the step it's on), task.completed; input.delivered (messages sent meanwhile, read); with visual answers on, answer.layout first (its answer may be laid out as UI) and message.view (seq, view: that answer laid out as cards, before the reply ends; its text is still the answer); then response.completed, response.failed, response.cancelled, or response.requires_action (response: the reply, paused on a request in its output). A message sent while a reply is still running is queued for that reply instead: 202 at once (streamed or not), with the reply as it is now and queued_message (your message’s item, queued: true). The reply reads it at its next step, after the tool or task it’s running (a task it’s running reads it at its next step too), or carries on after its answer to answer it as well, so the one reply answers both: follow it on its own stream or with GET /v1/responses/{id}. Its stream has input.delivered (seqs: the items read, to: reply or task) when it reads them. A reply cancelled or failed before it read one leaves it in the conversation for the next turn. A failed turn still answers 200, with status: failed. If a deploy hands a streamed turn to another server, the stream can close without a response.* event: follow it with GET /v1/responses/{id}. A reply that reaches something needing approval (a procedure whose Approval is on, an HTTP tool with approval: \\\"always\\\", or a step one of its tasks hands back: the task is paused until it’s decided, then carries on) pauses: status: requires_action, with the request (an approval item) in output. Decide it with conversation_id and approval (or an A2UI action on its surface), and no input; a question is answered the same way with answer. Your team decides, as the API key or the member signed in. The same reply carries on (same id), streamed with stream: true; it still waits while another request is open. With no paused reply (a task started directly) the answer is the decision: { object: \\\"decision\\\", approval | question }. To decide without naming an agent (a task run without one) or streaming, use POST /v1/conversations/{conversation_id}/decisions. Someone deciding first: 409 with code: already_decided and decided_by.\",\"url\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.guidinghand.ai/api-reference/responses/send-a-message-to-an-agent#webpage\"},\"dateModified\":\"2026-10-24T22:26:44.686Z\",\"publisher\":{\"@id\":\"https://docs.guidinghand.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.guidinghand.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Eager\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Eager","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"API reference","pages":[{"title":"API reference","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents","href":"/api-reference/agents/create-an-agent"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}","href":"/api-reference/agents/get-an-agent"},{"title":"Delete an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}","href":"/api-reference/agents/delete-an-agent"},{"title":"Update and publish an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}","href":"/api-reference/agents/update-and-publish-an-agent"},{"title":"Get the draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/draft","href":"/api-reference/agents/get-the-draft"},{"title":"Discard the draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/draft","href":"/api-reference/agents/discard-the-draft"},{"title":"Save a draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/draft","href":"/api-reference/agents/save-a-draft"},{"title":"Publish the draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/publish","href":"/api-reference/agents/publish-the-draft"},{"title":"Duplicate an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-an-agent"},{"title":"Get the website widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/widget","href":"/api-reference/agents/get-the-website-widget"},{"title":"Change the website widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/widget","href":"/api-reference/agents/change-the-website-widget"},{"title":"List versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/versions","href":"/api-reference/agents/list-versions"},{"title":"Get a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/versions/{version}","href":"/api-reference/agents/get-a-version"},{"title":"Restore a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/versions/{version}/restore","href":"/api-reference/agents/restore-a-version"}]},{"group":"Agent files","pages":[{"title":"List an agent’s files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/files","href":"/api-reference/agent-files/list-an-agent’s-files"},{"title":"Get a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/files/{path}","href":"/api-reference/agent-files/get-a-file"},{"title":"Write a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/agents/{agent_id}/files/{path}","href":"/api-reference/agent-files/write-a-file"},{"title":"Delete a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/files/{path}","href":"/api-reference/agent-files/delete-a-file"},{"title":"List a file's earlier versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/file_revisions","href":"/api-reference/agent-files/list-a-files-earlier-versions"},{"title":"Get an earlier version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/file_revisions/{revision_id}","href":"/api-reference/agent-files/get-an-earlier-version"},{"title":"Restore an earlier version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/file_revisions/{revision_id}/restore","href":"/api-reference/agent-files/restore-an-earlier-version"}]},{"group":"Sessions","pages":[{"title":"List sessions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Create a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions","href":"/api-reference/sessions/create-a-session"},{"title":"Get a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sessions/{session_id}","href":"/api-reference/sessions/get-a-session"},{"title":"Delete a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sessions/{session_id}","href":"/api-reference/sessions/delete-a-session"},{"title":"Disconnect a session’s computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/disconnect","href":"/api-reference/sessions/disconnect-a-session’s-computer"},{"title":"Expire a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/expire","href":"/api-reference/sessions/expire-a-session"},{"title":"Open a cloud browser","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/open","href":"/api-reference/sessions/open-a-cloud-browser"},{"title":"Control a cloud browser","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/input","href":"/api-reference/sessions/control-a-cloud-browser"}]},{"group":"Tasks","pages":[{"title":"Start a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/tasks","href":"/api-reference/tasks/start-a-task"},{"title":"List tasks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Get a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}","href":"/api-reference/tasks/get-a-task"},{"title":"Follow a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}/events","href":"/api-reference/tasks/follow-a-task"},{"title":"Answer a question or approval (moved to the conversation)","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json post /v1/tasks/{task_id}/respond","href":"/api-reference/tasks/answer-a-question-or-approval-moved-to-the-conversation"},{"title":"Stop a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tasks/{task_id}/stop","href":"/api-reference/tasks/stop-a-task"},{"title":"Get a task recording","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}/recording","href":"/api-reference/tasks/get-a-task-recording"},{"title":"Get a recorded screen","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}/recording/{seq}","href":"/api-reference/tasks/get-a-recorded-screen"}]},{"group":"Webhooks","pages":[{"title":"Get the webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook","href":"/api-reference/webhooks/get-the-webhook-endpoint"},{"title":"Set the webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/webhook","href":"/api-reference/webhooks/set-the-webhook-endpoint"}]},{"group":"Test cases","pages":[{"title":"List test cases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_cases","href":"/api-reference/test-cases/list-test-cases"},{"title":"Create a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_cases","href":"/api-reference/test-cases/create-a-test-case"},{"title":"Create or update test cases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_cases/batch","href":"/api-reference/test-cases/create-or-update-test-cases"},{"title":"Get a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_cases/{test_case_id}","href":"/api-reference/test-cases/get-a-test-case"},{"title":"Delete a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_cases/{test_case_id}","href":"/api-reference/test-cases/delete-a-test-case"},{"title":"Update a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/test_cases/{test_case_id}","href":"/api-reference/test-cases/update-a-test-case"}]},{"group":"Test sets","pages":[{"title":"List test sets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_sets","href":"/api-reference/test-sets/list-test-sets"},{"title":"Create a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_sets","href":"/api-reference/test-sets/create-a-test-set"},{"title":"Get a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_sets/{test_set_id}","href":"/api-reference/test-sets/get-a-test-set"},{"title":"Delete a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_sets/{test_set_id}","href":"/api-reference/test-sets/delete-a-test-set"},{"title":"Update a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/test_sets/{test_set_id}","href":"/api-reference/test-sets/update-a-test-set"},{"title":"Add cases to a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_sets/{test_set_id}/cases","href":"/api-reference/test-sets/add-cases-to-a-test-set"},{"title":"Remove a case from a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_sets/{test_set_id}/cases/{test_case_id}","href":"/api-reference/test-sets/remove-a-case-from-a-test-set"}]},{"group":"Test runs","pages":[{"title":"List test runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs","href":"/api-reference/test-runs/list-test-runs"},{"title":"Start a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_runs","href":"/api-reference/test-runs/start-a-test-run"},{"title":"Compare test runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/compare","href":"/api-reference/test-runs/compare-test-runs"},{"title":"Get a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}","href":"/api-reference/test-runs/get-a-test-run"},{"title":"Delete a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_runs/{test_run_id}","href":"/api-reference/test-runs/delete-a-test-run"},{"title":"Cancel a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_runs/{test_run_id}/cancel","href":"/api-reference/test-runs/cancel-a-test-run"},{"title":"Rerun a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_runs/{test_run_id}/rerun","href":"/api-reference/test-runs/rerun-a-test-run"},{"title":"Get a test run's agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}/agents/{agent_id}","href":"/api-reference/test-runs/get-a-test-runs-agent"},{"title":"Get test run results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}/results","href":"/api-reference/test-runs/get-test-run-results"},{"title":"List test run attempts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}/attempts","href":"/api-reference/test-runs/list-test-run-attempts"},{"title":"Get an attempt","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/attempts/{attempt_id}","href":"/api-reference/test-runs/get-an-attempt"}]},{"group":"Start states","pages":[{"title":"List start states","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/start_states","href":"/api-reference/start-states/list-start-states"},{"title":"Create a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states","href":"/api-reference/start-states/create-a-start-state"},{"title":"Get a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/start_states/{start_state_id}","href":"/api-reference/start-states/get-a-start-state"},{"title":"Delete a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/start_states/{start_state_id}","href":"/api-reference/start-states/delete-a-start-state"},{"title":"Update a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/start_states/{start_state_id}","href":"/api-reference/start-states/update-a-start-state"},{"title":"Open a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/open","href":"/api-reference/start-states/open-a-start-state"},{"title":"Save a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/save","href":"/api-reference/start-states/save-a-start-state"},{"title":"Close a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/close","href":"/api-reference/start-states/close-a-start-state"},{"title":"Screenshot an open start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/start_states/{start_state_id}/screen","href":"/api-reference/start-states/screenshot-an-open-start-state"},{"title":"Send input to an open start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/input","href":"/api-reference/start-states/send-input-to-an-open-start-state"}]},{"group":"Runners","pages":[{"title":"List runners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runners","href":"/api-reference/runners/list-runners"},{"title":"Create a runner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/runners","href":"/api-reference/runners/create-a-runner"},{"title":"Delete a runner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/runners/{runner_id}","href":"/api-reference/runners/delete-a-runner"}]},{"group":"Agent tools","pages":[{"title":"Get the tool signing secret","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json get /v1/tool_secret","href":"/api-reference/agent-tools/get-the-tool-signing-secret"},{"title":"Rotate the tool signing secret","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json post /v1/tool_secret/rotate","href":"/api-reference/agent-tools/rotate-the-tool-signing-secret"},{"title":"Start an OAuth sign-in for an MCP server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mcp_oauth/start","href":"/api-reference/agent-tools/start-an-oauth-sign-in-for-an-mcp-server"},{"title":"Get an OAuth sign-in","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mcp_oauth/{secret_id}","href":"/api-reference/agent-tools/get-an-oauth-sign-in"},{"title":"List the connector library","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/connectors","href":"/api-reference/agent-tools/list-the-connector-library"},{"title":"List connections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/connections","href":"/api-reference/agent-tools/list-connections"},{"title":"Create a connection with headers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/connections","href":"/api-reference/agent-tools/create-a-connection-with-headers"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/connections/{connection_id}","href":"/api-reference/agent-tools/get-a-connection"},{"title":"Disconnect a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/connections/{connection_id}","href":"/api-reference/agent-tools/disconnect-a-connection"},{"title":"Rename a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/connections/{connection_id}","href":"/api-reference/agent-tools/rename-a-connection"},{"title":"Get the chat apps","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/chat_apps","href":"/api-reference/agent-tools/get-the-chat-apps"},{"title":"Make a link code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat_apps/link_code","href":"/api-reference/agent-tools/make-a-link-code"},{"title":"Download the Teams app","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/chat_apps/teams/package","href":"/api-reference/agent-tools/download-the-teams-app"},{"title":"Start adding Eager to Slack","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat_apps/slack/install","href":"/api-reference/agent-tools/start-adding-eager-to-slack"},{"title":"Unlink a chat app workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/chat_apps/workspaces/{workspace_id}","href":"/api-reference/agent-tools/unlink-a-chat-app-workspace"},{"title":"Update a chat app workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/chat_apps/workspaces/{workspace_id}","href":"/api-reference/agent-tools/update-a-chat-app-workspace"}]},{"group":"Audit log","pages":[{"title":"List audit events","description":"Who did what in the org, newest first: people, API keys, agents (their file writes during a task), the person at the computer and Eager itself. Needs the admin role or an API key. For one object’s history, send `object_type` and `object_id`: an agent’s includes its files’, and a session’s its tasks’.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/audit_events","href":"/api-reference/audit-log/list-audit-events"}]},{"group":"Responses","pages":[{"title":"Send a message to an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/responses","href":"/api-reference/responses/send-a-message-to-an-agent"},{"title":"Get a response","description":"With `wait_ms`, waits up to that long (55 s at most) for a turn still running to end.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/responses/{response_id}","href":"/api-reference/responses/get-a-response"},{"title":"Cancel a response","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/responses/{response_id}/cancel","href":"/api-reference/responses/cancel-a-response"}]},{"group":"Conversations","pages":[{"title":"List conversations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations","href":"/api-reference/conversations/list-conversations"},{"title":"Get a conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}","href":"/api-reference/conversations/get-a-conversation"},{"title":"List a conversation’s items","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/items","href":"/api-reference/conversations/list-a-conversation’s-items"},{"title":"Decide a request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/decisions","href":"/api-reference/conversations/decide-a-request"}]},{"group":"Procedures","pages":[{"title":"List an agent’s procedures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures","href":"/api-reference/procedures/list-an-agent’s-procedures"},{"title":"Add a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/procedures","href":"/api-reference/procedures/add-a-procedure"},{"title":"Get a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}","href":"/api-reference/procedures/get-a-procedure"},{"title":"Delete a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/procedures/{procedure_id}","href":"/api-reference/procedures/delete-a-procedure"},{"title":"Change a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/procedures/{procedure_id}","href":"/api-reference/procedures/change-a-procedure"},{"title":"A procedure’s revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/revisions","href":"/api-reference/procedures/a-procedure’s-revisions"},{"title":"What a procedure’s runs cost","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/costs","href":"/api-reference/procedures/what-a-procedure’s-runs-cost"},{"title":"How long a procedure’s runs take","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/latency","href":"/api-reference/procedures/how-long-a-procedure’s-runs-take"},{"title":"Test a procedure lookup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/procedures/match","href":"/api-reference/procedures/test-a-procedure-lookup"},{"title":"Add or change procedures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/procedures/batch","href":"/api-reference/procedures/add-or-change-procedures"}]},{"group":"Uploads","pages":[{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/uploads","href":"/api-reference/uploads/upload-a-file"},{"title":"Get an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/uploads/{upload_id}","href":"/api-reference/uploads/get-an-upload"},{"title":"Delete an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/uploads/{upload_id}","href":"/api-reference/uploads/delete-an-upload"},{"title":"Download an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/uploads/{upload_id}/content","href":"/api-reference/uploads/download-an-upload"}]},{"group":"Computers","pages":[{"title":"List computers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computers","href":"/api-reference/computers/list-computers"},{"title":"Link a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/computers","href":"/api-reference/computers/link-a-computer"},{"title":"Get a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computers/{computer_id}","href":"/api-reference/computers/get-a-computer"},{"title":"Unlink a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/computers/{computer_id}","href":"/api-reference/computers/unlink-a-computer"},{"title":"Rename a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/computers/{computer_id}","href":"/api-reference/computers/rename-a-computer"},{"title":"List pools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computer_pools","href":"/api-reference/computers/list-pools"},{"title":"Create a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/computer_pools","href":"/api-reference/computers/create-a-pool"},{"title":"Get a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computer_pools/{pool_id}","href":"/api-reference/computers/get-a-pool"},{"title":"Delete a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/computer_pools/{pool_id}","href":"/api-reference/computers/delete-a-pool"},{"title":"Change a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/computer_pools/{pool_id}","href":"/api-reference/computers/change-a-pool"}]},{"group":"Phone numbers","pages":[{"title":"List the agent's phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/phone_numbers","href":"/api-reference/phone-numbers/list-the-agents-phone-numbers"},{"title":"Give the agent a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/phone_numbers","href":"/api-reference/phone-numbers/give-the-agent-a-phone-number"},{"title":"Take a phone number off the agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/take-a-phone-number-off-the-agent"},{"title":"List numbers on connected accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_numbers/available","href":"/api-reference/phone-numbers/list-numbers-on-connected-accounts"},{"title":"List Twilio connections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_connections","href":"/api-reference/phone-numbers/list-twilio-connections"},{"title":"Connect a Twilio account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/phone_connections","href":"/api-reference/phone-numbers/connect-a-twilio-account"},{"title":"Remove a Twilio connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/phone_connections/{connection_id}","href":"/api-reference/phone-numbers/remove-a-twilio-connection"},{"title":"List phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_numbers","href":"/api-reference/phone-numbers/list-phone-numbers"},{"title":"Add a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/phone_numbers","href":"/api-reference/phone-numbers/add-a-phone-number"},{"title":"Get a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/get-a-phone-number"},{"title":"Take a phone number off Eager","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/take-a-phone-number-off-eager"},{"title":"Pick the agent that answers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/pick-the-agent-that-answers"}]},{"group":"Escalations","pages":[{"title":"List escalations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/escalations","href":"/api-reference/escalations/list-escalations"},{"title":"Get an escalation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/escalations/{escalation_id}","href":"/api-reference/escalations/get-an-escalation"},{"title":"Dismiss a failed run, or mark a hand-off handled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/escalations/{escalation_id}/dismiss","href":"/api-reference/escalations/dismiss-a-failed-run-or-mark-a-hand-off-handled"},{"title":"Accept a proposed change","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/escalations/{escalation_id}/accept","href":"/api-reference/escalations/accept-a-proposed-change"},{"title":"Reject a proposed change","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/escalations/{escalation_id}/reject","href":"/api-reference/escalations/reject-a-proposed-change"}]},{"group":"Agent folders","pages":[{"title":"List agent folders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agent_folders","href":"/api-reference/agent-folders/list-agent-folders"},{"title":"Make an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agent_folders","href":"/api-reference/agent-folders/make-an-agent-folder"},{"title":"Get an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agent_folders/{folder_id}","href":"/api-reference/agent-folders/get-an-agent-folder"},{"title":"Delete an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agent_folders/{folder_id}","href":"/api-reference/agent-folders/delete-an-agent-folder"},{"title":"Rename or move an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agent_folders/{folder_id}","href":"/api-reference/agent-folders/rename-or-move-an-agent-folder"}]},{"group":"Categories","pages":[{"title":"List categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/categories","href":"/api-reference/categories/list-categories"},{"title":"Add a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/categories","href":"/api-reference/categories/add-a-category"},{"title":"Remove a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/categories/{name}","href":"/api-reference/categories/remove-a-category"},{"title":"Rename a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/categories/{name}","href":"/api-reference/categories/rename-a-category"}]},{"group":"Schedules","pages":[{"title":"List the org’s schedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/schedules","href":"/api-reference/schedules/list-the-org’s-schedules"},{"title":"Preview a cron expression","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/schedules/preview","href":"/api-reference/schedules/preview-a-cron-expression"},{"title":"List an agent’s schedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules","href":"/api-reference/schedules/list-an-agent’s-schedules"},{"title":"Add a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/schedules","href":"/api-reference/schedules/add-a-schedule"},{"title":"Get a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules/{schedule_id}","href":"/api-reference/schedules/get-a-schedule"},{"title":"Delete a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/schedules/{schedule_id}","href":"/api-reference/schedules/delete-a-schedule"},{"title":"Change, pause or resume a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/schedules/{schedule_id}","href":"/api-reference/schedules/change-pause-or-resume-a-schedule"},{"title":"Run a schedule now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/schedules/{schedule_id}/run","href":"/api-reference/schedules/run-a-schedule-now"},{"title":"List a schedule’s runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules/{schedule_id}/runs","href":"/api-reference/schedules/list-a-schedule’s-runs"},{"title":"Get a schedule run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules/{schedule_id}/runs/{run_id}","href":"/api-reference/schedules/get-a-schedule-run"}]},{"group":"API Reference","pages":[{"title":"Webhook event","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook event","href":"/api-reference/webhook-event"}]}]}]}]},"title":"Send a message to an agent - Eager","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}