Drives the agent through one LLM round-trip and returns only the new assistant turn(s)
(tool turns first, final reply last). The full transcript stays on the server. Supply
idempotency_key to make the submit safely retryable — a repeated request with the
same key (even after the original response finalised the session) replays the previous
assistant turn without re-running the LLM.
Network retries (especially over SMS) can re-submit the same logical turn twice. Always send an
idempotency_key (any client-chosen unique value, e.g. UUID or sessionId+turnNumber) so the
server can dedupe. The retry returns the prior assistant response — including when the original
turn finalised the session.
Request body for POST /api/v1/chats/{id}/messages — submits a single user turn to
the named session. The response contains only the assistant turn(s) produced this round,
not the full transcript (the transcript lives on the server and is retrievable via
GET /api/v1/chats/{id}).
Optional idempotency key. When supplied, a retried submit with the same key returns
the previous assistant response without re-running the LLM. Bound to the session, not
global. Capped at 128 characters.
Turn-level additional_data overrides merged on top of the session's persisted
bag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.
Show child attributes
Response
Submit succeeded. Inspect is_final to decide whether to keep submitting.
Response to POST /api/v1/chats/{id}/messages. Returns only the new assistant turn(s)
produced this round (per the plan's "returns only the new assistant turn(s)" requirement),
plus the post-turn session status so clients don't need a follow-up GET to learn whether
the agent finished the conversation.
New messages produced this turn. Ordered: assistant tool-turns first (each bundling
its tool calls with their executed responses), final plain-text assistant reply last.
True when the agent signalled end-of-conversation this turn (e.g. invoked the
finishTheConversation built-in tool) and the session has been finalised. After
this point, further submits return 409 Conflict.
Knowledge base documents this turn's answer drew on, deduplicated by document and in rank
order. Present when the agent has a knowledge base enabled (features.rag); empty
when the search found nothing or failed. Omitted when the agent has no knowledge base
enabled, and on an idempotent replay of an earlier turn. With features.rag.mode
"tool", the documents of every search the agent ran this turn, each with its best score,
most relevant first; empty when the agent did not search.
How this turn used the agent's knowledge bases: the mode and the number of searches.
Omitted on an idempotent replay of an earlier turn.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Dasha BlackBox Documentation","description":"Build, deploy, and monitor voice AI agents with Dasha BlackBox. Complete documentation for creating intelligent conversational AI agents with advanced voice capabilities.","colors":{"primary":"#4F46E5","light":"#6366F1","dark":"#312E81"},"logo":{"light":"https://mintcdn.com/dasha-628f9d33/OIOU150RbPNcpw0P/docs/logo-wordmark-light.svg?fit=max\u0026auto=format\u0026n=OIOU150RbPNcpw0P\u0026q=85\u0026s=d09a8bf9e3455eda1fccc003884b3cdf","dark":"https://mintcdn.com/dasha-628f9d33/OIOU150RbPNcpw0P/docs/logo-wordmark-dark.svg?fit=max\u0026auto=format\u0026n=OIOU150RbPNcpw0P\u0026q=85\u0026s=1a3ce52b54cb5126d7f2cd2a42c27fa3","href":"https://blackbox.dasha.ai"},"favicon":"https://mintcdn.com/dasha-628f9d33/PM9rl5FBZe1J7dH8/docs/logo.svg?fit=max\u0026auto=format\u0026n=PM9rl5FBZe1J7dH8\u0026q=85\u0026s=21c9365f53a83564419467531fb20a5d","api":{"playground":{"display":"interactive"},"examples":{"languages":["javascript","curl","python"]}},"navbar":{"links":[{"href":"https://dasha.ai","label":"Explore other Dasha products"},{"href":"mailto:support+blackbox@dasha.ai","label":"Get Support"}],"primary":{"type":"button","label":"Go to Dashboard","href":"https://blackbox.dasha.ai"}},"footer":{"socials":{"x":"https://x.com/dashaai_","linkedin":"https://www.linkedin.com/company/dashaai","github":"https://github.com/dasha-ai"},"links":[{"header":"Resources","items":[{"label":"Main Website","href":"https://dasha.ai"},{"label":"Dashboard","href":"https://blackbox.dasha.ai"},{"label":"Status","href":"https://status.dasha.ai"}]},{"header":"Support","items":[{"label":"Get Support","href":"mailto:support+blackbox@dasha.ai"}]}]},"search":{"prompt":"Search Dasha BlackBox docs..."},"seo":{"metatags":{"canonical":"https://blackbox.dasha.ai"},"indexing":"navigable"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":true},"integrations":{"posthog":{"apiKey":"phc_bF01JhDcDBEhCGS2wY8QMkGqrzgBQ25KxhcziHgwDvm","apiHost":"https://us.i.posthog.com"}},"errors":{"404":{"redirect":false,"title":"Page Not Found","description":"This page doesn't exist. Try using the search or navigation to find what you're looking for."}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"chart-line","href":"https://status.dasha.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dasha-628f9d33","hasAudioNarration":false,"actualSubdomain":"dasha-628f9d33","customDomains":["docs.blackbox.dasha.ai"],"gitSource":{"type":"github","owner":"dasha-ai","repo":"blackbox-docs","deployBranch":"production","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeafa53b434e7d02a3a2567","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":119},{"language":"default","tag":"Documentation","count":64},{"language":"default","tag":"Create","count":19},{"language":"default","tag":"Advanced Features","count":18},{"language":"default","tag":"Deploy","count":11},{"language":"default","tag":"Introduction","count":9},{"language":"default","tag":"Calls","count":9},{"language":"default","tag":"Misc","count":9},{"language":"default","tag":"WebIntegrations","count":9},{"language":"default","tag":"Document","count":8}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@dasha.ai"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session","slug":"/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session","pageMetadata":{"title":"Submit one user turn to an existing chat session.","description":"Drives the agent through one LLM round-trip and returns only the new assistant turn(s)\n(tool turns first, final reply last). The full transcript stays on the server. Supply\n`idempotency_key` to make the submit safely retryable — a repeated request with the\nsame key (even after the original response finalised the session) replays the previous\nassistant turn without re-running the LLM.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/chats/{id}/messages","href":"/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Drives the agent through one LLM round-trip and returns only the new assistant turn(s)\\n(tool turns first, final reply last). The full transcript stays on the server. Supply\\n\", _jsx(_components.code, {\n children: \"idempotency_key\"\n }), \" to make the submit safely retryable — a repeated request with the\\nsame key (even after the original response finalised the session) replays the previous\\nassistant turn without re-running the LLM.\"]\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={code:`code`,p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`idempotency`,children:`Idempotency`}),`\n`,_jsxs(_components.p,{children:[`Network retries (especially over SMS) can re-submit the same logical turn twice. Always send an\n`,_jsx(_components.code,{children:`idempotency_key`}),` (any client-chosen unique value, e.g. UUID or `,_jsx(_components.code,{children:`sessionId+turnNumber`}),`) so the\nserver can dedupe. The retry returns the prior assistant response — including when the original\nturn finalised the session.`]})]})}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":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Submit one user turn to an existing chat session.","description":"Drives the agent through one LLM round-trip and returns only the new assistant turn(s)\n(tool turns first, final reply last). The full transcript stays on the server. Supply\n`idempotency_key` to make the submit safely retryable — a repeated request with the\nsame key (even after the original response finalised the session) replays the previous\nassistant turn without re-running the LLM.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/chats/{id}/messages","href":"/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Idempotency","slug":"idempotency","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Chats"],"summary":"Submit one user turn to an existing chat session.","description":"Drives the agent through one LLM round-trip and returns only the new assistant turn(s)\n(tool turns first, final reply last). The full transcript stays on the server. Supply\n`idempotency_key` to make the submit safely retryable — a repeated request with the\nsame key (even after the original response finalised the session) replays the previous\nassistant turn without re-running the LLM.","parameters":["b2d5baec-9ce2-43ad-8cbd-b28b8641ef22"],"requestBody":"7db945e6-35b9-41f5-8f87-296cce0625e2","responses":{"200":"1a2ef31e-95c6-446e-b9f5-cf83586bf285","400":"d5e9fed9-ad97-44a9-8233-9aa3fea7ab4e","401":"a70c8d31-fc8b-4fcf-8fd6-73bf73641c4c","404":"adc1dbb1-e2c8-4ede-84f6-69ab832b92e7","409":"b64dcc0e-f453-48c6-95b1-5f64ce7cb11a"},"x-mint":{"content":"## Idempotency\n\nNetwork retries (especially over SMS) can re-submit the same logical turn twice. Always send an\n`idempotency_key` (any client-chosen unique value, e.g. UUID or `sessionId+turnNumber`) so the\nserver can dedupe. The retry returns the prior assistant response — including when the original\nturn finalised the session."},"method":"post","type":"path","servers":["5fb0835c-a4f0-4503-aebe-00595f89e21f"],"security":["438e7f68-a155-42fd-8675-9d1199ae2693","bcfc7084-0b9a-4851-80ea-de419eddc013"],"path":"/api/v1/chats/{id}/messages","baseUrlOptions":["https://blackbox.dasha.ai"],"title":"Submit one user turn to an existing chat session.","codeSamples":[],"requestExampleLanguages":["javascript","bash","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"b2d5baec-9ce2-43ad-8cbd-b28b8641ef22":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/chats/{id}/messages` — submits a single user turn to\nthe named session. The response contains only the assistant turn(s) produced this round,\nnot the full transcript (the transcript lives on the server and is retrievable via\n`GET /api/v1/chats/{id}`).","properties":{"content":{"oneOf":[{"type":"string","description":"User-supplied message content for this turn.","uniqueKey":"content.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-supplied message content for this turn.","uniqueKey":"content.oneOf.1","typeLabel":"null"}],"uniqueKey":"content","typeLabel":"string | null"},"idempotency_key":{"oneOf":[{"type":"string","description":"Optional idempotency key. When supplied, a retried submit with the same key returns\nthe previous assistant response without re-running the LLM. Bound to the session, not\nglobal. Capped at 128 characters.","uniqueKey":"idempotency_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional idempotency key. When supplied, a retried submit with the same key returns\nthe previous assistant response without re-running the LLM. Bound to the session, not\nglobal. Capped at 128 characters.","uniqueKey":"idempotency_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"idempotency_key","typeLabel":"string | null"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Turn-level `additional_data` overrides merged on top of the session's persisted\nbag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.","uniqueKey":"additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Turn-level `additional_data` overrides merged on top of the session's persisted\nbag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.","uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"content":"\u003cstring>","idempotency_key":"\u003cstring>","additional_data":{}}}},"exampleType":"generated"},"text/json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/chats/{id}/messages` — submits a single user turn to\nthe named session. The response contains only the assistant turn(s) produced this round,\nnot the full transcript (the transcript lives on the server and is retrievable via\n`GET /api/v1/chats/{id}`).","properties":{"content":{"oneOf":[{"type":"string","description":"User-supplied message content for this turn.","uniqueKey":"content.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-supplied message content for this turn.","uniqueKey":"content.oneOf.1","typeLabel":"null"}],"uniqueKey":"content","typeLabel":"string | null"},"idempotency_key":{"oneOf":[{"type":"string","description":"Optional idempotency key. When supplied, a retried submit with the same key returns\nthe previous assistant response without re-running the LLM. Bound to the session, not\nglobal. Capped at 128 characters.","uniqueKey":"idempotency_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional idempotency key. When supplied, a retried submit with the same key returns\nthe previous assistant response without re-running the LLM. Bound to the session, not\nglobal. Capped at 128 characters.","uniqueKey":"idempotency_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"idempotency_key","typeLabel":"string | null"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Turn-level `additional_data` overrides merged on top of the session's persisted\nbag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.","uniqueKey":"additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Turn-level `additional_data` overrides merged on top of the session's persisted\nbag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.","uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"content":"\u003cstring>","idempotency_key":"\u003cstring>","additional_data":{}}}},"exampleType":"generated"},"application/*+json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/chats/{id}/messages` — submits a single user turn to\nthe named session. The response contains only the assistant turn(s) produced this round,\nnot the full transcript (the transcript lives on the server and is retrievable via\n`GET /api/v1/chats/{id}`).","properties":{"content":{"oneOf":[{"type":"string","description":"User-supplied message content for this turn.","uniqueKey":"content.oneOf.0","typeLabel":"string"},{"type":"null","description":"User-supplied message content for this turn.","uniqueKey":"content.oneOf.1","typeLabel":"null"}],"uniqueKey":"content","typeLabel":"string | null"},"idempotency_key":{"oneOf":[{"type":"string","description":"Optional idempotency key. When supplied, a retried submit with the same key returns\nthe previous assistant response without re-running the LLM. Bound to the session, not\nglobal. Capped at 128 characters.","uniqueKey":"idempotency_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional idempotency key. When supplied, a retried submit with the same key returns\nthe previous assistant response without re-running the LLM. Bound to the session, not\nglobal. Capped at 128 characters.","uniqueKey":"idempotency_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"idempotency_key","typeLabel":"string | null"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Turn-level `additional_data` overrides merged on top of the session's persisted\nbag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.","uniqueKey":"additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Turn-level `additional_data` overrides merged on top of the session's persisted\nbag. Reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys) are dropped before merge.","uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"content":"\u003cstring>","idempotency_key":"\u003cstring>","additional_data":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"1a2ef31e-95c6-446e-b9f5-cf83586bf285":{"description":"Submit succeeded. Inspect `is_final` to decide whether to keep submitting.","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"role":{"oneOf":[{"type":"string","description":"One of \"user\", \"assistant\", \"system\".","uniqueKey":"messages.oneOf.0.items.[INDEX].role.oneOf.0","typeLabel":"string"},{"type":"null","description":"One of \"user\", \"assistant\", \"system\".","uniqueKey":"messages.oneOf.0.items.[INDEX].role.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].role","typeLabel":"string | null"},"content":{"oneOf":[{"type":"string","description":"Plain-text message content. Null when the assistant message only contains tool calls.","uniqueKey":"messages.oneOf.0.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain-text message content. Null when the assistant message only contains tool calls.","uniqueKey":"messages.oneOf.0.items.[INDEX].content.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].content","typeLabel":"string | null"},"tool_calls":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Tool call identifier propagated through the OpenAI round-trip. Required.","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Tool call identifier propagated through the OpenAI round-trip. Required.","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP).","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP).","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].name","typeLabel":"string | null"},"arguments":{"description":"Tool arguments emitted by the LLM, as a JSON object. May be omitted for tools with no parameters.","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].arguments","typeLabel":"any"},"response":{"oneOf":[{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response).","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].response.oneOf.0","typeLabel":"any"},{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response).","type":"null","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].response.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].response","typeLabel":"any | null"}},"additionalProperties":false,"description":"Combined tool call: the LLM-generated request and the executed response in a single object.\nWire-format choice — internally the orchestrator translates to OpenAI's split assistant/tool format.","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Tool calls produced by the assistant this turn, bundled with their responses.","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Tool call identifier propagated through the OpenAI round-trip. Required."},{"type":"null","description":"Tool call identifier propagated through the OpenAI round-trip. Required."}]},"name":{"oneOf":[{"type":"string","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP)."},{"type":"null","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP)."}]},"arguments":{"description":"Tool arguments emitted by the LLM, as a JSON object. May be omitted for tools with no parameters."},"response":{"oneOf":[{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response)."},{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response).","type":"null"}]}},"additionalProperties":false,"description":"Combined tool call: the LLM-generated request and the executed response in a single object.\nWire-format choice — internally the orchestrator translates to OpenAI's split assistant/tool format."},"description":"Tool calls produced by the assistant this turn, bundled with their responses.","uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].tool_calls","typeLabel":"object[] | null"},"time":{"oneOf":[{"type":"string","description":"Real wall-clock time of the message. The server stamps the messages it produces and\nechoes back any client-supplied value; it is used verbatim for the call transcript /\npost-call analysis instead of a synthesized clock. One timestamp per chat message is\nenough — chat messages are point-in-time events, unlike voice utterances. Optional.","format":"date-time","uniqueKey":"messages.oneOf.0.items.[INDEX].time.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"Real wall-clock time of the message. The server stamps the messages it produces and\nechoes back any client-supplied value; it is used verbatim for the call transcript /\npost-call analysis instead of a synthesized clock. One timestamp per chat message is\nenough — chat messages are point-in-time events, unlike voice utterances. Optional.","format":"date-time","uniqueKey":"messages.oneOf.0.items.[INDEX].time.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].time","typeLabel":"string\u003cdate-time> | null"},"sources":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"document_id":{"oneOf":[{"type":"string","description":"Id of the knowledge base document.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].document_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Id of the knowledge base document.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].document_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].document_id","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].title","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].url","typeLabel":"string | null"},"score":{"type":"number","description":"Relevance score of the document's best-ranked passage, as reported by the knowledge base\nsearch. Higher is more relevant.","format":"double","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX].score","typeLabel":"number\u003cdouble>"}},"additionalProperties":false,"description":"A knowledge base document the agent's answer drew on: the source of one or more passages\nretrieved from the agent's linked knowledge bases and added to the model's prompt for the turn.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"In a stored chat's history (`GET /api/v1/chats`, `GET /api/v1/chats/{id}`): the knowledge\nbase documents the turn's reply drew on, on the last assistant message of the turn. Omitted\nelsewhere; a turn's response carries them as its own `sources`.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"document_id":{"oneOf":[{"type":"string","description":"Id of the knowledge base document."},{"type":"null","description":"Id of the knowledge base document."}]},"title":{"oneOf":[{"type":"string","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."},{"type":"null","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."}]},"url":{"oneOf":[{"type":"string","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."},{"type":"null","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."}]},"score":{"type":"number","description":"Relevance score of the document's best-ranked passage, as reported by the knowledge base\nsearch. Higher is more relevant.","format":"double"}},"additionalProperties":false,"description":"A knowledge base document the agent's answer drew on: the source of one or more passages\nretrieved from the agent's linked knowledge bases and added to the model's prompt for the turn."},"description":"In a stored chat's history (`GET /api/v1/chats`, `GET /api/v1/chats/{id}`): the knowledge\nbase documents the turn's reply drew on, on the last assistant message of the turn. Omitted\nelsewhere; a turn's response carries them as its own `sources`.","uniqueKey":"messages.oneOf.0.items.[INDEX].sources.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].sources","typeLabel":"object[] | null"},"grounding":{"oneOf":[{"type":"object","description":"In a stored chat's history: how the turn used the agent's knowledge bases, on the last\nassistant message of the turn. Omitted elsewhere; a turn's response carries it as its own\n`grounding`.","properties":{"mode":{"type":"string","description":"How the agent uses its knowledge bases: `none` when it has no knowledge base enabled or linked,\n`everyTurn` when it searches once before every reply, `tool` when it searches with the\nsearchKnowledgeBase tool.","enum":["none","everyTurn","tool"],"uniqueKey":"messages.oneOf.0.items.[INDEX].grounding.oneOf.0.mode","typeLabel":"enum\u003cstring>"},"searches":{"type":"integer","description":"Knowledge base searches this turn ran, including searches that failed. In `everyTurn` mode 1, or\n0 when the turn had no user message; in `tool` mode the number of searches the agent ran with the\nsearchKnowledgeBase tool, 0 when it did not search; in `none` mode 0.","format":"int32","uniqueKey":"messages.oneOf.0.items.[INDEX].grounding.oneOf.0.searches","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"messages.oneOf.0.items.[INDEX].grounding.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"messages.oneOf.0.items.[INDEX].grounding.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.oneOf.0.items.[INDEX].grounding","typeLabel":"object | null"}},"additionalProperties":false,"description":"Wire-format text-chat message. Supports user / assistant / system roles.\nTool invocations are bundled — a single assistant message carries the tool call(s)\nalongside their executed response(s) via DashaAI.BlackBox.AgentAPI.TextChat.Dtos.ChatMessageDto.ToolCalls.","uniqueKey":"messages.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"New messages produced this turn. Ordered: assistant tool-turns first (each bundling\nits tool calls with their executed responses), final plain-text assistant reply last.","uniqueKey":"messages.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"role":{"oneOf":[{"type":"string","description":"One of \"user\", \"assistant\", \"system\"."},{"type":"null","description":"One of \"user\", \"assistant\", \"system\"."}]},"content":{"oneOf":[{"type":"string","description":"Plain-text message content. Null when the assistant message only contains tool calls."},{"type":"null","description":"Plain-text message content. Null when the assistant message only contains tool calls."}]},"tool_calls":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Tool call identifier propagated through the OpenAI round-trip. Required."},{"type":"null","description":"Tool call identifier propagated through the OpenAI round-trip. Required."}]},"name":{"oneOf":[{"type":"string","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP)."},{"type":"null","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP)."}]},"arguments":{"description":"Tool arguments emitted by the LLM, as a JSON object. May be omitted for tools with no parameters."},"response":{"oneOf":[{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response)."},{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response).","type":"null"}]}},"additionalProperties":false,"description":"Combined tool call: the LLM-generated request and the executed response in a single object.\nWire-format choice — internally the orchestrator translates to OpenAI's split assistant/tool format."},"description":"Tool calls produced by the assistant this turn, bundled with their responses."},{"type":"null","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Tool call identifier propagated through the OpenAI round-trip. Required."},{"type":"null","description":"Tool call identifier propagated through the OpenAI round-trip. Required."}]},"name":{"oneOf":[{"type":"string","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP)."},{"type":"null","description":"Tool name as registered with the agent (built-in, agent-defined function, or MCP)."}]},"arguments":{"description":"Tool arguments emitted by the LLM, as a JSON object. May be omitted for tools with no parameters."},"response":{"oneOf":[{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response)."},{"description":"Tool response. Set after the server executes the tool. Null while the request is still in flight\n(only happens internally — wire-format messages from the client always include the response).","type":"null"}]}},"additionalProperties":false,"description":"Combined tool call: the LLM-generated request and the executed response in a single object.\nWire-format choice — internally the orchestrator translates to OpenAI's split assistant/tool format."},"description":"Tool calls produced by the assistant this turn, bundled with their responses."}]},"time":{"oneOf":[{"type":"string","description":"Real wall-clock time of the message. The server stamps the messages it produces and\nechoes back any client-supplied value; it is used verbatim for the call transcript /\npost-call analysis instead of a synthesized clock. One timestamp per chat message is\nenough — chat messages are point-in-time events, unlike voice utterances. Optional.","format":"date-time"},{"type":"null","description":"Real wall-clock time of the message. The server stamps the messages it produces and\nechoes back any client-supplied value; it is used verbatim for the call transcript /\npost-call analysis instead of a synthesized clock. One timestamp per chat message is\nenough — chat messages are point-in-time events, unlike voice utterances. Optional.","format":"date-time"}]},"sources":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"document_id":{"oneOf":[{"type":"string","description":"Id of the knowledge base document."},{"type":"null","description":"Id of the knowledge base document."}]},"title":{"oneOf":[{"type":"string","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."},{"type":"null","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."}]},"url":{"oneOf":[{"type":"string","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."},{"type":"null","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."}]},"score":{"type":"number","description":"Relevance score of the document's best-ranked passage, as reported by the knowledge base\nsearch. Higher is more relevant.","format":"double"}},"additionalProperties":false,"description":"A knowledge base document the agent's answer drew on: the source of one or more passages\nretrieved from the agent's linked knowledge bases and added to the model's prompt for the turn."},"description":"In a stored chat's history (`GET /api/v1/chats`, `GET /api/v1/chats/{id}`): the knowledge\nbase documents the turn's reply drew on, on the last assistant message of the turn. Omitted\nelsewhere; a turn's response carries them as its own `sources`."},{"type":"null","items":{"type":"object","properties":{"document_id":{"oneOf":[{"type":"string","description":"Id of the knowledge base document."},{"type":"null","description":"Id of the knowledge base document."}]},"title":{"oneOf":[{"type":"string","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."},{"type":"null","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."}]},"url":{"oneOf":[{"type":"string","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."},{"type":"null","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."}]},"score":{"type":"number","description":"Relevance score of the document's best-ranked passage, as reported by the knowledge base\nsearch. Higher is more relevant.","format":"double"}},"additionalProperties":false,"description":"A knowledge base document the agent's answer drew on: the source of one or more passages\nretrieved from the agent's linked knowledge bases and added to the model's prompt for the turn."},"description":"In a stored chat's history (`GET /api/v1/chats`, `GET /api/v1/chats/{id}`): the knowledge\nbase documents the turn's reply drew on, on the last assistant message of the turn. Omitted\nelsewhere; a turn's response carries them as its own `sources`."}]},"grounding":{"oneOf":[{"type":"object","description":"In a stored chat's history: how the turn used the agent's knowledge bases, on the last\nassistant message of the turn. Omitted elsewhere; a turn's response carries it as its own\n`grounding`.","properties":{"mode":{"type":"string","description":"How the agent uses its knowledge bases: `none` when it has no knowledge base enabled or linked,\n`everyTurn` when it searches once before every reply, `tool` when it searches with the\nsearchKnowledgeBase tool.","enum":["none","everyTurn","tool"]},"searches":{"type":"integer","description":"Knowledge base searches this turn ran, including searches that failed. In `everyTurn` mode 1, or\n0 when the turn had no user message; in `tool` mode the number of searches the agent ran with the\nsearchKnowledgeBase tool, 0 when it did not search; in `none` mode 0.","format":"int32"}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false,"description":"Wire-format text-chat message. Supports user / assistant / system roles.\nTool invocations are bundled — a single assistant message carries the tool call(s)\nalongside their executed response(s) via DashaAI.BlackBox.AgentAPI.TextChat.Dtos.ChatMessageDto.ToolCalls."},"description":"New messages produced this turn. Ordered: assistant tool-turns first (each bundling\nits tool calls with their executed responses), final plain-text assistant reply last.","uniqueKey":"messages.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages","typeLabel":"object[] | null"},"is_final":{"type":"boolean","description":"True when the agent signalled end-of-conversation this turn (e.g. invoked the\n`finishTheConversation` built-in tool) and the session has been finalised. After\nthis point, further submits return 409 Conflict.","uniqueKey":"is_final","typeLabel":"boolean"},"status":{"oneOf":[{"type":"string","description":"Post-turn session status: `active` while accepting new turns, `final` after\nfinalisation (matches the `state` filter on the list endpoint).","uniqueKey":"status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Post-turn session status: `active` while accepting new turns, `final` after\nfinalisation (matches the `state` filter on the list endpoint).","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"string | null"},"sources":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"document_id":{"oneOf":[{"type":"string","description":"Id of the knowledge base document.","uniqueKey":"sources.oneOf.0.items.[INDEX].document_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Id of the knowledge base document.","uniqueKey":"sources.oneOf.0.items.[INDEX].document_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"sources.oneOf.0.items.[INDEX].document_id","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one.","uniqueKey":"sources.oneOf.0.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one.","uniqueKey":"sources.oneOf.0.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"sources.oneOf.0.items.[INDEX].title","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files.","uniqueKey":"sources.oneOf.0.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files.","uniqueKey":"sources.oneOf.0.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"uniqueKey":"sources.oneOf.0.items.[INDEX].url","typeLabel":"string | null"},"score":{"type":"number","description":"Relevance score of the document's best-ranked passage, as reported by the knowledge base\nsearch. Higher is more relevant.","format":"double","uniqueKey":"sources.oneOf.0.items.[INDEX].score","typeLabel":"number\u003cdouble>"}},"additionalProperties":false,"description":"A knowledge base document the agent's answer drew on: the source of one or more passages\nretrieved from the agent's linked knowledge bases and added to the model's prompt for the turn.","uniqueKey":"sources.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Knowledge base documents this turn's answer drew on, deduplicated by document and in rank\norder. Present when the agent has a knowledge base enabled (`features.rag`); empty\nwhen the search found nothing or failed. Omitted when the agent has no knowledge base\nenabled, and on an idempotent replay of an earlier turn. With `features.rag.mode`\n\"tool\", the documents of every search the agent ran this turn, each with its best score,\nmost relevant first; empty when the agent did not search.","uniqueKey":"sources.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"document_id":{"oneOf":[{"type":"string","description":"Id of the knowledge base document."},{"type":"null","description":"Id of the knowledge base document."}]},"title":{"oneOf":[{"type":"string","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."},{"type":"null","description":"Title of the document's best-ranked passage (the section of the document it belongs to),\nwhen it has one."}]},"url":{"oneOf":[{"type":"string","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."},{"type":"null","description":"Address of the web page the document was crawled from, for pages of a knowledge base's URL sources; null for\nuploaded files."}]},"score":{"type":"number","description":"Relevance score of the document's best-ranked passage, as reported by the knowledge base\nsearch. Higher is more relevant.","format":"double"}},"additionalProperties":false,"description":"A knowledge base document the agent's answer drew on: the source of one or more passages\nretrieved from the agent's linked knowledge bases and added to the model's prompt for the turn."},"description":"Knowledge base documents this turn's answer drew on, deduplicated by document and in rank\norder. Present when the agent has a knowledge base enabled (`features.rag`); empty\nwhen the search found nothing or failed. Omitted when the agent has no knowledge base\nenabled, and on an idempotent replay of an earlier turn. With `features.rag.mode`\n\"tool\", the documents of every search the agent ran this turn, each with its best score,\nmost relevant first; empty when the agent did not search.","uniqueKey":"sources.oneOf.1","typeLabel":"null"}],"uniqueKey":"sources","typeLabel":"object[] | null"},"grounding":{"oneOf":[{"type":"object","description":"How this turn used the agent's knowledge bases: the mode and the number of searches.\nOmitted on an idempotent replay of an earlier turn.","properties":{"mode":{"type":"string","description":"How the agent uses its knowledge bases: `none` when it has no knowledge base enabled or linked,\n`everyTurn` when it searches once before every reply, `tool` when it searches with the\nsearchKnowledgeBase tool.","enum":["none","everyTurn","tool"],"uniqueKey":"grounding.oneOf.0.mode","typeLabel":"enum\u003cstring>"},"searches":{"type":"integer","description":"Knowledge base searches this turn ran, including searches that failed. In `everyTurn` mode 1, or\n0 when the turn had no user message; in `tool` mode the number of searches the agent ran with the\nsearchKnowledgeBase tool, 0 when it did not search; in `none` mode 0.","format":"int32","uniqueKey":"grounding.oneOf.0.searches","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"grounding.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"grounding.oneOf.1","typeLabel":"null"}],"uniqueKey":"grounding","typeLabel":"object | null"}},"additionalProperties":false,"description":"Response to `POST /api/v1/chats/{id}/messages`. Returns only the new assistant turn(s)\nproduced this round (per the plan's \"returns only the new assistant turn(s)\" requirement),\nplus the post-turn session status so clients don't need a follow-up GET to learn whether\nthe agent finished the conversation.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"messages":[{"role":"\u003cstring>","content":"\u003cstring>","tool_calls":[{"id":"\u003cstring>","name":"\u003cstring>","arguments":"\u003cunknown>","response":"\u003cunknown>"}],"time":"2023-11-07T05:31:56Z","sources":[{"document_id":"\u003cstring>","title":"\u003cstring>","url":"\u003cstring>","score":123}],"grounding":{"mode":"none","searches":123}}],"is_final":true,"status":"\u003cstring>","sources":[{"document_id":"\u003cstring>","title":"\u003cstring>","url":"\u003cstring>","score":123}],"grounding":{"mode":"none","searches":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"d5e9fed9-ad97-44a9-8233-9aa3fea7ab4e":{"description":"Request failed validation (empty content, oversize idempotency key, …).","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"a70c8d31-fc8b-4fcf-8fd6-73bf73641c4c":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"adc1dbb1-e2c8-4ede-84f6-69ab832b92e7":{"description":"No session with this id exists for the caller's organization.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"b64dcc0e-f453-48c6-95b1-5f64ce7cb11a":{"description":"The session has already finalised. Open a new one to keep talking.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"438e7f68-a155-42fd-8675-9d1199ae2693":{"ApiKey":{"type":"http","description":"API Key Authentication (Bearer {key})","scheme":"Bearer","scopes":[],"schemeName":"ApiKey"}},"bcfc7084-0b9a-4851-80ea-de419eddc013":{"OAuth":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://auth.dasha.ai/connect/authorize","scopes":{"platform_api":"Platform API"}}},"scopes":[],"schemeName":"OAuth"}}},"servers":{"5fb0835c-a4f0-4503-aebe-00595f89e21f":{"url":"https://blackbox.dasha.ai","description":"Dasha BlackBox Agent API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"API Key Authentication (Bearer {key})","scheme":"Bearer","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API Key Authentication (Bearer {key})","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKey","name":"Authorization"}],"title":"ApiKey"},{"schemes":[{"scheme":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://auth.dasha.ai/connect/authorize","scopes":{"platform_api":"Platform API"}}},"scopes":[],"schemeName":"OAuth"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"The access token received from the authorization server in the OAuth 2.0 flow.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"OAuth","name":"Authorization"}],"title":"OAuth"}]},"originalFileLocation":"https://blackbox.dasha.ai/swagger/v1/swagger.json"},"subdomain":"dasha-628f9d33","siteName":"Dasha BlackBox Documentation","title":"Submit one user turn to an existing chat session. - Dasha BlackBox Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T09:27:34.562Z","originalFileLocation":"docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Drives the agent through one LLM round-trip and returns only the new assistant turn(s) (tool turns first, final reply last). The full transcript stays on the server. Supply idempotency_key to make the submit safely retryable — a repeated request with the same key (even after the original response finalised the session) replays the previous assistant turn without re-running the LLM.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dasha BlackBox 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/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_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/dasha-628f9d33/fTvoboiNZnitZ8gw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Submit one user turn to an existing chat session. - Dasha BlackBox Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Drives the agent through one LLM round-trip and returns only the new assistant turn(s) (tool turns first, final reply last). The full transcript stays on the server. Supply idempotency_key to make the submit safely retryable — a repeated request with the same key (even after the original response finalised the session) replays the previous assistant turn without re-running the LLM.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dasha BlackBox Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dasha-628f9d33.mintlify.site/_mintlify/api/og/v2?division=Chats\u0026amp;title=Submit+one+user+turn+to+an+existing+chat+session.\u0026amp;description=Drives+the+agent+through+one+LLM+round-trip+and+returns+only+the+new+assistant+turn%28s%29%0A%28tool+turns+first%2C+final+reply+last%29.+The+full+transcript+stays+on+the+se\u0026amp;theme=8f648b54f3a39a57bca8af12\u0026amp;signature=30ca4801af2869cefb6e9297ea5e38db438e83e34ee874b4745356b2ac7a3daf\">\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=\"Submit one user turn to an existing chat session. - Dasha BlackBox Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Drives the agent through one LLM round-trip and returns only the new assistant turn(s) (tool turns first, final reply last). The full transcript stays on the server. Supply idempotency_key to make the submit safely retryable — a repeated request with the same key (even after the original response finalised the session) replays the previous assistant turn without re-running the LLM.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dasha-628f9d33.mintlify.site/_mintlify/api/og/v2?division=Chats\u0026amp;title=Submit+one+user+turn+to+an+existing+chat+session.\u0026amp;description=Drives+the+agent+through+one+LLM+round-trip+and+returns+only+the+new+assistant+turn%28s%29%0A%28tool+turns+first%2C+final+reply+last%29.+The+full+transcript+stays+on+the+se\u0026amp;theme=8f648b54f3a39a57bca8af12\u0026amp;signature=30ca4801af2869cefb6e9297ea5e38db438e83e34ee874b4745356b2ac7a3daf\">\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/dasha-628f9d33/fTvoboiNZnitZ8gw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dasha BlackBox Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4F46E5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://blackbox.dasha.ai/#organization\",\"name\":\"Dasha BlackBox Documentation\",\"url\":\"https://blackbox.dasha.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dasha-628f9d33/OIOU150RbPNcpw0P/docs/logo-wordmark-light.svg?fit=max\u0026auto=format\u0026n=OIOU150RbPNcpw0P\u0026q=85\u0026s=d09a8bf9e3455eda1fccc003884b3cdf\"}},{\"@type\":\"WebSite\",\"@id\":\"https://blackbox.dasha.ai#website\",\"name\":\"Dasha BlackBox Documentation\",\"url\":\"https://blackbox.dasha.ai\",\"publisher\":{\"@id\":\"https://blackbox.dasha.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session#webpage\",\"url\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session\",\"name\":\"Submit one user turn to an existing chat session.\",\"description\":\"Drives the agent through one LLM round-trip and returns only the new assistant turn(s) (tool turns first, final reply last). The full transcript stays on the server. Supply idempotency_key to make the submit safely retryable — a repeated request with the same key (even after the original response finalised the session) replays the previous assistant turn without re-running the LLM.\",\"dateModified\":\"2026-11-04T09:27:34.562Z\",\"isPartOf\":{\"@id\":\"https://blackbox.dasha.ai#website\"},\"breadcrumb\":{\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Chats\",\"item\":\"https://blackbox.dasha.ai/docs/api-reference/chats/list-chat-sessions-matching-the-supplied-filters\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submit one user turn to an existing chat session.\",\"item\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session#apireference\",\"headline\":\"Submit one user turn to an existing chat session.\",\"name\":\"Submit one user turn to an existing chat session.\",\"description\":\"Drives the agent through one LLM round-trip and returns only the new assistant turn(s) (tool turns first, final reply last). The full transcript stays on the server. Supply idempotency_key to make the submit safely retryable — a repeated request with the same key (even after the original response finalised the session) replays the previous assistant turn without re-running the LLM.\",\"url\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session\",\"mainEntityOfPage\":{\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session#webpage\"},\"dateModified\":\"2026-11-04T09:27:34.562Z\",\"publisher\":{\"@id\":\"https://blackbox.dasha.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://blackbox.dasha.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dasha BlackBox Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dasha BlackBox Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session.md","siteName":"Dasha BlackBox Documentation","nav":{"global":{"anchors":[{"anchor":"Status","icon":"chart-line","href":"https://status.dasha.ai"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/introduction/what-is-blackbox"}]},{"tab":"API Reference","groups":[{"group":"ActivityLogs","pages":[{"title":"Search activity log","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/activity-logs/search","href":"/docs/api-reference/activitylogs/search-activity-log"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/agents","href":"/docs/api-reference/agents/list-agents"},{"title":"Create agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/agents","href":"/docs/api-reference/agents/create-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/agents/{agentId}","href":"/docs/api-reference/agents/get-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/agents/{agentId}","href":"/docs/api-reference/agents/update-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/agents/{agentId}","href":"/docs/api-reference/agents/delete-agent"},{"title":"Clone agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/agents/{agentId}/clone","href":"/docs/api-reference/agents/clone-agent"},{"title":"Get agents linked to knowledge base","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/agents/knowledge-base/list","href":"/docs/api-reference/agents/get-agents-linked-to-knowledge-base"}]},{"group":"AgentTestCases","pages":[]},{"group":"AgentToolTestResults","pages":[]},{"group":"CallResults","pages":[{"title":"Search call results","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/callresults/search","href":"/docs/api-reference/callresults/search-call-results"}]},{"group":"Calls","pages":[{"title":"Create call","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/calls","href":"/docs/api-reference/calls/create-call"},{"title":"Register inbound call","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/calls/register","href":"/docs/api-reference/calls/register-inbound-call"},{"title":"Create bulk calls","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/calls/bulk","href":"/docs/api-reference/calls/create-bulk-calls"},{"title":"Get call","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/calls/{callId}","href":"/docs/api-reference/calls/get-call"},{"title":"Cancel call","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/calls/{callId}","href":"/docs/api-reference/calls/cancel-call"},{"title":"Get call queue","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/calls/queue/list","href":"/docs/api-reference/calls/get-call-queue"},{"title":"Get call statistics","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/calls/statistics/statuses","href":"/docs/api-reference/calls/get-call-statistics"},{"title":"Get call recording","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/calls/media/{recordId}","href":"/docs/api-reference/calls/get-call-recording"},{"title":"Get SIP traces","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/calls/{callId}/sip-traces","href":"/docs/api-reference/calls/get-sip-traces"}]},{"group":"Chats","pages":[{"title":"List chat sessions matching the supplied filters.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/chats","href":"/docs/api-reference/chats/list-chat-sessions-matching-the-supplied-filters"},{"title":"Open a new chat session.","description":"Mints a server-side session bound to the named agent on the named channel. The agent is\nfrozen for the session's lifetime. `external_id` is optional but recommended for\nchannel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate\nopen-session requests for the same external endpoint via a partial unique index.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/chats","href":"/docs/api-reference/chats/open-a-new-chat-session"},{"title":"Submit one user turn to an existing chat session.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/chats/{id}/messages","href":"/docs/api-reference/chats/submit-one-user-turn-to-an-existing-chat-session"},{"title":"Retrieve a chat session — full transcript and lifecycle status.","description":null,"deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/chats/{id}","href":"/docs/api-reference/chats/retrieve-a-chat-session-—-full-transcript-and-lifecycle-status"},{"title":"End a chat session under the `user_end` reason.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/chats/{id}/end","href":"/docs/api-reference/chats/end-a-chat-session-under-the-`user_end`-reason"}]},{"group":"Copilot","pages":[]},{"group":"CustomerData","pages":[]},{"group":"Mcp","pages":[{"title":"Verify MCP connection","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/mcp/verify","href":"/docs/api-reference/mcp/verify-mcp-connection"}]},{"group":"Media","pages":[{"title":"List media files","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/media","href":"/docs/api-reference/media/list-media-files"},{"title":"Upload media file","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/media","href":"/docs/api-reference/media/upload-media-file"},{"title":"Get media file","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/media/{id}","href":"/docs/api-reference/media/get-media-file"},{"title":"Delete media file","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/media/{id}","href":"/docs/api-reference/media/delete-media-file"},{"title":"Update media file","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json patch /api/v1/media/{id}","href":"/docs/api-reference/media/update-media-file"},{"title":"Download media file","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/media/{id}/download","href":"/docs/api-reference/media/download-media-file"},{"title":"Get agents using media","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/media/{id}/affected-agents","href":"/docs/api-reference/media/get-agents-using-media"}]},{"group":"Misc","pages":[{"title":"Get server configuration","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc","href":"/docs/api-reference/misc/get-server-configuration"},{"title":"Get current organization","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/me","href":"/docs/api-reference/misc/get-current-organization"},{"title":"Get concurrency limits","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/concurrency","href":"/docs/api-reference/misc/get-concurrency-limits"},{"title":"Get agent template","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/agent-initial-data","href":"/docs/api-reference/misc/get-agent-template"},{"title":"List predefined background sounds","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/background-sounds","href":"/docs/api-reference/misc/list-predefined-background-sounds"},{"title":"List predefined builtin media","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/builtin-media","href":"/docs/api-reference/misc/list-predefined-builtin-media"},{"title":"List predefined built-in tools","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/builtin-tools","href":"/docs/api-reference/misc/list-predefined-built-in-tools"},{"title":"Get platform capabilities","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/misc/capabilities","href":"/docs/api-reference/misc/get-platform-capabilities"},{"title":"Get capabilities of available models","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/misc/capabilities","href":"/docs/api-reference/misc/get-capabilities-of-available-models"}]},{"group":"OpsDashboard","pages":[]},{"group":"PronunciationDictionaries","pages":[{"title":"List pronunciation dictionaries","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/pronunciation-dictionaries","href":"/docs/api-reference/pronunciationdictionaries/list-pronunciation-dictionaries"},{"title":"Create pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/pronunciation-dictionaries","href":"/docs/api-reference/pronunciationdictionaries/create-pronunciation-dictionary"},{"title":"Get pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/pronunciation-dictionaries/{providerId}","href":"/docs/api-reference/pronunciationdictionaries/get-pronunciation-dictionary"},{"title":"Delete pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/pronunciation-dictionaries/{providerId}","href":"/docs/api-reference/pronunciationdictionaries/delete-pronunciation-dictionary"},{"title":"Add pronunciation rules","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/pronunciation-dictionaries/{providerId}/add-rules","href":"/docs/api-reference/pronunciationdictionaries/add-pronunciation-rules"},{"title":"Remove pronunciation rules","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/pronunciation-dictionaries/{providerId}/remove-rules","href":"/docs/api-reference/pronunciationdictionaries/remove-pronunciation-rules"},{"title":"Get agents using pronunciation dictionary","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/pronunciation-dictionaries/{providerId}/affected-agents","href":"/docs/api-reference/pronunciationdictionaries/get-agents-using-pronunciation-dictionary"}]},{"group":"Providers","pages":[{"title":"List providers","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/providers","href":"/docs/api-reference/providers/list-providers"},{"title":"Get provider","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/providers/{id}","href":"/docs/api-reference/providers/get-provider"},{"title":"Delete provider","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/providers/{id}","href":"/docs/api-reference/providers/delete-provider"},{"title":"Verify provider","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/providers/{id}/verify","href":"/docs/api-reference/providers/verify-provider"}]},{"group":"SipAliases","pages":[]},{"group":"SipCredentials","pages":[{"title":"List SIP credentials","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-credentials","href":"/docs/api-reference/sipcredentials/list-sip-credentials"},{"title":"Create SIP credential","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/sip-credentials","href":"/docs/api-reference/sipcredentials/create-sip-credential"},{"title":"Get SIP credential","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-credentials/{id}","href":"/docs/api-reference/sipcredentials/get-sip-credential"},{"title":"Update SIP credential","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/sip-credentials/{id}","href":"/docs/api-reference/sipcredentials/update-sip-credential"},{"title":"Delete SIP credential","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/sip-credentials/{id}","href":"/docs/api-reference/sipcredentials/delete-sip-credential"},{"title":"Get agents using SIP credential","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-credentials/{id}/affected-agents","href":"/docs/api-reference/sipcredentials/get-agents-using-sip-credential"}]},{"group":"SipDomains","pages":[{"title":"List custom SIP domains","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-domains","href":"/docs/api-reference/sipdomains/list-custom-sip-domains"},{"title":"Add custom SIP domain","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/sip-domains","href":"/docs/api-reference/sipdomains/add-custom-sip-domain"},{"title":"Get custom SIP domain","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-domains/{id}","href":"/docs/api-reference/sipdomains/get-custom-sip-domain"},{"title":"Delete custom SIP domain","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/sip-domains/{id}","href":"/docs/api-reference/sipdomains/delete-custom-sip-domain"},{"title":"Update inbound routing of a custom SIP domain","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json patch /api/v1/sip-domains/{id}","href":"/docs/api-reference/sipdomains/update-inbound-routing-of-a-custom-sip-domain"},{"title":"Verify custom SIP domain","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/sip-domains/{id}/verify","href":"/docs/api-reference/sipdomains/verify-custom-sip-domain"}]},{"group":"SipPhoneNumbers","pages":[{"title":"List phone numbers","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-phone-numbers","href":"/docs/api-reference/sipphonenumbers/list-phone-numbers"},{"title":"Create phone number","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/sip-phone-numbers","href":"/docs/api-reference/sipphonenumbers/create-phone-number"},{"title":"Get phone number","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-phone-numbers/{id}","href":"/docs/api-reference/sipphonenumbers/get-phone-number"},{"title":"Update phone number","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/sip-phone-numbers/{id}","href":"/docs/api-reference/sipphonenumbers/update-phone-number"},{"title":"Delete phone number","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/sip-phone-numbers/{id}","href":"/docs/api-reference/sipphonenumbers/delete-phone-number"},{"title":"Link phone number to agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/sip-phone-numbers/{id}/agent-link","href":"/docs/api-reference/sipphonenumbers/link-phone-number-to-agent"},{"title":"Unlink phone number from agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/sip-phone-numbers/{id}/agent-link","href":"/docs/api-reference/sipphonenumbers/unlink-phone-number-from-agent"},{"title":"Get agents using phone number","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/sip-phone-numbers/{id}/affected-agents","href":"/docs/api-reference/sipphonenumbers/get-agents-using-phone-number"}]},{"group":"SipRegisterCallWebhook","pages":[]},{"group":"TextChat","pages":[{"title":"Run one stateless text-chat completion turn.","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/text-chat/completion","href":"/docs/api-reference/textchat/run-one-stateless-text-chat-completion-turn"}]},{"group":"TwilioProvider","pages":[{"title":"Get Twilio provider","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/providers/twilio/{id}","href":"/docs/api-reference/twilioprovider/get-twilio-provider"},{"title":"Update Twilio provider","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/providers/twilio/{id}","href":"/docs/api-reference/twilioprovider/update-twilio-provider"},{"title":"Create Twilio provider","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/providers/twilio","href":"/docs/api-reference/twilioprovider/create-twilio-provider"},{"title":"Update Auth Token","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json patch /api/v1/providers/twilio/{id}/auth-token","href":"/docs/api-reference/twilioprovider/update-auth-token"},{"title":"List available phone numbers","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/providers/twilio/{id}/available-numbers","href":"/docs/api-reference/twilioprovider/list-available-phone-numbers"},{"title":"Import phone numbers","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/providers/twilio/{id}/import-numbers","href":"/docs/api-reference/twilioprovider/import-phone-numbers"},{"title":"Remove phone number","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/providers/twilio/{id}/phone-numbers/{phoneNumberId}","href":"/docs/api-reference/twilioprovider/remove-phone-number"}]},{"group":"Voice","pages":[{"title":"List available voices","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/voice","href":"/docs/api-reference/voice/list-available-voices"},{"title":"Synthesize text to speech","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/voice/synthesize","href":"/docs/api-reference/voice/synthesize-text-to-speech"},{"title":"Get built-in sound audio","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/voice/builtin-media","href":"/docs/api-reference/voice/get-built-in-sound-audio"},{"title":"Clone voice from audio","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/voice/clone","href":"/docs/api-reference/voice/clone-voice-from-audio"},{"title":"Delete cloned voice","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/voice/clone/{voiceId}","href":"/docs/api-reference/voice/delete-cloned-voice"},{"title":"Update cloned voice","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json patch /api/v1/voice/clone/{voiceId}","href":"/docs/api-reference/voice/update-cloned-voice"}]},{"group":"WebhookTest","pages":[{"title":"Test webhook endpoint","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/webhooks/test","href":"/docs/api-reference/webhooktest/test-webhook-endpoint"}]},{"group":"WebIntegrations","pages":[{"title":"List web integrations","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/web-integrations","href":"/docs/api-reference/webintegrations/list-web-integrations"},{"title":"Update web integration","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/web-integrations","href":"/docs/api-reference/webintegrations/update-web-integration"},{"title":"Create web integration","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/web-integrations","href":"/docs/api-reference/webintegrations/create-web-integration"},{"title":"Get web integrations by agent","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/web-integrations/agent","href":"/docs/api-reference/webintegrations/get-web-integrations-by-agent"},{"title":"Get web integration","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/web-integrations/integration","href":"/docs/api-reference/webintegrations/get-web-integration"},{"title":"Delete web integration","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/web-integrations/{integrationId}","href":"/docs/api-reference/webintegrations/delete-web-integration"},{"title":"Create integration token","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/web-integrations/{integrationId}/tokens","href":"/docs/api-reference/webintegrations/create-integration-token"},{"title":"Delete integration token","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/web-integrations/{integrationId}/tokens/{tokenId}","href":"/docs/api-reference/webintegrations/delete-integration-token"},{"title":"Validate integration token","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/web-integrations/discover","href":"/docs/api-reference/webintegrations/validate-integration-token"}]},{"group":"WebSocket","pages":[{"title":"WebSocket endpoint for web calls","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/ws/webCall","href":"/docs/api-reference/websocket/websocket-endpoint-for-web-calls"},{"title":"Get WebSocket endpoint information","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/ws/info","href":"/docs/api-reference/websocket/get-websocket-endpoint-information"}]},{"group":"Document","pages":[{"title":"List documents in a knowledge base","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/document","href":"/docs/api-reference/document/list-documents-in-a-knowledge-base"},{"title":"Upload a document to a knowledge base","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/rag/document","href":"/docs/api-reference/document/upload-a-document-to-a-knowledge-base"},{"title":"Get document details with status","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/document/{id}","href":"/docs/api-reference/document/get-document-details-with-status"},{"title":"Update a document content in KB","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/rag/document/{id}","href":"/docs/api-reference/document/update-a-document-content-in-kb"},{"title":"Delete a document","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/rag/document/{id}","href":"/docs/api-reference/document/delete-a-document"},{"title":"Get document chunks","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/document/{id}/chunks","href":"/docs/api-reference/document/get-document-chunks"},{"title":"Get document chunk information","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/document/chunks/{chunkId}","href":"/docs/api-reference/document/get-document-chunk-information"},{"title":"Download document content","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/document/{id}/download","href":"/docs/api-reference/document/download-document-content"}]},{"group":"KnowledgeBase","pages":[{"title":"Get all knowledge","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/kb","href":"/docs/api-reference/knowledgebase/get-all-knowledge"},{"title":"Create a new knowledge base","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/rag/kb","href":"/docs/api-reference/knowledgebase/create-a-new-knowledge-base"},{"title":"Get knowledge base details with statistics","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/kb/{id}","href":"/docs/api-reference/knowledgebase/get-knowledge-base-details-with-statistics"},{"title":"Update knowledge base settings","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/rag/kb/{id}","href":"/docs/api-reference/knowledgebase/update-knowledge-base-settings"},{"title":"Delete a knowledge base and all its content","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/rag/kb/{id}","href":"/docs/api-reference/knowledgebase/delete-a-knowledge-base-and-all-its-content"}]},{"group":"KnowledgeBaseSource","pages":[{"title":"List the URL sources of a knowledge base","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/kb/{kbId}/sources","href":"/docs/api-reference/knowledgebasesource/list-the-url-sources-of-a-knowledge-base"},{"title":"Add a URL source to a knowledge base","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/rag/kb/{kbId}/sources","href":"/docs/api-reference/knowledgebasesource/add-a-url-source-to-a-knowledge-base"},{"title":"Get a URL source","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/kb/{kbId}/sources/{sourceId}","href":"/docs/api-reference/knowledgebasesource/get-a-url-source"},{"title":"Update the settings of a URL source","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json put /api/v1/rag/kb/{kbId}/sources/{sourceId}","href":"/docs/api-reference/knowledgebasesource/update-the-settings-of-a-url-source"},{"title":"Remove a URL source","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json delete /api/v1/rag/kb/{kbId}/sources/{sourceId}","href":"/docs/api-reference/knowledgebasesource/remove-a-url-source"},{"title":"Crawl a URL source now","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/rag/kb/{kbId}/sources/{sourceId}/crawl","href":"/docs/api-reference/knowledgebasesource/crawl-a-url-source-now"},{"title":"List the pages of a URL source","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/kb/{kbId}/sources/{sourceId}/pages","href":"/docs/api-reference/knowledgebasesource/list-the-pages-of-a-url-source"},{"title":"Get the page usage of all URL sources","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json get /api/v1/rag/sources/usage","href":"/docs/api-reference/knowledgebasesource/get-the-page-usage-of-all-url-sources"}]},{"group":"Search","pages":[{"title":"Search within a multi knowledge bases","deprecated":null,"version":null,"openapi":"https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/rag/search","href":"/docs/api-reference/search/search-within-a-multi-knowledge-bases"}]}]}]},"basePath":"","title":"Submit one user turn to an existing chat session. - Dasha BlackBox Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}