Use POST /chat/query/ to ask a question. Send X-API-KEY in the header; the body must include query and user_id. To continue a conversation, pass back the chat_id from a previous response.
user_id (required) — your identifier for the end-user. Each (API key, user_id) pair allows one concurrent request; a second in-flight request returns 429.
chat_id (optional) — UUID of the thread to continue. Omit to start a new thread; the server returns a fresh chat_id. A malformed UUID returns 400; a UUID you can’t access returns 409.
reasoning_level (optional) — low, medium (default), or high. Higher levels favor more thorough answers.
topic_names (optional) — list of knowledge topic names to scope retrieval to (e.g. ["Family A"]). Names are case-insensitive; an unknown name returns 400. Omit to let the agent choose.
sources — evidence cited in the answer. Each entry has id, source_name, page, type, url, and display_name. Join a source’s id to citation tokens in final_answer (e.g. [0351-E1]).
tools — ordered list of tool calls the agent made, each with id, name, display_name, title, input, output, and status.
Set Accept: text/event-stream to receive incremental output instead of a single JSON response. The stream opens with a start event, emits text, tool_call, tool_output, and todos (progress) events as the agent runs, and ends with a done event (whose payload matches the JSON response) or an error event.
Set to text/event-stream to opt into Server-Sent Events streaming. Any other value (or omitting the header) returns the standard JSON response.
Available options:
application/json,
text/event-stream
Body
application/json
Query payload for the Voltai agent.
Provide query and user_id. Topic scope is chosen automatically unless you pass topic_names. The agent decides its own reasoning depth — use reasoning_level to bias it.
Your application's identifier for the end-user making the request. Used for per-user session tracking and concurrency enforcement. Each (API key, user_id) pair is limited to one concurrent request.
Existing chat thread to continue. Must be a valid UUID. If it matches a chat in your organization, the new turn is appended; if the UUID is well-formed but not yet used, the server creates a new chat under that UUID (useful for client-side idempotency / correlation). Omit to let the server mint a fresh UUID. A UUID that already belongs to a chat the API key cannot resume returns 409.
Bias for how much intermediate reasoning the agent should do. low favors quick answers, high favors thorough multi-step reasoning. Unknown values fall back to medium.
Optional. Names of knowledge topics to scope retrieval to. Each must match a topic in your organization (case-insensitive). If omitted or empty, topic scope is chosen automatically. If any name does not match a topic, the request returns 400.
Deprecated singular alias for topic_names. When topic_names is omitted, topic_name (if present) is wrapped into a one-element list. Prefer topic_names for new integrations.
Response
Agent response. Returned as a single JSON object by default, or as a Server-Sent Events stream when the request includes Accept: text/event-stream.
Aggregated reasoning string from the legacy multi-agent orchestrator: per-agent entries are concatenated in execution order, each prefixed by a header line and separated by a blank line. Empty under the current agent pipeline — use tools and content to inspect the reasoning trail instead.
Identifier of the specific question/answer turn within the thread. A new conversation_id is generated for every /chat/query/ request. Use it with GET /chat/conversation/{conversation_id}/ to fetch this exact turn later.
Evidence cited by the agent. Each entry is annotated with the tool that surfaced it (display_name) and a stable id for joining back to citation tokens in final_answer.
Every tool call the agent made while answering this turn, in execution order. Lets non-streaming clients see the same reasoning trail that SSE clients receive as live tool_call / tool_output frames.
Raw agent transcript for the turn: an ordered list of text and tool items as the agent produced them. text items concatenate to final_answer; tool items mirror the entries in tools.
Text fragment emitted by the agent (main agent or a subagent). Concatenate all main-agent text items in order to reconstruct the agent's prose.
Option 1
Option 2
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Voltai Documentation","colors":{"primary":"#0284C7","light":"#38BDF8","dark":"#0EA5E9"},"logo":{"light":"https://mintcdn.com/voltaiinc/1Ge8QFMwvQlR8Pya/logo/light.svg?fit=max\u0026auto=format\u0026n=1Ge8QFMwvQlR8Pya\u0026q=85\u0026s=8c01fb45e51b42ae0a306dec1aec1270","dark":"https://mintcdn.com/voltaiinc/1Ge8QFMwvQlR8Pya/logo/dark.svg?fit=max\u0026auto=format\u0026n=1Ge8QFMwvQlR8Pya\u0026q=85\u0026s=fa728c364b1ebb9013394626ff3d0d99","href":"https://voltai.ai"},"favicon":"https://mintcdn.com/voltaiinc/1Ge8QFMwvQlR8Pya/favicon.svg?fit=max\u0026auto=format\u0026n=1Ge8QFMwvQlR8Pya\u0026q=85\u0026s=c2c87395d698de5209a58d19e829b4de","appearance":{"default":"dark"},"fonts":{"family":"ABC Oracle","source":"fonts/ABCOracle-Variable.woff2","format":"woff2"},"styling":{"codeblocks":"dark","latex":false},"banner":{"content":"**Beta:** The Voltai MCP server is an experimental feature."},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"voltaiinc","hasAudioNarration":false,"actualSubdomain":"voltaiinc","customDomains":["docs.voltai.ai"],"gitSource":{"type":"github","owner":"voltai-inc","repo":"arcturus","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aea2a8b7e92bccce21ada1b","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Knowledge Agent","count":26},{"language":"default","tag":"Sources \u0026 Topics","count":21},{"language":"default","tag":"Widget","count":12},{"language":"default","tag":"Connectors","count":10},{"language":"default","tag":"Applications","count":8},{"language":"default","tag":"Configuration","count":8},{"language":"default","tag":"Sources","count":7},{"language":"default","tag":"Topics","count":6},{"language":"default","tag":"Chat","count":4},{"language":"default","tag":"Getting Started","count":4}]},"assistantConfig":{},"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"beta.css","content":".nav-tag-pill-text[data-nav-tag=\"Beta\"]{background-color:#fef3c7!important;color:#92400e!important}.dark .nav-tag-pill-text[data-nav-tag=\"Beta\"]{background-color:rgb(245 158 11 / 0.2)!important;color:#fcd34d!important}html:not([data-current-path=\"/api-reference/knowledge-agent/mcp\"]){--banner-height: 0px !important}html:not([data-current-path=\"/api-reference/knowledge-agent/mcp\"]) #banner{visibility:hidden;height:0;min-height:0;overflow:hidden}#banner{background-color:#f59e0b!important;cursor:help}#banner,#banner *{color:#1c1917!important}#banner::after{content:\"Experimental feature: tools, inputs, outputs, and behavior may change or be removed before general availability.\";position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);width:max-content;max-width:min(90vw, 28rem);padding:0.5rem 0.75rem;border-radius:0.375rem;background-color:#1c1917;color:#fafaf9!important;font-size:0.8125rem;font-weight:400;line-height:1.4;white-space:normal;box-shadow:0 4px 12px rgb(0 0 0 / 0.25);opacity:0;pointer-events:none;transition:opacity 120ms ease-in}#banner:hover::after{opacity:1}"}],"page":{"pagePath":"api-reference/knowledge-agent/chat-query","slug":"/api-reference/knowledge-agent/chat-query","pageMetadata":{"title":"Chat Query","description":"Ask a question to the Voltai agent and continue an existing thread with `chat_id`.","openapi":"chat-query.json POST /chat/query/","href":"/api-reference/knowledge-agent/chat-query"},"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: [\"Ask a question to the Voltai agent and continue an existing thread with \", _jsx(_components.code, {\n children: \"chat_id\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`POST /chat/query/`}),` to ask a question. Send `,_jsx(_components.code,{children:`X-API-KEY`}),` in the header; the body must include `,_jsx(_components.code,{children:`query`}),` and `,_jsx(_components.code,{children:`user_id`}),`. To continue a conversation, pass back the `,_jsx(_components.code,{children:`chat_id`}),` from a previous response.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`user_id`})}),` (required) — your identifier for the end-user. Each `,_jsx(_components.code,{children:`(API key, user_id)`}),` pair allows `,_jsx(_components.strong,{children:`one concurrent request`}),`; a second in-flight request returns `,_jsx(_components.code,{children:`429`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`chat_id`})}),` (optional) — UUID of the thread to continue. Omit to start a new thread; the server returns a fresh `,_jsx(_components.code,{children:`chat_id`}),`. A malformed UUID returns `,_jsx(_components.code,{children:`400`}),`; a UUID you can’t access returns `,_jsx(_components.code,{children:`409`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`reasoning_level`})}),` (optional) — `,_jsx(_components.code,{children:`low`}),`, `,_jsx(_components.code,{children:`medium`}),` (default), or `,_jsx(_components.code,{children:`high`}),`. Higher levels favor more thorough answers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`topic_names`})}),` (optional) — list of knowledge topic names to scope retrieval to (e.g. `,_jsx(_components.code,{children:`[\"Family A\"]`}),`). Names are case-insensitive; an unknown name returns `,_jsx(_components.code,{children:`400`}),`. Omit to let the agent choose.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`final_answer`})}),` — the answer text.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`chat_id`})}),` — thread UUID; pass it back to continue the conversation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`chat_url`})}),` — web link to view this thread.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`conversation_id`})}),` — integer ID for this specific turn. Use it to fetch the turn later via `,_jsx(_components.a,{href:`/api-reference/knowledge-agent/chat-conversation`,children:_jsx(_components.code,{children:`GET /chat/conversation/{conversation_id}/`})}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`sources`})}),` — evidence cited in the answer. Each entry has `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`source_name`}),`, `,_jsx(_components.code,{children:`page`}),`, `,_jsx(_components.code,{children:`type`}),`, `,_jsx(_components.code,{children:`url`}),`, and `,_jsx(_components.code,{children:`display_name`}),`. Join a source’s `,_jsx(_components.code,{children:`id`}),` to citation tokens in `,_jsx(_components.code,{children:`final_answer`}),` (e.g. `,_jsx(_components.code,{children:`[0351-E1]`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`tools`})}),` — ordered list of tool calls the agent made, each with `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`display_name`}),`, `,_jsx(_components.code,{children:`title`}),`, `,_jsx(_components.code,{children:`input`}),`, `,_jsx(_components.code,{children:`output`}),`, and `,_jsx(_components.code,{children:`status`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`streaming`,children:`Streaming`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`Accept: text/event-stream`}),` to receive incremental output instead of a single JSON response. The stream opens with a `,_jsx(_components.code,{children:`start`}),` event, emits `,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`tool_call`}),`, `,_jsx(_components.code,{children:`tool_output`}),`, and `,_jsx(_components.code,{children:`todos`}),` (progress) events as the agent runs, and ends with a `,_jsx(_components.code,{children:`done`}),` event (whose payload matches the JSON response) or an `,_jsx(_components.code,{children:`error`}),` event.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example-request`,children:`Example Request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"query\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"What is EMEM?\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"user_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"usr_82af91\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"reasoning_level\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"medium\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`continuing-a-thread`,children:`Continuing a thread`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"query\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"What is the maximum operating temperature?\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"user_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"usr_82af91\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chat_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2d8a39d8-29d6-4f0f-bc5f-4c5f0f9c9d54\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`example-response`,children:`Example Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`43`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`43`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"final_answer\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"EMEM is embedded memory integrated into the device for storing code and data.\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chat_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2d8a39d8-29d6-4f0f-bc5f-4c5f0f9c9d54\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chat_url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://voltai.ai/ExampleOrg/chat/2d8a39d8-29d6-4f0f-bc5f-4c5f0f9c9d54\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"conversation_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`184217`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"sources\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"0351-E1\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"source_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"example-datasheet.pdf\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"page\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`12`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://voltai.ai/ExampleOrg/library?source_name=example-datasheet.pdf\u0026source_type=text\u0026source_page=12\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Library Search\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"tools\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_8c2f\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"search_library\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Library Search\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Searching `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`EMEM`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` in Datasheets\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"input\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"query\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"EMEM\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"output\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Found 3 matching chunks…\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"success\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"content\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"tool\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_8c2f\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"search_library\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Library Search\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Searching `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`EMEM`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` in Datasheets\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"input\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"query\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"EMEM\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"output\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Found 3 matching chunks…\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"success\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"EMEM is embedded memory integrated into the device for storing code and data.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`409`}),` — `,_jsx(_components.code,{children:`chat_id`}),` belongs to a thread you can’t resume.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`429`}),` — per-user (`,_jsx(_components.code,{children:`user_session_limit_exceeded`}),`) or org-wide (`,_jsx(_components.code,{children:`session_limit_exceeded`}),`) session limit reached. Use `,_jsx(_components.a,{href:`/api-reference/knowledge-agent/chat-sessions`,children:_jsx(_components.code,{children:`GET /chat/sessions/`})}),` to check usage.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Chat Query","description":"Ask a question to the Voltai agent and continue an existing thread with `chat_id`.","openapi":"chat-query.json POST /chat/query/","href":"/api-reference/knowledge-agent/chat-query"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Streaming","slug":"streaming","depth":2,"children":[]},{"title":"Example Request","slug":"example-request","depth":2,"children":[{"title":"Continuing a thread","slug":"continuing-a-thread","depth":3,"children":[]}]},{"title":"Example Response","slug":"example-response","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Ask a question to the Voltai agent and continue an existing thread with `chat_id`.","parameters":["c76fc237-c4dc-43de-adcd-12ce531da001"],"requestBody":"09296188-dcd4-4409-a5d4-91575bf9b758","responses":{"200":"28957617-ad11-4822-a164-827ec791b273","400":"56504eec-6452-4afd-a60a-4b425fb7ca1e","403":"49c45a3c-c577-4fd4-b9ad-9e75fe947ef1","409":"2f3e3cdb-1cd1-4f36-a5a5-747a349a3bf3","429":"d4c1d773-5ed3-4c5a-aabb-f944fbfc1bed"},"method":"post","type":"path","servers":["84dcab4e-f99d-4cdb-b788-627b117f4a3e"],"security":["4cdbf61e-187c-42ce-8723-eb9441fbb8d5"],"path":"/chat/query/","baseUrlOptions":["https://api-prod.voltai.ai"],"title":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c76fc237-c4dc-43de-adcd-12ce531da001":{"in":"header","name":"Accept","required":false,"description":"Set to `text/event-stream` to opt into Server-Sent Events streaming. Any other value (or omitting the header) returns the standard JSON response.","schema":{"type":"string","enum":["application/json","text/event-stream"],"isRequired":false,"description":"Set to `text/event-stream` to opt into Server-Sent Events streaming. Any other value (or omitting the header) returns the standard JSON response.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"description":"Query payload for the Voltai agent.","content":{"application/json":{"schema":{"required":["query","user_id"],"type":"object","description":"Provide `query` and `user_id`. Topic scope is chosen automatically unless you pass `topic_names`. The agent decides its own reasoning depth — use `reasoning_level` to bias it.","properties":{"query":{"description":"The user's question.","type":"string","isRequired":true,"uniqueKey":"query","typeLabel":"string"},"user_id":{"description":"Your application's identifier for the end-user making the request. Used for per-user session tracking and concurrency enforcement. Each `(API key, user_id)` pair is limited to one concurrent request.","type":"string","maxLength":255,"isRequired":true,"uniqueKey":"user_id","typeLabel":"string"},"chat_id":{"description":"Existing chat thread to continue. Must be a valid UUID. If it matches a chat in your organization, the new turn is appended; if the UUID is well-formed but not yet used, the server creates a new chat under that UUID (useful for client-side idempotency / correlation). Omit to let the server mint a fresh UUID. A UUID that already belongs to a chat the API key cannot resume returns `409`.","type":"string","format":"uuid","uniqueKey":"chat_id","typeLabel":"string\u003cuuid>"},"reasoning_level":{"description":"Bias for how much intermediate reasoning the agent should do. `low` favors quick answers, `high` favors thorough multi-step reasoning. Unknown values fall back to `medium`.","type":"string","enum":["low","medium","high"],"default":"medium","uniqueKey":"reasoning_level","typeLabel":"enum\u003cstring>"},"topic_names":{"description":"Optional. Names of knowledge topics to scope retrieval to. Each must match a topic in your organization (case-insensitive). If omitted or empty, topic scope is chosen automatically. If any name does not match a topic, the request returns 400.","type":"array","items":{"type":"string","uniqueKey":"topic_names.items.[INDEX]","typeLabel":"string"},"uniqueKey":"topic_names","typeLabel":"string[]"},"topic_name":{"description":"Deprecated singular alias for `topic_names`. When `topic_names` is omitted, `topic_name` (if present) is wrapped into a one-element list. Prefer `topic_names` for new integrations.","type":"string","deprecated":true,"uniqueKey":"topic_name","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"query":"\u003cstring>","user_id":"\u003cstring>","chat_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","reasoning_level":"medium","topic_names":["\u003cstring>"],"topic_name":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"28957617-ad11-4822-a164-827ec791b273":{"description":"Agent response. Returned as a single JSON object by default, or as a Server-Sent Events stream when the request includes `Accept: text/event-stream`.","content":{"application/json":{"schema":{"description":"Agent response.","type":"object","required":["final_answer","thinking","chat_id","chat_url","conversation_id","sources","tools","content"],"properties":{"final_answer":{"type":"string","description":"Cleaned answer text returned by the agent. Internal markup (`\u003canswer>`, `\u003cref>`, `\u003cabbr>`, citation tokens) is stripped.","isRequired":true,"uniqueKey":"final_answer","typeLabel":"string"},"thinking":{"type":"string","description":"Aggregated reasoning string from the legacy multi-agent orchestrator: per-agent entries are concatenated in execution order, each prefixed by a header line and separated by a blank line. Empty under the current agent pipeline — use `tools` and `content` to inspect the reasoning trail instead.","isRequired":true,"uniqueKey":"thinking","typeLabel":"string"},"chat_id":{"type":"string","format":"uuid","description":"Thread identifier: the `Chat` UUID for this conversation. Reuse this value in subsequent requests to continue the same thread.","isRequired":true,"uniqueKey":"chat_id","typeLabel":"string\u003cuuid>"},"chat_url":{"type":"string","format":"uri","description":"Web UI link to this thread: `https://voltai.ai/{organization_name}/chat/{chat_id}` using the resolved organization's `name`.","isRequired":true,"uniqueKey":"chat_url","typeLabel":"string\u003curi>"},"conversation_id":{"type":"integer","description":"Identifier of the specific question/answer turn within the thread. A new `conversation_id` is generated for every `/chat/query/` request. Use it with `GET /chat/conversation/{conversation_id}/` to fetch this exact turn later.","isRequired":true,"uniqueKey":"conversation_id","typeLabel":"integer"},"sources":{"type":"array","description":"Evidence cited by the agent. Each entry is annotated with the tool that surfaced it (`display_name`) and a stable `id` for joining back to citation tokens in `final_answer`.","items":{"type":"object","description":"A single piece of evidence cited by the agent. Two shapes are returned interchangeably depending on the producing tool:\n\n- Library / PDF chunks: `source_name` is the source filename, `page` is the page number, and `url` is either the document's external link (when configured on the source) or a Voltai library deep-link.\n- Web pages, fetched URLs, and connector items (Slack, Jira, Confluence, Salesforce, SharePoint, Assembla): `source_name` is the page or item title, `page` is `null`, and `url` is the original link.\n- Part-detail / part-comparison / part-replacement sources: `source_name` is the display label and `url` may be `null` when the source has no canonical link.","required":["source_name","page","url"],"properties":{"source_name":{"type":"string","description":"Display label for the source. Filename for library chunks; page or item title for web / connector / fetched URL sources; display name for part sources.","isRequired":true,"uniqueKey":"sources.items.[INDEX].source_name","typeLabel":"string"},"page":{"oneOf":[{"type":"integer","description":"1-indexed page number for paginated sources (library PDFs). `null` for web pages, connector items, and part sources.","isRequired":true,"uniqueKey":"sources.items.[INDEX].page.oneOf.0","typeLabel":"integer"},{"type":"null","description":"1-indexed page number for paginated sources (library PDFs). `null` for web pages, connector items, and part sources.","isRequired":true,"uniqueKey":"sources.items.[INDEX].page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.items.[INDEX].page","typeLabel":"integer | null"},"url":{"oneOf":[{"type":"string","description":"Link to view the source. For library chunks this is either the source's configured external URL or a Voltai library deep-link with `source_name` / `source_page` parameters. For web and connector sources it is the original link. May be `null` when no canonical link exists.","isRequired":true,"uniqueKey":"sources.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to view the source. For library chunks this is either the source's configured external URL or a Voltai library deep-link with `source_name` / `source_page` parameters. For web and connector sources it is the original link. May be `null` when no canonical link exists.","isRequired":true,"uniqueKey":"sources.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sources.items.[INDEX].url","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","description":"Stable identifier for the source within this response. Use it to join citation tokens that appear in `final_answer` (e.g. `[0351-E1]`) back to a specific source entry.","uniqueKey":"sources.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable identifier for the source within this response. Use it to join citation tokens that appear in `final_answer` (e.g. `[0351-E1]`) back to a specific source entry.","uniqueKey":"sources.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"sources.items.[INDEX].id","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","description":"Source type tag from the producing tool (`text`, `web`, `part`, ...). Defaults to `text` when the tool did not stamp one.","uniqueKey":"sources.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Source type tag from the producing tool (`text`, `web`, `part`, ...). Defaults to `text` when the tool did not stamp one.","uniqueKey":"sources.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"sources.items.[INDEX].type","typeLabel":"string | null"},"display_name":{"type":"string","description":"Human-readable label for the tool that surfaced the source (e.g. `\"Web Search\"`, `\"Library Search\"`, `\"Part Detail\"`). Present whenever the agent successfully attributed the source to a tool call.","uniqueKey":"sources.items.[INDEX].display_name","typeLabel":"string"}},"uniqueKey":"sources.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"sources","typeLabel":"object[]"},"tools":{"type":"array","description":"Every tool call the agent made while answering this turn, in execution order. Lets non-streaming clients see the same reasoning trail that SSE clients receive as live `tool_call` / `tool_output` frames.","items":{"type":"object","description":"One tool call the agent performed while producing its answer. The full list is returned in execution order on `ChatResponse.tools` and `done` SSE events.","required":["id","name","status"],"properties":{"id":{"type":"string","description":"Tool-call identifier. Stable for the lifetime of the conversation and used to correlate `tool_call` and `tool_output` SSE frames.","isRequired":true,"uniqueKey":"tools.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","description":"Internal tool name (e.g. `search_library`, `search_web`, `fetch_url`, `part_detail`, `task`).","isRequired":true,"uniqueKey":"tools.items.[INDEX].name","typeLabel":"string"},"status":{"type":"string","enum":["running","success","error"],"description":"Final status of the tool call.","isRequired":true,"uniqueKey":"tools.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"display_name":{"type":"string","description":"Human-readable label for the tool (e.g. `\"Library Search\"`). Falls back to a title-cased version of `name` when no friendly label is registered.","uniqueKey":"tools.items.[INDEX].display_name","typeLabel":"string"},"title":{"type":"string","description":"One-line, argument-aware summary suitable for showing in a UI (e.g. `'Searching \"EMEM\" in Datasheets'`).","uniqueKey":"tools.items.[INDEX].title","typeLabel":"string"},"input":{"oneOf":[{"type":"object","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"tools.items.[INDEX].input.oneOf.0","typeLabel":"object"},{"type":"null","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"tools.items.[INDEX].input.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.items.[INDEX].input","typeLabel":"object | null"},"output":{"oneOf":[{"type":"string","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"tools.items.[INDEX].output.oneOf.0","typeLabel":"string"},{"type":"null","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"tools.items.[INDEX].output.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.items.[INDEX].output","typeLabel":"string | null"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"tools.items.[INDEX].subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"tools.items.[INDEX].subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.items.[INDEX].subagent_instance_id","typeLabel":"string | null"}},"uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"tools","typeLabel":"object[]"},"content":{"type":"array","description":"Raw agent transcript for the turn: an ordered list of `text` and `tool` items as the agent produced them. `text` items concatenate to `final_answer`; `tool` items mirror the entries in `tools`.","items":{"oneOf":[{"type":"object","description":"Text fragment emitted by the agent (main agent or a subagent). Concatenate all main-agent text items in order to reconstruct the agent's prose.","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"Text content of this fragment.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.0.text","typeLabel":"string"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"When non-null, this text was produced by a subagent and is read by the main agent as a tool result rather than shown directly to the user.","uniqueKey":"content.items.[INDEX].oneOf.0.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"When non-null, this text was produced by a subagent and is read by the main agent as a tool result rather than shown directly to the user.","uniqueKey":"content.items.[INDEX].oneOf.0.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.items.[INDEX].oneOf.0.subagent_instance_id","typeLabel":"string | null"}},"uniqueKey":"content.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Tool call interleaved into the agent's output stream. The same fields as `ToolInvocation` (with `sources` stripped — they are surfaced on top-level `sources`).","required":["type","id","name","status"],"properties":{"id":{"type":"string","description":"Tool-call identifier. Stable for the lifetime of the conversation and used to correlate `tool_call` and `tool_output` SSE frames.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.1.id","typeLabel":"string"},"name":{"type":"string","description":"Internal tool name (e.g. `search_library`, `search_web`, `fetch_url`, `part_detail`, `task`).","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.1.name","typeLabel":"string"},"status":{"type":"string","enum":["running","success","error"],"description":"Final status of the tool call.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.1.status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["tool"],"isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"display_name":{"type":"string","description":"Human-readable label for the tool (e.g. `\"Library Search\"`). Falls back to a title-cased version of `name` when no friendly label is registered.","uniqueKey":"content.items.[INDEX].oneOf.1.display_name","typeLabel":"string"},"title":{"type":"string","description":"One-line, argument-aware summary suitable for showing in a UI (e.g. `'Searching \"EMEM\" in Datasheets'`).","uniqueKey":"content.items.[INDEX].oneOf.1.title","typeLabel":"string"},"input":{"oneOf":[{"type":"object","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"content.items.[INDEX].oneOf.1.input.oneOf.0","typeLabel":"object"},{"type":"null","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"content.items.[INDEX].oneOf.1.input.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.items.[INDEX].oneOf.1.input","typeLabel":"object | null"},"output":{"oneOf":[{"type":"string","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"content.items.[INDEX].oneOf.1.output.oneOf.0","typeLabel":"string"},{"type":"null","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"content.items.[INDEX].oneOf.1.output.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.items.[INDEX].oneOf.1.output","typeLabel":"string | null"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"content.items.[INDEX].oneOf.1.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"content.items.[INDEX].oneOf.1.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"content.items.[INDEX].oneOf.1.subagent_instance_id","typeLabel":"string | null"}},"uniqueKey":"content.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"content.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"content","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"final_answer":"\u003cstring>","thinking":"\u003cstring>","chat_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","chat_url":"\u003cstring>","conversation_id":123,"sources":[{"source_name":"\u003cstring>","page":123,"url":"\u003cstring>","id":"\u003cstring>","type":"\u003cstring>","display_name":"\u003cstring>"}],"tools":[{"id":"\u003cstring>","name":"\u003cstring>","status":"running","display_name":"\u003cstring>","title":"\u003cstring>","input":{},"output":"\u003cstring>","subagent_instance_id":"\u003cstring>"}],"content":[{"type":"text","text":"\u003cstring>","subagent_instance_id":"\u003cstring>"}]}}},"exampleType":"generated"},"text/event-stream":{"schema":{"oneOf":[{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","chat_id","chat_url","conversation_id"],"properties":{"type":{"type":"string","enum":["start"],"isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"enum\u003cstring>"},"chat_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"oneOf.0.chat_id","typeLabel":"string\u003cuuid>"},"chat_url":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"oneOf.0.chat_url","typeLabel":"string\u003curi>"},"conversation_id":{"type":"integer","description":"Identifier of this specific question/answer turn within the thread. Use with `GET /chat/conversation/{conversation_id}/` to fetch the persisted turn later.","isRequired":true,"uniqueKey":"oneOf.0.conversation_id","typeLabel":"integer"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","msg"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"enum\u003cstring>"},"msg":{"type":"object","required":["delta"],"properties":{"delta":{"type":"string","description":"New text fragment to append to the in-progress answer. Multiple `text` events should be concatenated in order.","isRequired":true,"uniqueKey":"oneOf.1.msg.delta","typeLabel":"string"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"When non-null, this delta comes from a subagent and is intermediate reasoning, not user-facing answer text.","uniqueKey":"oneOf.1.msg.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"When non-null, this delta comes from a subagent and is intermediate reasoning, not user-facing answer text.","uniqueKey":"oneOf.1.msg.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.msg.subagent_instance_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"oneOf.1.msg","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","msg"],"properties":{"type":{"type":"string","enum":["tool_call"],"isRequired":true,"uniqueKey":"oneOf.2.type","typeLabel":"enum\u003cstring>"},"msg":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","description":"Tool-call identifier (same value emitted on the matching `tool_output`).","isRequired":true,"uniqueKey":"oneOf.2.msg.id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.msg.name","typeLabel":"string"},"display_name":{"type":"string","uniqueKey":"oneOf.2.msg.display_name","typeLabel":"string"},"title":{"type":"string","uniqueKey":"oneOf.2.msg.title","typeLabel":"string"},"input":{"oneOf":[{"type":"object","uniqueKey":"oneOf.2.msg.input.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.2.msg.input.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.msg.input","typeLabel":"object | null"},"subagent_instance_id":{"oneOf":[{"type":"string","uniqueKey":"oneOf.2.msg.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.2.msg.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.msg.subagent_instance_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"oneOf.2.msg","typeLabel":"object"}},"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","msg"],"properties":{"type":{"type":"string","enum":["tool_output"],"isRequired":true,"uniqueKey":"oneOf.3.type","typeLabel":"enum\u003cstring>"},"msg":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.3.msg.id","typeLabel":"string"},"status":{"type":"string","enum":["running","success","error"],"isRequired":true,"uniqueKey":"oneOf.3.msg.status","typeLabel":"enum\u003cstring>"},"output":{"oneOf":[{"type":"string","uniqueKey":"oneOf.3.msg.output.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.3.msg.output.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.3.msg.output","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"oneOf.3.msg","typeLabel":"object"}},"uniqueKey":"oneOf.3","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","msg"],"properties":{"type":{"type":"string","enum":["todos"],"isRequired":true,"uniqueKey":"oneOf.4.type","typeLabel":"enum\u003cstring>"},"msg":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","uniqueKey":"oneOf.4.msg.\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.4.msg.\\items","typeLabel":"object[]"},"subagent_instance_id":{"oneOf":[{"type":"string","uniqueKey":"oneOf.4.msg.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.4.msg.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.msg.subagent_instance_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"oneOf.4.msg","typeLabel":"object"}},"uniqueKey":"oneOf.4","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","msg"],"properties":{"type":{"type":"string","enum":["interrupt"],"isRequired":true,"uniqueKey":"oneOf.5.type","typeLabel":"enum\u003cstring>"},"msg":{"type":"object","isRequired":true,"uniqueKey":"oneOf.5.msg","typeLabel":"object"}},"uniqueKey":"oneOf.5","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","final_answer","thinking","chat_id","chat_url","conversation_id","sources","tools","content"],"properties":{"type":{"type":"string","enum":["done"],"isRequired":true,"uniqueKey":"oneOf.6.type","typeLabel":"enum\u003cstring>"},"final_answer":{"type":"string","isRequired":true,"uniqueKey":"oneOf.6.final_answer","typeLabel":"string"},"thinking":{"type":"string","isRequired":true,"uniqueKey":"oneOf.6.thinking","typeLabel":"string"},"chat_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"oneOf.6.chat_id","typeLabel":"string\u003cuuid>"},"chat_url":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"oneOf.6.chat_url","typeLabel":"string\u003curi>"},"conversation_id":{"type":"integer","isRequired":true,"uniqueKey":"oneOf.6.conversation_id","typeLabel":"integer"},"sources":{"type":"array","items":{"type":"object","description":"A single piece of evidence cited by the agent. Two shapes are returned interchangeably depending on the producing tool:\n\n- Library / PDF chunks: `source_name` is the source filename, `page` is the page number, and `url` is either the document's external link (when configured on the source) or a Voltai library deep-link.\n- Web pages, fetched URLs, and connector items (Slack, Jira, Confluence, Salesforce, SharePoint, Assembla): `source_name` is the page or item title, `page` is `null`, and `url` is the original link.\n- Part-detail / part-comparison / part-replacement sources: `source_name` is the display label and `url` may be `null` when the source has no canonical link.","required":["source_name","page","url"],"properties":{"source_name":{"type":"string","description":"Display label for the source. Filename for library chunks; page or item title for web / connector / fetched URL sources; display name for part sources.","isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].source_name","typeLabel":"string"},"page":{"oneOf":[{"type":"integer","description":"1-indexed page number for paginated sources (library PDFs). `null` for web pages, connector items, and part sources.","isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].page.oneOf.0","typeLabel":"integer"},{"type":"null","description":"1-indexed page number for paginated sources (library PDFs). `null` for web pages, connector items, and part sources.","isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].page","typeLabel":"integer | null"},"url":{"oneOf":[{"type":"string","description":"Link to view the source. For library chunks this is either the source's configured external URL or a Voltai library deep-link with `source_name` / `source_page` parameters. For web and connector sources it is the original link. May be `null` when no canonical link exists.","isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to view the source. For library chunks this is either the source's configured external URL or a Voltai library deep-link with `source_name` / `source_page` parameters. For web and connector sources it is the original link. May be `null` when no canonical link exists.","isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.6.sources.items.[INDEX].url","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","description":"Stable identifier for the source within this response. Use it to join citation tokens that appear in `final_answer` (e.g. `[0351-E1]`) back to a specific source entry.","uniqueKey":"oneOf.6.sources.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable identifier for the source within this response. Use it to join citation tokens that appear in `final_answer` (e.g. `[0351-E1]`) back to a specific source entry.","uniqueKey":"oneOf.6.sources.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.sources.items.[INDEX].id","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","description":"Source type tag from the producing tool (`text`, `web`, `part`, ...). Defaults to `text` when the tool did not stamp one.","uniqueKey":"oneOf.6.sources.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","description":"Source type tag from the producing tool (`text`, `web`, `part`, ...). Defaults to `text` when the tool did not stamp one.","uniqueKey":"oneOf.6.sources.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.sources.items.[INDEX].type","typeLabel":"string | null"},"display_name":{"type":"string","description":"Human-readable label for the tool that surfaced the source (e.g. `\"Web Search\"`, `\"Library Search\"`, `\"Part Detail\"`). Present whenever the agent successfully attributed the source to a tool call.","uniqueKey":"oneOf.6.sources.items.[INDEX].display_name","typeLabel":"string"}},"uniqueKey":"oneOf.6.sources.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.6.sources","typeLabel":"object[]"},"tools":{"type":"array","items":{"type":"object","description":"One tool call the agent performed while producing its answer. The full list is returned in execution order on `ChatResponse.tools` and `done` SSE events.","required":["id","name","status"],"properties":{"id":{"type":"string","description":"Tool-call identifier. Stable for the lifetime of the conversation and used to correlate `tool_call` and `tool_output` SSE frames.","isRequired":true,"uniqueKey":"oneOf.6.tools.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","description":"Internal tool name (e.g. `search_library`, `search_web`, `fetch_url`, `part_detail`, `task`).","isRequired":true,"uniqueKey":"oneOf.6.tools.items.[INDEX].name","typeLabel":"string"},"status":{"type":"string","enum":["running","success","error"],"description":"Final status of the tool call.","isRequired":true,"uniqueKey":"oneOf.6.tools.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"display_name":{"type":"string","description":"Human-readable label for the tool (e.g. `\"Library Search\"`). Falls back to a title-cased version of `name` when no friendly label is registered.","uniqueKey":"oneOf.6.tools.items.[INDEX].display_name","typeLabel":"string"},"title":{"type":"string","description":"One-line, argument-aware summary suitable for showing in a UI (e.g. `'Searching \"EMEM\" in Datasheets'`).","uniqueKey":"oneOf.6.tools.items.[INDEX].title","typeLabel":"string"},"input":{"oneOf":[{"type":"object","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"oneOf.6.tools.items.[INDEX].input.oneOf.0","typeLabel":"object"},{"type":"null","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"oneOf.6.tools.items.[INDEX].input.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.tools.items.[INDEX].input","typeLabel":"object | null"},"output":{"oneOf":[{"type":"string","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"oneOf.6.tools.items.[INDEX].output.oneOf.0","typeLabel":"string"},{"type":"null","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"oneOf.6.tools.items.[INDEX].output.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.tools.items.[INDEX].output","typeLabel":"string | null"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"oneOf.6.tools.items.[INDEX].subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"oneOf.6.tools.items.[INDEX].subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.tools.items.[INDEX].subagent_instance_id","typeLabel":"string | null"}},"uniqueKey":"oneOf.6.tools.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.6.tools","typeLabel":"object[]"},"content":{"type":"array","items":{"oneOf":[{"type":"object","description":"Text fragment emitted by the agent (main agent or a subagent). Concatenate all main-agent text items in order to reconstruct the agent's prose.","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"Text content of this fragment.","isRequired":true,"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.0.text","typeLabel":"string"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"When non-null, this text was produced by a subagent and is read by the main agent as a tool result rather than shown directly to the user.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.0.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"When non-null, this text was produced by a subagent and is read by the main agent as a tool result rather than shown directly to the user.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.0.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.0.subagent_instance_id","typeLabel":"string | null"}},"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Tool call interleaved into the agent's output stream. The same fields as `ToolInvocation` (with `sources` stripped — they are surfaced on top-level `sources`).","required":["type","id","name","status"],"properties":{"id":{"type":"string","description":"Tool-call identifier. Stable for the lifetime of the conversation and used to correlate `tool_call` and `tool_output` SSE frames.","isRequired":true,"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.id","typeLabel":"string"},"name":{"type":"string","description":"Internal tool name (e.g. `search_library`, `search_web`, `fetch_url`, `part_detail`, `task`).","isRequired":true,"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.name","typeLabel":"string"},"status":{"type":"string","enum":["running","success","error"],"description":"Final status of the tool call.","isRequired":true,"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["tool"],"isRequired":true,"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"display_name":{"type":"string","description":"Human-readable label for the tool (e.g. `\"Library Search\"`). Falls back to a title-cased version of `name` when no friendly label is registered.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.display_name","typeLabel":"string"},"title":{"type":"string","description":"One-line, argument-aware summary suitable for showing in a UI (e.g. `'Searching \"EMEM\" in Datasheets'`).","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.title","typeLabel":"string"},"input":{"oneOf":[{"type":"object","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.input.oneOf.0","typeLabel":"object"},{"type":"null","description":"Arguments the agent passed to the tool. `null` for private tools whose inputs are not surfaced to the API.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.input.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.input","typeLabel":"object | null"},"output":{"oneOf":[{"type":"string","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.output.oneOf.0","typeLabel":"string"},{"type":"null","description":"Raw text output the tool returned to the agent. `\"\"` for private tools whose results are hidden from the API surface.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.output.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.output","typeLabel":"string | null"},"subagent_instance_id":{"oneOf":[{"type":"string","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.subagent_instance_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"If this tool was invoked by a subagent (delegated via a parent `task` call), the parent task's `id`. Top-level tools have `null`.","uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.subagent_instance_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1.subagent_instance_id","typeLabel":"string | null"}},"uniqueKey":"oneOf.6.content.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.6.content.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.6.content","typeLabel":"object[]"}},"uniqueKey":"oneOf.6","typeLabel":"object"},{"type":"object","description":"One Server-Sent Event frame delivered when the request includes `Accept: text/event-stream`. Each frame is a single JSON object on a `data: ...` line, terminated by a blank line.\n\nThe stream begins with one `start` event, then interleaved `text`, `tool_call`, `tool_output`, `todos`, and `interrupt` events as the agent runs, and ends with either one `done` event (success) or one `error` event (failure). The server may also send SSE comment frames (`: keepalive`) every few seconds while it waits on the model; clients should ignore them.\n\nClients that need a fully cleaned answer should use `final_answer` from the `done` event; concatenating `text` deltas reproduces the same string but may briefly include internal markup that the parser strips at the end.","required":["type","detail"],"properties":{"type":{"type":"string","enum":["error"],"isRequired":true,"uniqueKey":"oneOf.7.type","typeLabel":"enum\u003cstring>"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.7.detail","typeLabel":"string"}},"uniqueKey":"oneOf.7","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"start","chat_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","chat_url":"\u003cstring>","conversation_id":123}}},"exampleType":"generated"}},"exampleType":"generated"},"56504eec-6452-4afd-a60a-4b425fb7ca1e":{"description":"Invalid request (missing `query`/`user_id`, malformed `chat_id`, unknown `topic_names`, etc.)","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error description.","uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"49c45a3c-c577-4fd4-b9ad-9e75fe947ef1":{"description":"Invalid or missing API key, or the organization has reached its message limit.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error description.","uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"2f3e3cdb-1cd1-4f36-a5a5-747a349a3bf3":{"description":"`chat_id` was supplied but the UUID is already in use by a chat the API key cannot resume (a different organization, or a soft-deleted chat). Pick a different UUID, or omit `chat_id` to let the server mint one.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error description.","uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"d4c1d773-5ed3-4c5a-aabb-f944fbfc1bed":{"description":"Concurrent session limit exceeded: either the same `user_id` already has an in-flight request (`user_session_limit_exceeded`), or the organization-wide seat cap is reached (`session_limit_exceeded`).","content":{"application/json":{"schema":{"type":"object","description":"Returned when a concurrent session limit is exceeded.","required":["error","message"],"properties":{"error":{"type":"string","description":"Error code. `user_session_limit_exceeded` when the same `user_id` already has an in-flight request. `session_limit_exceeded` when the organization-wide session cap is reached.","enum":["user_session_limit_exceeded","session_limit_exceeded"],"isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"user_id":{"type":"string","description":"The `user_id` that triggered the per-user limit. Present only for `user_session_limit_exceeded`.","uniqueKey":"user_id","typeLabel":"string"},"total_seats":{"type":"integer","description":"Total allowed concurrent sessions for the organization. Present only for `session_limit_exceeded`.","uniqueKey":"total_seats","typeLabel":"integer"},"active_seats":{"type":"integer","description":"Currently active sessions. Present only for `session_limit_exceeded`.","uniqueKey":"active_seats","typeLabel":"integer"},"available_seats":{"type":"integer","description":"Remaining available sessions. Present only for `session_limit_exceeded`.","uniqueKey":"available_seats","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"user_session_limit_exceeded","message":"\u003cstring>","user_id":"\u003cstring>","total_seats":123,"active_seats":123,"available_seats":123}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"4cdbf61e-187c-42ce-8723-eb9441fbb8d5":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]}}},"servers":{"84dcab4e-f99d-4cdb-b788-627b117f4a3e":{"url":"https://api-prod.voltai.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/knowledge-agent/chat-query.json"},"subdomain":"voltaiinc","siteName":"Voltai Documentation","title":"Chat Query - Voltai Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-03T00:29:42.042Z","originalFileLocation":"api-reference/knowledge-agent/chat-query.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=\"dark\"}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=\"Ask a question to the Voltai agent and continue an existing thread with chat_id.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Voltai Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_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/voltaiinc/AGJqEuZfRSV_Zjiv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Chat Query - Voltai Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Ask a question to the Voltai agent and continue an existing thread with chat_id.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Voltai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://voltaiinc.mintlify.site/_mintlify/api/og/v2?division=Chat\u0026amp;title=Chat+Query\u0026amp;description=Ask+a+question+to+the+Voltai+agent+and+continue+an+existing+thread+with+%60chat_id%60.\u0026amp;theme=6fc2208b65b41b91b6c22fc2\u0026amp;signature=949a5e1682f0e379f1b7f8e732cb9106e0b7bc2635940a970bd6483ce120dcf1\">\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=\"Chat Query - Voltai Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Ask a question to the Voltai agent and continue an existing thread with chat_id.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://voltaiinc.mintlify.site/_mintlify/api/og/v2?division=Chat\u0026amp;title=Chat+Query\u0026amp;description=Ask+a+question+to+the+Voltai+agent+and+continue+an+existing+thread+with+%60chat_id%60.\u0026amp;theme=6fc2208b65b41b91b6c22fc2\u0026amp;signature=949a5e1682f0e379f1b7f8e732cb9106e0b7bc2635940a970bd6483ce120dcf1\">\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/voltaiinc/AGJqEuZfRSV_Zjiv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Voltai Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0284C7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/knowledge-agent/chat-query.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.voltai.ai/#organization\",\"name\":\"Voltai Documentation\",\"url\":\"https://docs.voltai.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/voltaiinc/1Ge8QFMwvQlR8Pya/logo/light.svg?fit=max\u0026auto=format\u0026n=1Ge8QFMwvQlR8Pya\u0026q=85\u0026s=8c01fb45e51b42ae0a306dec1aec1270\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.voltai.ai#website\",\"name\":\"Voltai Documentation\",\"url\":\"https://docs.voltai.ai\",\"publisher\":{\"@id\":\"https://docs.voltai.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query#webpage\",\"url\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query\",\"name\":\"Chat Query\",\"description\":\"Ask a question to the Voltai agent and continue an existing thread with chat_id.\",\"dateModified\":\"2026-09-03T00:29:42.042Z\",\"isPartOf\":{\"@id\":\"https://docs.voltai.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Voltai Documentation\",\"item\":\"https://docs.voltai.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chat Query\",\"item\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query#apireference\",\"headline\":\"Chat Query\",\"name\":\"Chat Query\",\"description\":\"Ask a question to the Voltai agent and continue an existing thread with chat_id.\",\"url\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query\",\"mainEntityOfPage\":{\"@id\":\"https://docs.voltai.ai/api-reference/knowledge-agent/chat-query#webpage\"},\"dateModified\":\"2026-09-03T00:29:42.042Z\",\"publisher\":{\"@id\":\"https://docs.voltai.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.voltai.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Voltai Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Voltai Documentation","nav":{"global":null,"tabs":[{"tab":"Widget","pages":[{"title":"Widget","href":"/widget/introduction"}]},{"tab":"Knowledge Agent","groups":[{"group":"Chat","pages":[{"title":"Chat Query","openapi":"chat-query.json POST /chat/query/","href":"/api-reference/knowledge-agent/chat-query"},{"title":"Chat Query (Async)","description":"Submit a question and get the answer later via polling or a webhook callback.","openapi":"chat-query.json POST /chat/query-async/","href":"/api-reference/knowledge-agent/chat-query-async"},{"title":"Get Conversation by ID","openapi":"chat-query.json GET /chat/conversation/{conversation_id}/","href":"/api-reference/knowledge-agent/chat-conversation"},{"title":"Chat Sessions","openapi":"chat-query.json GET /chat/sessions/","href":"/api-reference/knowledge-agent/chat-sessions"}]},{"group":"Integrations","pages":[{"title":"MCP Server","icon":"plug","tag":"Beta","href":"/api-reference/knowledge-agent/mcp"}]},{"group":"Sources \u0026 Topics","pages":[{"title":"Basic Operations Guide","href":"/api-reference/knowledge-agent/source-api-basic-operations"},{"title":"Chunk retrieval","openapi":"retrieval.json POST /retrieve/","href":"/api-reference/knowledge-agent/retrieve-chunks"},{"group":"Sources","pages":[{"title":"List Sources","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /sources/","href":"/api-reference/sources/list-sources"},{"title":"Create Source","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json post /sources/","href":"/api-reference/sources/create-source"},{"title":"Get Source","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /sources/{name}/","href":"/api-reference/sources/get-source"},{"title":"Update Source","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json put /sources/{name}/","href":"/api-reference/sources/update-source"},{"title":"Delete Source","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json delete /sources/{name}/","href":"/api-reference/sources/delete-source"},{"title":"Partial Update Source","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json patch /sources/{name}/","href":"/api-reference/sources/partial-update-source"},{"title":"Get Ingestion Job Progress","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /sources/ingestion-progress/{job_id}/","href":"/api-reference/sources/get-ingestion-job-progress"}]},{"group":"Sources - Bulk Actions","pages":[{"title":"Bulk Actions on Sources","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json post /sources/bulk-action/","href":"/api-reference/sources--bulk-actions/bulk-actions-on-sources"}]},{"group":"Sources - Bulk Ingest","pages":[{"title":"Bulk Create Sources from S3 Folder","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json post /sources/bulk-ingest-s3-folder/","href":"/api-reference/sources--bulk-ingest/bulk-create-sources-from-s3-folder"},{"title":"Create Sources from ZIP","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json post /sources/bulk-ingest-zip/","href":"/api-reference/sources--bulk-ingest/create-sources-from-zip"}]},{"group":"Topics","pages":[{"title":"List Topics","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /topics/","href":"/api-reference/topics/list-topics"},{"title":"Create Topic","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json post /topics/","href":"/api-reference/topics/create-topic"},{"title":"Get Topic","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /topics/{uuid}/","href":"/api-reference/topics/get-topic"},{"title":"Update Topic","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json put /topics/{uuid}/","href":"/api-reference/topics/update-topic"},{"title":"Delete Topic","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json delete /topics/{uuid}/","href":"/api-reference/topics/delete-topic"},{"title":"Partial Update Topic","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json patch /topics/{uuid}/","href":"/api-reference/topics/partial-update-topic"}]},{"group":"Topics - Tree \u0026 Sources","pages":[{"title":"Get Topic Sources","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /topics/{uuid}/sources/","href":"/api-reference/topics--tree-\u0026-sources/get-topic-sources"},{"title":"Get Topic Tree","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json get /topics/tree/","href":"/api-reference/topics--tree-\u0026-sources/get-topic-tree"}]},{"group":"Topics - Bulk Actions","pages":[{"title":"Bulk Actions on Topics","deprecated":null,"version":null,"openapi":"/api-reference/knowledge-agent/source-api.json post /topics/bulk-action/","href":"/api-reference/topics--bulk-actions/bulk-actions-on-topics"}]}]}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/connectors/introduction"}]}]},"basePath":"","title":"Chat Query - Voltai Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-DV-WToSZ.js","dist-CBUH0-zX.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-CR-RHrVC.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","AssistantPageLink-BmARFYNC.js"]}