When the agent asks a question, the run pauses: the session’s status
becomes awaiting_human and its events include a hitl_requested
event whose data.correlation_id identifies the question
(data.question, and data.options when the agent offered
answer labels). Post the answer here; the run resumes with your text
as the reply. A question stays answerable until the session ends or
a newer message supersedes it.
Only plain questions can be answered here. A request for a secret
(a hitl_requested event whose data.kind is credential or
2fa) is answered only in the Lusor dashboard: any reply to it
made with an API key returns 403secure_ask_dashboard_only and
stores nothing.
A run created with an API key never reaches that state: when the
agent asks for a secret, the run ends as failed with errorsecret_required:<name> (see SessionV2.error) instead of
pausing, so there is nothing to answer. Save the secret in the
workspace, then retry the run naming it in secrets.
Retrying with the same text is idempotent (idempotent: true). A
different answer to a question that was already answered returns
409; the first answer stands.
Workspace scope: workspaceId in the body, otherwise the workspace
bound to the API key.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Lusor","description":"Run AI agents on real phones, or drive a phone directly, with the Lusor API.","colors":{"primary":"#111111","light":"#FAFAFA","dark":"#111111"},"logo":{"light":"https://mintcdn.com/lusor-ai/Ifu_dlUtLbDafp0r/images/lusor-logo-lightmode@2x.png?fit=max\u0026auto=format\u0026n=Ifu_dlUtLbDafp0r\u0026q=85\u0026s=977cb89acbdf111277711fe79f404fd5","dark":"https://mintcdn.com/lusor-ai/s7jsDGcgmdq30-2k/images/lusor-logo-darkmode@2x.png?fit=max\u0026auto=format\u0026n=s7jsDGcgmdq30-2k\u0026q=85\u0026s=1a44f07d6684fb79a9ae4d593a5b924d","href":"https://lusor.ai"},"favicon":"https://mintcdn.com/lusor-ai/Plbn5wBfbIBBjl9c/favicon.png?fit=max\u0026auto=format\u0026n=Plbn5wBfbIBBjl9c\u0026q=85\u0026s=48f99be162e5dd4fe61028a9631f55f0","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"links":[{"href":"https://lusor.ai/pricing","label":"Pricing"}],"primary":{"type":"button","label":"Open Lusor","href":"https://app.lusor.ai"}},"footer":{"socials":{"website":"https://lusor.ai"}},"icons":{"library":"fontawesome"},"contextual":{"options":["assistant","copy","view","download-spec","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lusor-ai","hasAudioNarration":false,"actualSubdomain":"lusor-ai","customDomains":["docs.lusor.ai"],"gitSource":{"type":"github","owner":"lusor-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af3665a77bbd85befb3aca1","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API reference","count":92},{"language":"default","tag":"Endpoints","count":91},{"language":"default","tag":"Developers","count":26},{"language":"default","tag":"Devices","count":22},{"language":"default","tag":"Sessions","count":17},{"language":"default","tag":"Phones","count":13},{"language":"default","tag":"DeviceVerbs","count":12},{"language":"default","tag":"Help Center","count":11},{"language":"default","tag":"Agents","count":11},{"language":"default","tag":"Agents \u0026 sessions","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/sessions/answer-the-agents-question-request_human","slug":"/api-reference/sessions/answer-the-agents-question-request_human","pageMetadata":{"title":"Answer the agent's question (request_human)","description":"When the agent asks a question, the run pauses: the session's status\nbecomes `awaiting_human` and its events include a `hitl_requested`\nevent whose `data.correlation_id` identifies the question\n(`data.question`, and `data.options` when the agent offered\nanswer labels). Post the answer here; the run resumes with your text\nas the reply. A question stays answerable until the session ends or\na newer message supersedes it.\n\nOnly plain questions can be answered here. A request for a secret\n(a `hitl_requested` event whose `data.kind` is `credential` or\n`2fa`) is answered only in the Lusor dashboard: any reply to it\nmade with an API key returns `403` `secure_ask_dashboard_only` and\nstores nothing.\n\nA run created with an API key never reaches that state: when the\nagent asks for a secret, the run ends as `failed` with `error`\n`secret_required:\u003cname>` (see `SessionV2.error`) instead of\npausing, so there is nothing to answer. Save the secret in the\nworkspace, then retry the run naming it in `secrets`.\n\nRetrying with the same text is idempotent (`idempotent: true`). A\ndifferent answer to a question that was already answered returns\n`409`; the first answer stands.\n\nWorkspace scope: `workspaceId` in the body, otherwise the workspace\nbound to the API key.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/hitl","href":"/api-reference/sessions/answer-the-agents-question-request_human","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, 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(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"When the agent asks a question, the run pauses: the session’s status\\nbecomes \", _jsx(_components.code, {\n children: \"awaiting_human\"\n }), \" and its events include a \", _jsx(_components.code, {\n children: \"hitl_requested\"\n }), \"\\nevent whose \", _jsx(_components.code, {\n children: \"data.correlation_id\"\n }), \" identifies the question\\n(\", _jsx(_components.code, {\n children: \"data.question\"\n }), \", and \", _jsx(_components.code, {\n children: \"data.options\"\n }), \" when the agent offered\\nanswer labels). Post the answer here; the run resumes with your text\\nas the reply. A question stays answerable until the session ends or\\na newer message supersedes it.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Only plain questions can be answered here. A request for a secret\\n(a \", _jsx(_components.code, {\n children: \"hitl_requested\"\n }), \" event whose \", _jsx(_components.code, {\n children: \"data.kind\"\n }), \" is \", _jsx(_components.code, {\n children: \"credential\"\n }), \" or\\n\", _jsx(_components.code, {\n children: \"2fa\"\n }), \") is answered only in the Lusor dashboard: any reply to it\\nmade with an API key returns \", _jsx(_components.code, {\n children: \"403\"\n }), \" \", _jsx(_components.code, {\n children: \"secure_ask_dashboard_only\"\n }), \" and\\nstores nothing.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A run created with an API key never reaches that state: when the\\nagent asks for a secret, the run ends as \", _jsx(_components.code, {\n children: \"failed\"\n }), \" with \", _jsx(_components.code, {\n children: \"error\"\n }), \"\\n\", _jsx(_components.code, {\n children: \"secret_required:\u003cname>\"\n }), \" (see \", _jsx(_components.code, {\n children: \"SessionV2.error\"\n }), \") instead of\\npausing, so there is nothing to answer. Save the secret in the\\nworkspace, then retry the run naming it in \", _jsx(_components.code, {\n children: \"secrets\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Retrying with the same text is idempotent (\", _jsx(_components.code, {\n children: \"idempotent: true\"\n }), \"). A\\ndifferent answer to a question that was already answered returns\\n\", _jsx(_components.code, {\n children: \"409\"\n }), \"; the first answer stands.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Workspace scope: \", _jsx(_components.code, {\n children: \"workspaceId\"\n }), \" in the body, otherwise the workspace\\nbound to the API key.\"]\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":"Answer the agent's question (request_human)","description":"When the agent asks a question, the run pauses: the session's status\nbecomes `awaiting_human` and its events include a `hitl_requested`\nevent whose `data.correlation_id` identifies the question\n(`data.question`, and `data.options` when the agent offered\nanswer labels). Post the answer here; the run resumes with your text\nas the reply. A question stays answerable until the session ends or\na newer message supersedes it.\n\nOnly plain questions can be answered here. A request for a secret\n(a `hitl_requested` event whose `data.kind` is `credential` or\n`2fa`) is answered only in the Lusor dashboard: any reply to it\nmade with an API key returns `403` `secure_ask_dashboard_only` and\nstores nothing.\n\nA run created with an API key never reaches that state: when the\nagent asks for a secret, the run ends as `failed` with `error`\n`secret_required:\u003cname>` (see `SessionV2.error`) instead of\npausing, so there is nothing to answer. Save the secret in the\nworkspace, then retry the run naming it in `secrets`.\n\nRetrying with the same text is idempotent (`idempotent: true`). A\ndifferent answer to a question that was already answered returns\n`409`; the first answer stands.\n\nWorkspace scope: `workspaceId` in the body, otherwise the workspace\nbound to the API key.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/hitl","href":"/api-reference/sessions/answer-the-agents-question-request_human","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"answerSessionHitl","summary":"Answer the agent's question (request_human)","description":"When the agent asks a question, the run pauses: the session's status\nbecomes `awaiting_human` and its events include a `hitl_requested`\nevent whose `data.correlation_id` identifies the question\n(`data.question`, and `data.options` when the agent offered\nanswer labels). Post the answer here; the run resumes with your text\nas the reply. A question stays answerable until the session ends or\na newer message supersedes it.\n\nOnly plain questions can be answered here. A request for a secret\n(a `hitl_requested` event whose `data.kind` is `credential` or\n`2fa`) is answered only in the Lusor dashboard: any reply to it\nmade with an API key returns `403` `secure_ask_dashboard_only` and\nstores nothing.\n\nA run created with an API key never reaches that state: when the\nagent asks for a secret, the run ends as `failed` with `error`\n`secret_required:\u003cname>` (see `SessionV2.error`) instead of\npausing, so there is nothing to answer. Save the secret in the\nworkspace, then retry the run naming it in `secrets`.\n\nRetrying with the same text is idempotent (`idempotent: true`). A\ndifferent answer to a question that was already answered returns\n`409`; the first answer stands.\n\nWorkspace scope: `workspaceId` in the body, otherwise the workspace\nbound to the API key.\n","tags":["Sessions"],"parameters":["14a888d4-37ad-4772-95f9-84b5b3ada057"],"requestBody":"fc759340-bebf-4a87-bed0-dc1b8906dd20","responses":{"202":"40e78855-550b-42aa-bac5-9d42c6159ee4","400":"09557a1a-5191-4405-b370-118382e33438","401":"0a315df7-2e03-4adb-b2ab-5745eabdb7a5","402":"71782c89-43b5-43ee-b175-fcbd663f34e5","403":"5b5fe139-5d5b-43d7-901f-a813cb2d1570","404":"b874ec1a-eb34-40a3-b92a-1276d93d9547","409":"aa0a4f56-4870-4afb-b5ee-704f4879c1cd","410":"67a5b5be-a8f9-4b1e-b149-b625f41b83d3","429":"146c07f9-053d-4a15-8ac9-86704738a22c","500":"c3077de7-a4e8-4635-91d1-549048aa455f","502":"9827b907-8bd6-4289-bc05-9715869b7c42"},"method":"post","type":"path","servers":["67414a81-b86b-4d15-b96f-3a390c272e81"],"security":["e990c9c7-7adf-4c43-a478-c17a739371f3","a66fdb89-a491-49fa-b34f-5bf4ba59f929"],"path":"/v1/sessions/{id}/hitl","baseUrlOptions":["https://api.lusor.ai"],"title":"Answer the agent's question (request_human)","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"14a888d4-37ad-4772-95f9-84b5b3ada057":{"name":"id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Session ID.","uniqueKey":"","typeLabel":"string"},"description":"Session ID."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["correlation_id","response"],"properties":{"correlation_id":{"type":"string","format":"uuid","description":"`data.correlation_id` of the `hitl_requested` event being answered.","isRequired":true,"uniqueKey":"correlation_id","typeLabel":"string\u003cuuid>"},"response":{"type":"string","minLength":1,"description":"The answer. For a question with `options`, the chosen label or any other text.","isRequired":true,"uniqueKey":"response","typeLabel":"string"},"workspaceId":{"type":"string","format":"uuid","description":"Optional for workspace-scoped API keys.","uniqueKey":"workspaceId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"correlation_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","response":"\u003cstring>","workspaceId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"40e78855-550b-42aa-bac5-9d42c6159ee4":{"description":"Answer accepted; the run resumes","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["resolved","idempotent","continuation"],"properties":{"resolved":{"type":"boolean","description":"Always `true`.","isRequired":true,"uniqueKey":"data.resolved","typeLabel":"boolean"},"idempotent":{"type":"boolean","description":"`true` when this repeats an answer that was already accepted.","isRequired":true,"uniqueKey":"data.idempotent","typeLabel":"boolean"},"continuation":{"type":"object","required":["status","invocationId","queued"],"properties":{"status":{"type":"string","enum":["queued"],"isRequired":true,"uniqueKey":"data.continuation.status","typeLabel":"enum\u003cstring>"},"invocationId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.continuation.invocationId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.continuation.invocationId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.continuation.invocationId","typeLabel":"string | null"},"queued":{"type":"boolean","description":"`true` when the resumed run waits behind a run still on the phone.","isRequired":true,"uniqueKey":"data.continuation.queued","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"data.continuation","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"resolved":true,"idempotent":true,"continuation":{"status":"queued","invocationId":"\u003cstring>","queued":true}}}}},"exampleType":"generated"}},"exampleType":"generated"},"09557a1a-5191-4405-b370-118382e33438":{"description":"`bad_request`: `correlation_id` or `response` is missing, or the\nquestion is a secret request. `card_details_not_allowed`: the\nquestion is a secret request and `response` is a payment card\nnumber.\n","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"0a315df7-2e03-4adb-b2ab-5745eabdb7a5":{"description":"Authentication required or invalid credentials.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"71782c89-43b5-43ee-b175-fcbd663f34e5":{"description":"`credits_exhausted` or `billing_required`, as for `POST /v1/sessions/{id}/continue`.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5b5fe139-5d5b-43d7-901f-a813cb2d1570":{"description":"`secure_ask_dashboard_only`: the question is a secret request\n(`data.kind` `credential` or `2fa`), which only the Lusor\ndashboard can answer. Nothing is stored and the run stays paused.\n","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"b874ec1a-eb34-40a3-b92a-1276d93d9547":{"description":"The session, or a question with this `correlation_id` in it, was not found.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"aa0a4f56-4870-4afb-b5ee-704f4879c1cd":{"description":"`conflict`: the question was already answered with different\ntext; this answer was discarded. The other `409` codes of\n`POST /v1/sessions/{id}/continue` also apply.\n","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"67a5b5be-a8f9-4b1e-b149-b625f41b83d3":{"description":"`stale_hitl_request`: the session has ended, or a newer message superseded the question.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"146c07f9-053d-4a15-8ac9-86704738a22c":{"description":"`device_busy`: the phone is running a different session.","content":{"application/json":{"schema":{"type":"object","description":"A `429` refusal. `device_busy` carries `currentSessionId` (the run\nholding the phone); `cap_busy` does not. Any authenticated request\ncan also get `rate_limit_exceeded` when the API's request rate limit\nis exceeded; it comes with a `Retry-After` header in seconds.\n","required":["error"],"properties":{"error":{"type":"string","enum":["device_busy","cap_busy","rate_limit_exceeded"],"isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"currentSessionId":{"oneOf":[{"type":"string","uniqueKey":"currentSessionId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"currentSessionId.oneOf.1","typeLabel":"null"}],"uniqueKey":"currentSessionId","typeLabel":"string | null"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"device_busy","currentSessionId":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"c3077de7-a4e8-4635-91d1-549048aa455f":{"description":"`db_error`: the answer was not accepted and could not be rolled back; retry shortly.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"9827b907-8bd6-4289-bc05-9715869b7c42":{"description":"The phone or a Lusor service could not be reached.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e990c9c7-7adf-4c43-a478-c17a739371f3":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Workspace API key, created in the dashboard under Settings → API Keys.","scopes":[],"schemeName":"ApiKey"}},"a66fdb89-a491-49fa-b34f-5bf4ba59f929":{"BearerAuth":{"type":"http","scheme":"bearer","description":"The same workspace API key, sent as `Authorization: Bearer \u003cyour API key>`.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"67414a81-b86b-4d15-b96f-3a390c272e81":{"url":"https://api.lusor.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Workspace API key, created in the dashboard under Settings → API Keys.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"X-Api-Key","type":"string","description":"Workspace API key, created in the dashboard under Settings → API Keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"X-Api-Key"}],"title":"ApiKey"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"The same workspace API key, sent as `Authorization: Bearer \u003cyour API key>`.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"The same workspace API key, sent as `Authorization: Bearer \u003cyour API key>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"lusor-ai","siteName":"Lusor","title":"Answer the agent's question (request_human) - Lusor","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T18:45:52.339Z","originalFileLocation":"api-reference/sessions/answer-the-agents-question-request_human.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=\"When the agent asks a question, the run pauses: the session\u0026#x27;s status becomes awaiting_human and its events include a hitl_requested event whose data.correlation_id identifies the question (data.question, and data.options when the agent offered answer labels). Post the answer here; the run resumes with your text as the reply. A question stays answerable until the session ends or a newer message supersedes it. Only plain questions can be answered here. A request for a secret (a hitl_requested event whose data.kind is credential or 2fa) is answered only in the Lusor dashboard: any reply to it made with an API key returns 403 secure_ask_dashboard_only and stores nothing. A run created with an API key never reaches that state: when the agent asks for a secret, the run ends as failed with error secret_required: (see SessionV2.error) instead of pausing, so there is nothing to answer. Save the secret in the workspace, then retry the run naming it in secrets. Retrying with the same text is idempotent (idempotent: true). A different answer to a question that was already answered returns 409; the first answer stands. Workspace scope: workspaceId in the body, otherwise the workspace bound to the API key.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lusor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_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/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Answer the agent\u0026#x27;s question (request_human) - Lusor\">\u003cmeta data-mint-head property=\"og:description\" content=\"When the agent asks a question, the run pauses: the session\u0026#x27;s status becomes awaiting_human and its events include a hitl_requested event whose data.correlation_id identifies the question (data.question, and data.options when the agent offered answer labels). Post the answer here; the run resumes with your text as the reply. A question stays answerable until the session ends or a newer message supersedes it. Only plain questions can be answered here. A request for a secret (a hitl_requested event whose data.kind is credential or 2fa) is answered only in the Lusor dashboard: any reply to it made with an API key returns 403 secure_ask_dashboard_only and stores nothing. A run created with an API key never reaches that state: when the agent asks for a secret, the run ends as failed with error secret_required: (see SessionV2.error) instead of pausing, so there is nothing to answer. Save the secret in the workspace, then retry the run naming it in secrets. Retrying with the same text is idempotent (idempotent: true). A different answer to a question that was already answered returns 409; the first answer stands. Workspace scope: workspaceId in the body, otherwise the workspace bound to the API key.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lusor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lusor-ai.mintlify.site/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Answer+the+agent%27s+question+%28request_human%29\u0026amp;description=When+the+agent+asks+a+question%2C+the+run+pauses%3A+the+session%27s+status%0Abecomes+%60awaiting_human%60+and+its+events+include+a+%60hitl_requested%60%0Aevent+whose+%60data.correl\u0026amp;theme=11044ab09cca21353c9d0db7\u0026amp;signature=12efbeb5a88e2ba013a51bf417c5ed7659d23c799046eca74da0595dfaacf836\">\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=\"Answer the agent\u0026#x27;s question (request_human) - Lusor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"When the agent asks a question, the run pauses: the session\u0026#x27;s status becomes awaiting_human and its events include a hitl_requested event whose data.correlation_id identifies the question (data.question, and data.options when the agent offered answer labels). Post the answer here; the run resumes with your text as the reply. A question stays answerable until the session ends or a newer message supersedes it. Only plain questions can be answered here. A request for a secret (a hitl_requested event whose data.kind is credential or 2fa) is answered only in the Lusor dashboard: any reply to it made with an API key returns 403 secure_ask_dashboard_only and stores nothing. A run created with an API key never reaches that state: when the agent asks for a secret, the run ends as failed with error secret_required: (see SessionV2.error) instead of pausing, so there is nothing to answer. Save the secret in the workspace, then retry the run naming it in secrets. Retrying with the same text is idempotent (idempotent: true). A different answer to a question that was already answered returns 409; the first answer stands. Workspace scope: workspaceId in the body, otherwise the workspace bound to the API key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lusor-ai.mintlify.site/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Answer+the+agent%27s+question+%28request_human%29\u0026amp;description=When+the+agent+asks+a+question%2C+the+run+pauses%3A+the+session%27s+status%0Abecomes+%60awaiting_human%60+and+its+events+include+a+%60hitl_requested%60%0Aevent+whose+%60data.correl\u0026amp;theme=11044ab09cca21353c9d0db7\u0026amp;signature=12efbeb5a88e2ba013a51bf417c5ed7659d23c799046eca74da0595dfaacf836\">\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/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lusor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#111111\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/sessions/answer-the-agents-question-request_human.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lusor.ai/#organization\",\"name\":\"Lusor\",\"url\":\"https://docs.lusor.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lusor-ai/Ifu_dlUtLbDafp0r/images/lusor-logo-lightmode@2x.png?fit=max\u0026auto=format\u0026n=Ifu_dlUtLbDafp0r\u0026q=85\u0026s=977cb89acbdf111277711fe79f404fd5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lusor.ai#website\",\"name\":\"Lusor\",\"url\":\"https://docs.lusor.ai\",\"publisher\":{\"@id\":\"https://docs.lusor.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human#webpage\",\"url\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human\",\"name\":\"Answer the agent's question (request_human)\",\"description\":\"When the agent asks a question, the run pauses: the session's status becomes awaiting_human and its events include a hitl_requested event whose data.correlation_id identifies the question (data.question, and data.options when the agent offered answer labels). Post the answer here; the run resumes with your text as the reply. A question stays answerable until the session ends or a newer message supersedes it. Only plain questions can be answered here. A request for a secret (a hitl_requested event whose data.kind is credential or 2fa) is answered only in the Lusor dashboard: any reply to it made with an API key returns 403 secure_ask_dashboard_only and stores nothing. A run created with an API key never reaches that state: when the agent asks for a secret, the run ends as failed with error secret_required: (see SessionV2.error) instead of pausing, so there is nothing to answer. Save the secret in the workspace, then retry the run naming it in secrets. Retrying with the same text is idempotent (idempotent: true). A different answer to a question that was already answered returns 409; the first answer stands. Workspace scope: workspaceId in the body, otherwise the workspace bound to the API key.\",\"dateModified\":\"2026-11-10T18:45:52.339Z\",\"isPartOf\":{\"@id\":\"https://docs.lusor.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.lusor.ai/api-reference/sessions/get-session-detail\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sessions\",\"item\":\"https://docs.lusor.ai/api-reference/sessions/get-session-detail\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Answer the agent's question (request_human)\",\"item\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human#apireference\",\"headline\":\"Answer the agent's question (request_human)\",\"name\":\"Answer the agent's question (request_human)\",\"description\":\"When the agent asks a question, the run pauses: the session's status becomes awaiting_human and its events include a hitl_requested event whose data.correlation_id identifies the question (data.question, and data.options when the agent offered answer labels). Post the answer here; the run resumes with your text as the reply. A question stays answerable until the session ends or a newer message supersedes it. Only plain questions can be answered here. A request for a secret (a hitl_requested event whose data.kind is credential or 2fa) is answered only in the Lusor dashboard: any reply to it made with an API key returns 403 secure_ask_dashboard_only and stores nothing. A run created with an API key never reaches that state: when the agent asks for a secret, the run ends as failed with error secret_required: (see SessionV2.error) instead of pausing, so there is nothing to answer. Save the secret in the workspace, then retry the run naming it in secrets. Retrying with the same text is idempotent (idempotent: true). A different answer to a question that was already answered returns 409; the first answer stands. Workspace scope: workspaceId in the body, otherwise the workspace bound to the API key.\",\"url\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lusor.ai/api-reference/sessions/answer-the-agents-question-request_human#webpage\"},\"dateModified\":\"2026-11-10T18:45:52.339Z\",\"publisher\":{\"@id\":\"https://docs.lusor.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lusor.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lusor\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lusor\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/sessions/answer-the-agents-question-request_human.md","siteName":"Lusor","nav":{"global":null,"tabs":[{"tab":"Developers","pages":[{"title":"Developers","href":""}]},{"tab":"Help Center","pages":[{"title":"Help Center","href":"/help"}]},{"tab":"Build with AI","pages":[{"title":"Build with AI","href":"/connect"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Sessions","pages":[{"title":"Get session detail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}","href":"/api-reference/sessions/get-session-detail"},{"title":"Rename a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/sessions/{id}","href":"/api-reference/sessions/rename-a-session"},{"title":"Get session events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/events","href":"/api-reference/sessions/get-session-events"},{"title":"Get the detailed step breakdown (session JSON)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/breakdown","href":"/api-reference/sessions/get-the-detailed-step-breakdown-session-json"},{"title":"List sessions for device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/sessions","href":"/api-reference/sessions/list-sessions-for-device"},{"title":"Create a new session on this device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/sessions","href":"/api-reference/sessions/create-a-new-session-on-this-device"},{"title":"List sessions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Get session status (lightweight)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/status","href":"/api-reference/sessions/get-session-status-lightweight"},{"title":"Get session artifacts (screenshots + ui-states + output)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/artifacts","href":"/api-reference/sessions/get-session-artifacts-screenshots-+-ui-states-+-output"},{"title":"Cancel a running session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stop","href":"/api-reference/sessions/cancel-a-running-session"},{"title":"Get one captured UI state of a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/ui-states/{file}","href":"/api-reference/sessions/get-one-captured-ui-state-of-a-session"},{"title":"Cancel a queued follow-up or queued agent turn","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/sessions/{id}/queue/{invocationId}","href":"/api-reference/sessions/cancel-a-queued-follow-up-or-queued-agent-turn"},{"title":"Send a follow-up message to a session","description":"Continues the session with a new prompt on the same transcript. The\nfollow-up runs on the session's phone (for an agent's session, the\nphone the agent has now). If the session is still running, the\nfollow-up is queued behind it (`queued: true`) and runs when the\ncurrent run ends. Continuing a finished session is allowed.\n\nSend an `Idempotency-Key` header to make retries safe: the same key\nattaches to the original follow-up instead of sending a second one.\n\nWorkspace scope: `workspaceId` in the body, otherwise the workspace\nbound to the API key.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/continue","href":"/api-reference/sessions/send-a-follow-up-message-to-a-session"},{"title":"Answer the agent's question (request_human)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/hitl","href":"/api-reference/sessions/answer-the-agents-question-request_human"},{"title":"Get the session's video recording","description":"Returns signed URLs for the recording's MP4 segments, in order.\nURLs expire at each segment's `expires_at` (Unix seconds); fetch\nthis endpoint again for fresh ones.\n\n`recording_status` is always present:\n\n- `absent`: the session has no recording.\n- `pending`: the recording is still being finalized. Poll again.\n- `complete`: finished. When `data` is present it is always\n `complete`.\n- `failed`: finalization failed; `recording_status_reason` says\n why.\n\n`data` is null until there is playable media. A recording follows\nthe workspace's history window: past it, `402` with\n`reason: \"history_window\"`, unless the plan includes video replay\nor the recording was made on a paid Lusor Phone plan.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/recording","href":"/api-reference/sessions/get-the-sessions-video-recording"},{"title":"Get the session's step-by-step replay","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/replay","href":"/api-reference/sessions/get-the-sessions-step-by-step-replay"},{"title":"Download one replay frame (PNG)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/replay/frame","href":"/api-reference/sessions/download-one-replay-frame-png"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/skills","href":"/api-reference/skills/list-skills"},{"title":"Create a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/skills","href":"/api-reference/skills/create-a-skill"},{"title":"Get a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/skills/{id}","href":"/api-reference/skills/get-a-skill"},{"title":"Delete a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/skills/{id}","href":"/api-reference/skills/delete-a-skill"},{"title":"Update a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/skills/{id}","href":"/api-reference/skills/update-a-skill"}]},{"group":"Secrets","pages":[{"title":"List the secrets saved in a workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/vault","href":"/api-reference/secrets/list-the-secrets-saved-in-a-workspace"}]},{"group":"PhoneNumbers","pages":[{"title":"List workspace phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/numbers","href":"/api-reference/phonenumbers/list-workspace-phone-numbers"},{"title":"Get one workspace phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/numbers/{phoneNumberId}","href":"/api-reference/phonenumbers/get-one-workspace-phone-number"},{"title":"Page stored SMS messages for a workspace number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/numbers/{phoneNumberId}/messages","href":"/api-reference/phonenumbers/page-stored-sms-messages-for-a-workspace-number"}]},{"group":"Emails","pages":[{"title":"List the workspace's Agent Mail addresses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/emails/addresses","href":"/api-reference/emails/list-the-workspaces-agent-mail-addresses"},{"title":"Page stored inbound mail for a workspace address","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/emails/messages","href":"/api-reference/emails/page-stored-inbound-mail-for-a-workspace-address"}]},{"group":"Devices","pages":[{"title":"List devices in the key's workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/devices","href":"/api-reference/devices/list-devices-in-the-keys-workspace"},{"title":"List devices in a workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices","href":"/api-reference/devices/list-devices-in-a-workspace"},{"title":"Preview deploying Lusor Phones","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/deploy/preview","href":"/api-reference/devices/preview-deploying-lusor-phones"},{"title":"Deploy the quoted Lusor Phones","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/deploy","href":"/api-reference/devices/deploy-the-quoted-lusor-phones"},{"title":"Preview removing a Lusor Phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/remove/preview","href":"/api-reference/devices/preview-removing-a-lusor-phone"},{"title":"Remove a Lusor Phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/remove","href":"/api-reference/devices/remove-a-lusor-phone"},{"title":"Get a Lusor Phone's location and timezone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/geo","href":"/api-reference/devices/get-a-lusor-phones-location-and-timezone"},{"title":"Set a Lusor Phone's location and timezone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/workspaces/{workspaceId}/devices/{deviceId}/geo","href":"/api-reference/devices/set-a-lusor-phones-location-and-timezone"},{"title":"Restore a Lusor Phone's automatic location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/workspaces/{workspaceId}/devices/{deviceId}/geo","href":"/api-reference/devices/restore-a-lusor-phones-automatic-location"},{"title":"Get which agents are using, queued for, or attached to a phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/occupancy","href":"/api-reference/devices/get-which-agents-are-using-queued-for-or-attached-to-a-phone"},{"title":"List the countries a Lusor Phone's Internet can exit from","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/internet/locations","href":"/api-reference/devices/list-the-countries-a-lusor-phones-internet-can-exit-from"},{"title":"Get a Lusor Phone's Internet exit country and route","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/internet-location","href":"/api-reference/devices/get-a-lusor-phones-internet-exit-country-and-route"},{"title":"Get a Lusor Phone's static IP status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/static-ip","href":"/api-reference/devices/get-a-lusor-phones-static-ip-status"},{"title":"Get a Lusor Phone's wipe-and-reset progress","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/reset","href":"/api-reference/devices/get-a-lusor-phones-wipe-and-reset-progress"},{"title":"Get device UI state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/state","href":"/api-reference/devices/get-device-ui-state"},{"title":"Get fresh device screenshot (binary PNG)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/screenshot","href":"/api-reference/devices/get-fresh-device-screenshot-binary-png"},{"title":"Get a Lusor Phone's language","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/language","href":"/api-reference/devices/get-a-lusor-phones-language"},{"title":"Set a Lusor Phone's language","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/workspaces/{workspaceId}/devices/{deviceId}/language","href":"/api-reference/devices/set-a-lusor-phones-language"},{"title":"Get a Lusor Phone's identity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/identity","href":"/api-reference/devices/get-a-lusor-phones-identity"},{"title":"Set a Lusor Phone's identity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/workspaces/{workspaceId}/devices/{deviceId}/identity","href":"/api-reference/devices/set-a-lusor-phones-identity"},{"title":"Get a Lusor Phone's last advertising-ID reset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/advertising-id","href":"/api-reference/devices/get-a-lusor-phones-last-advertising-id-reset"},{"title":"Reset a Lusor Phone's advertising ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/advertising-id/reset","href":"/api-reference/devices/reset-a-lusor-phones-advertising-id"}]},{"group":"DeviceVerbs","pages":[{"title":"Trigger screenshot (capture-aware verb)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/screenshot","href":"/api-reference/deviceverbs/trigger-screenshot-capture-aware-verb"},{"title":"Tap on device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/tap","href":"/api-reference/deviceverbs/tap-on-device"},{"title":"Swipe gesture on device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/swipe","href":"/api-reference/deviceverbs/swipe-gesture-on-device"},{"title":"Type text into focused field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/type","href":"/api-reference/deviceverbs/type-text-into-focused-field"},{"title":"Press a key on device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/key","href":"/api-reference/deviceverbs/press-a-key-on-device"},{"title":"Clear focused field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/clear","href":"/api-reference/deviceverbs/clear-focused-field"},{"title":"Press Back key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/back","href":"/api-reference/deviceverbs/press-back-key"},{"title":"Press Home key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/home","href":"/api-reference/deviceverbs/press-home-key"},{"title":"Press Recent Apps key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/recent","href":"/api-reference/deviceverbs/press-recent-apps-key"},{"title":"Launch an app","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/apps/start","href":"/api-reference/deviceverbs/launch-an-app"},{"title":"Force-stop an app","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/apps/stop","href":"/api-reference/deviceverbs/force-stop-an-app"},{"title":"Run a chain of actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/chain","href":"/api-reference/deviceverbs/run-a-chain-of-actions"}]},{"group":"Shell","pages":[{"title":"Run a restricted shell command","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/shell","href":"/api-reference/shell/run-a-restricted-shell-command"}]},{"group":"LiveView","pages":[{"title":"Start a live view of the session's phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/start","href":"/api-reference/liveview/start-a-live-view-of-the-sessions-phone"},{"title":"Re-arm a live view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/connect","href":"/api-reference/liveview/re-arm-a-live-view"},{"title":"Extend a live view's liveness","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/keepalive","href":"/api-reference/liveview/extend-a-live-views-liveness"},{"title":"Ask the phone for a fresh keyframe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/request_frame","href":"/api-reference/liveview/ask-the-phone-for-a-fresh-keyframe"},{"title":"Send a WebRTC answer or ICE candidate to the phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/signal","href":"/api-reference/liveview/send-a-webrtc-answer-or-ice-candidate-to-the-phone"},{"title":"Stop a live view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/stop","href":"/api-reference/liveview/stop-a-live-view"},{"title":"Get the ICE servers for a live view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/stream/ice-servers","href":"/api-reference/liveview/get-the-ice-servers-for-a-live-view"},{"title":"Receive the phone's WebRTC signaling (Server-Sent Events)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/stream/events","href":"/api-reference/liveview/receive-the-phones-webrtc-signaling-server-sent-events"}]},{"group":"Datasets","pages":[{"title":"Promote one session run's list to a Dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/datasets","href":"/api-reference/datasets/promote-one-session-runs-list-to-a-dataset"},{"title":"List Datasets visible to the caller","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets","href":"/api-reference/datasets/list-datasets-visible-to-the-caller"},{"title":"Get a Dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets/{id}","href":"/api-reference/datasets/get-a-dataset"},{"title":"Delete a Dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/datasets/{id}","href":"/api-reference/datasets/delete-a-dataset"},{"title":"Update a Dataset (rename and/or replace output)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/datasets/{id}","href":"/api-reference/datasets/update-a-dataset-rename-andor-replace-output"}]},{"group":"Agents","pages":[{"title":"List active agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents","href":"/api-reference/agents/list-active-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents","href":"/api-reference/agents/create-an-agent"},{"title":"Get or create the workspace's primary agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/primary","href":"/api-reference/agents/get-or-create-the-workspaces-primary-agent"},{"title":"List agents recoverable within the 30-day restore window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents/trash","href":"/api-reference/agents/list-agents-recoverable-within-the-30-day-restore-window"},{"title":"Get an agent, attachments, and the newest page of turns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents/{id}","href":"/api-reference/agents/get-an-agent-attachments-and-the-newest-page-of-turns"},{"title":"Archive an agent for 30 days","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/agents/{id}","href":"/api-reference/agents/archive-an-agent-for-30-days"},{"title":"Update an agent and atomically replace its attachment set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/agents/{id}","href":"/api-reference/agents/update-an-agent-and-atomically-replace-its-attachment-set"},{"title":"Restore an archived agent within its 30-day window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/{id}/restore","href":"/api-reference/agents/restore-an-archived-agent-within-its-30-day-window"},{"title":"Read one older page of an agent's turn history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents/{id}/turns","href":"/api-reference/agents/read-one-older-page-of-an-agents-turn-history"},{"title":"Submit a turn to an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/{id}/turns","href":"/api-reference/agents/submit-a-turn-to-an-agent"},{"title":"Cancel a turn that is still waiting for its device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/{id}/turns/{sessionId}/cancel","href":"/api-reference/agents/cancel-a-turn-that-is-still-waiting-for-its-device"}]},{"group":"Workspaces","pages":[{"title":"Get a workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}","href":"/api-reference/workspaces/get-a-workspace"}]},{"group":"Catalog","pages":[{"title":"List installable catalog apps","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/catalog/apps","href":"/api-reference/catalog/list-installable-catalog-apps"},{"title":"Get a catalog app's icon (binary image)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/catalog/apps/{package}/icon","href":"/api-reference/catalog/get-a-catalog-apps-icon-binary-image"}]},{"group":"Health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/health","href":"/api-reference/health/health-check"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Answer the agent's question (request_human) - Lusor","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D6S0Yh6q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}