Mints a server-side session bound to the named agent on the named channel. The agent is
frozen for the session’s lifetime. external_id is optional but recommended for
channel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate
open-session requests for the same external endpoint via a partial unique index.
Stateful sessions (/api/v1/chats) are the server-owned counterpart of the stateless
/api/v1/text-chat/completion endpoint. Use sessions when the transport itself is asynchronous
(SMS, persistent web chat) and the client cannot reliably carry the encrypted state envelope
across turns.
Body
application/jsontext/jsonapplication/*+json
Request body for POST /api/v1/chats — opens a new stateful chat session bound to
the named agent on the named channel. The server owns the conversation transcript from
this point forward; the client only needs to keep the returned session id between turns.
Channel name the session lives on (web, twilio_sms, …). Together with
DashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against
already-open sessions.
Channel-specific external identifier (e.g. for Twilio SMS, { "from": "+1…", "to":
"+1…", "provider_id": "…" }). Server hashes the canonical form into
ExternalIdHash for the partial unique index that prevents two active sessions
from sharing the same endpoint.
Initial additional_data bag merged into agent prompt template variables. Server
overwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,
DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.
Show child attributes
Response
Session created. The returned id is the only piece the client needs to remember.
Public projection of a chat session — what callers see via GET /api/v1/chats/{id}
and the list endpoint. Deliberately omits the orchestration State blob, the
ExternalIdHash, and the worker hot-flags; those are server-internal.
Reason for finalisation (ttl, user_end, agent_finish, …).
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/open-a-new-chat-session","slug":"/docs/api-reference/chats/open-a-new-chat-session","pageMetadata":{"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","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: [\"Mints a server-side session bound to the named agent on the named channel. The agent is\\nfrozen for the session’s lifetime. \", _jsx(_components.code, {\n children: \"external_id\"\n }), \" 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.\"]\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`,strong:`strong`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`sessions-vs-completions`,children:`Sessions vs. completions`}),`\n`,_jsxs(_components.p,{children:[`Stateful sessions (`,_jsx(_components.code,{children:`/api/v1/chats`}),`) are the `,_jsx(_components.strong,{children:`server-owned`}),` counterpart of the stateless\n`,_jsx(_components.code,{children:`/api/v1/text-chat/completion`}),` endpoint. Use sessions when the transport itself is asynchronous\n(SMS, persistent web chat) and the client cannot reliably carry the encrypted state envelope\nacross turns.`]})]})}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":"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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Sessions vs. completions","slug":"sessions-vs-completions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Chats"],"summary":"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.","requestBody":"b94d8ec3-e0b2-4c08-90c3-eaea09e457d3","responses":{"201":"d8f9a2a1-41f0-490a-983c-860570fe9aa4","400":"6ee5d57d-9c7e-4fb4-9488-67be17d2f024","401":"8fd4d3d0-5b4f-4ed5-9d66-425d7eada503","409":"fb3b9b2b-f647-4147-8670-7d68334490a6"},"x-mint":{"content":"## Sessions vs. completions\n\nStateful sessions (`/api/v1/chats`) are the **server-owned** counterpart of the stateless\n`/api/v1/text-chat/completion` endpoint. Use sessions when the transport itself is asynchronous\n(SMS, persistent web chat) and the client cannot reliably carry the encrypted state envelope\nacross turns."},"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","baseUrlOptions":["https://blackbox.dasha.ai"],"title":"Open a new chat session.","codeSamples":[],"requestExampleLanguages":["javascript","bash","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/chats` — opens a new stateful chat session bound to\nthe named agent on the named channel. The server owns the conversation transcript from\nthis point forward; the client only needs to keep the returned session id between turns.","properties":{"agent_id":{"oneOf":[{"type":"string","description":"Identifier of the agent that will drive this session. Frozen at open — a session is\nbound to one agent for its entire lifetime.","uniqueKey":"agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the agent that will drive this session. Frozen at open — a session is\nbound to one agent for its entire lifetime.","uniqueKey":"agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_id","typeLabel":"string | null"},"channel":{"oneOf":[{"type":"string","description":"Channel name the session lives on (`web`, `twilio_sms`, …). Together with\nDashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against\nalready-open sessions.","uniqueKey":"channel.oneOf.0","typeLabel":"string"},{"type":"null","description":"Channel name the session lives on (`web`, `twilio_sms`, …). Together with\nDashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against\nalready-open sessions.","uniqueKey":"channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"channel","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"external_id.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Channel-specific external identifier (e.g. for Twilio SMS, \u003cc>{ \"from\": \"+1…\", \"to\":\n\"+1…\", \"provider_id\": \"…\" }\u003c/c>). Server hashes the canonical form into\n`ExternalIdHash` for the partial unique index that prevents two active sessions\nfrom sharing the same endpoint.","uniqueKey":"external_id.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"external_id.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Channel-specific external identifier (e.g. for Twilio SMS, \u003cc>{ \"from\": \"+1…\", \"to\":\n\"+1…\", \"provider_id\": \"…\" }\u003c/c>). Server hashes the canonical form into\n`ExternalIdHash` for the partial unique index that prevents two active sessions\nfrom sharing the same endpoint.","uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_id","typeLabel":"object | null"},"ttl_seconds":{"oneOf":[{"type":"integer","description":"Per-session inactivity timeout in seconds (60–86400). When set, the TTL sweeper\nfinishes the session once `LastActivity + TtlSeconds \u003c now()`.","format":"int32","uniqueKey":"ttl_seconds.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Per-session inactivity timeout in seconds (60–86400). When set, the TTL sweeper\nfinishes the session once `LastActivity + TtlSeconds \u003c now()`.","format":"int32","uniqueKey":"ttl_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"ttl_seconds","typeLabel":"integer\u003cint32> | null"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Initial `additional_data` bag merged into agent prompt template variables. Server\noverwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,\nDashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.","uniqueKey":"additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Initial `additional_data` bag merged into agent prompt template variables. Server\noverwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,\nDashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.","uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent_id":"\u003cstring>","channel":"\u003cstring>","external_id":{},"ttl_seconds":123,"additional_data":{}}}},"exampleType":"generated"},"text/json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/chats` — opens a new stateful chat session bound to\nthe named agent on the named channel. The server owns the conversation transcript from\nthis point forward; the client only needs to keep the returned session id between turns.","properties":{"agent_id":{"oneOf":[{"type":"string","description":"Identifier of the agent that will drive this session. Frozen at open — a session is\nbound to one agent for its entire lifetime.","uniqueKey":"agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the agent that will drive this session. Frozen at open — a session is\nbound to one agent for its entire lifetime.","uniqueKey":"agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_id","typeLabel":"string | null"},"channel":{"oneOf":[{"type":"string","description":"Channel name the session lives on (`web`, `twilio_sms`, …). Together with\nDashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against\nalready-open sessions.","uniqueKey":"channel.oneOf.0","typeLabel":"string"},{"type":"null","description":"Channel name the session lives on (`web`, `twilio_sms`, …). Together with\nDashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against\nalready-open sessions.","uniqueKey":"channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"channel","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"external_id.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Channel-specific external identifier (e.g. for Twilio SMS, \u003cc>{ \"from\": \"+1…\", \"to\":\n\"+1…\", \"provider_id\": \"…\" }\u003c/c>). Server hashes the canonical form into\n`ExternalIdHash` for the partial unique index that prevents two active sessions\nfrom sharing the same endpoint.","uniqueKey":"external_id.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"external_id.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Channel-specific external identifier (e.g. for Twilio SMS, \u003cc>{ \"from\": \"+1…\", \"to\":\n\"+1…\", \"provider_id\": \"…\" }\u003c/c>). Server hashes the canonical form into\n`ExternalIdHash` for the partial unique index that prevents two active sessions\nfrom sharing the same endpoint.","uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_id","typeLabel":"object | null"},"ttl_seconds":{"oneOf":[{"type":"integer","description":"Per-session inactivity timeout in seconds (60–86400). When set, the TTL sweeper\nfinishes the session once `LastActivity + TtlSeconds \u003c now()`.","format":"int32","uniqueKey":"ttl_seconds.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Per-session inactivity timeout in seconds (60–86400). When set, the TTL sweeper\nfinishes the session once `LastActivity + TtlSeconds \u003c now()`.","format":"int32","uniqueKey":"ttl_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"ttl_seconds","typeLabel":"integer\u003cint32> | null"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Initial `additional_data` bag merged into agent prompt template variables. Server\noverwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,\nDashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.","uniqueKey":"additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Initial `additional_data` bag merged into agent prompt template variables. Server\noverwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,\nDashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.","uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent_id":"\u003cstring>","channel":"\u003cstring>","external_id":{},"ttl_seconds":123,"additional_data":{}}}},"exampleType":"generated"},"application/*+json":{"schema":{"type":"object","description":"Request body for `POST /api/v1/chats` — opens a new stateful chat session bound to\nthe named agent on the named channel. The server owns the conversation transcript from\nthis point forward; the client only needs to keep the returned session id between turns.","properties":{"agent_id":{"oneOf":[{"type":"string","description":"Identifier of the agent that will drive this session. Frozen at open — a session is\nbound to one agent for its entire lifetime.","uniqueKey":"agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identifier of the agent that will drive this session. Frozen at open — a session is\nbound to one agent for its entire lifetime.","uniqueKey":"agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_id","typeLabel":"string | null"},"channel":{"oneOf":[{"type":"string","description":"Channel name the session lives on (`web`, `twilio_sms`, …). Together with\nDashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against\nalready-open sessions.","uniqueKey":"channel.oneOf.0","typeLabel":"string"},{"type":"null","description":"Channel name the session lives on (`web`, `twilio_sms`, …). Together with\nDashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.OpenChatRequest.ExternalIdRaw identifies the external endpoint and dedupes against\nalready-open sessions.","uniqueKey":"channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"channel","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"external_id.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Channel-specific external identifier (e.g. for Twilio SMS, \u003cc>{ \"from\": \"+1…\", \"to\":\n\"+1…\", \"provider_id\": \"…\" }\u003c/c>). Server hashes the canonical form into\n`ExternalIdHash` for the partial unique index that prevents two active sessions\nfrom sharing the same endpoint.","uniqueKey":"external_id.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"external_id.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Channel-specific external identifier (e.g. for Twilio SMS, \u003cc>{ \"from\": \"+1…\", \"to\":\n\"+1…\", \"provider_id\": \"…\" }\u003c/c>). Server hashes the canonical form into\n`ExternalIdHash` for the partial unique index that prevents two active sessions\nfrom sharing the same endpoint.","uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_id","typeLabel":"object | null"},"ttl_seconds":{"oneOf":[{"type":"integer","description":"Per-session inactivity timeout in seconds (60–86400). When set, the TTL sweeper\nfinishes the session once `LastActivity + TtlSeconds \u003c now()`.","format":"int32","uniqueKey":"ttl_seconds.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Per-session inactivity timeout in seconds (60–86400). When set, the TTL sweeper\nfinishes the session once `LastActivity + TtlSeconds \u003c now()`.","format":"int32","uniqueKey":"ttl_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"ttl_seconds","typeLabel":"integer\u003cint32> | null"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Initial `additional_data` bag merged into agent prompt template variables. Server\noverwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,\nDashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.","uniqueKey":"additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{}],"uniqueKey":"additional_data.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Initial `additional_data` bag merged into agent prompt template variables. Server\noverwrites the reserved keys (DashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.Channel,\nDashaAI.BlackBox.AgentAPI.TextChat.ChatReservedKeys.SipEndpoint) before each LLM call.","uniqueKey":"additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"additional_data","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent_id":"\u003cstring>","channel":"\u003cstring>","external_id":{},"ttl_seconds":123,"additional_data":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"d8f9a2a1-41f0-490a-983c-860570fe9aa4":{"description":"Session created. The returned id is the only piece the client needs to remember.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Session identifier.","format":"uuid","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"agent_id":{"oneOf":[{"type":"string","description":"Agent driving this session. Frozen at open.","uniqueKey":"agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Agent driving this session. Frozen at open.","uniqueKey":"agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_id","typeLabel":"string | null"},"channel":{"oneOf":[{"type":"string","description":"Channel name (`web`, `twilio_sms`, …).","uniqueKey":"channel.oneOf.0","typeLabel":"string"},{"type":"null","description":"Channel name (`web`, `twilio_sms`, …).","uniqueKey":"channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"channel","typeLabel":"string | null"},"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":"Full conversation transcript so far, in send order.","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":"Full conversation transcript so far, in send order.","uniqueKey":"messages.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages","typeLabel":"object[] | null"},"created_time":{"type":"string","description":"Session creation timestamp (UTC).","format":"date-time","uniqueKey":"created_time","typeLabel":"string\u003cdate-time>"},"last_activity":{"type":"string","description":"Most recent activity timestamp (inbound, outbound or assistant turn).","format":"date-time","uniqueKey":"last_activity","typeLabel":"string\u003cdate-time>"},"ttl_seconds":{"oneOf":[{"type":"integer","description":"Inactivity timeout in seconds; null when no TTL applies.","format":"int32","uniqueKey":"ttl_seconds.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Inactivity timeout in seconds; null when no TTL applies.","format":"int32","uniqueKey":"ttl_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"ttl_seconds","typeLabel":"integer\u003cint32> | null"},"is_final":{"type":"boolean","description":"True once the session has terminated.","uniqueKey":"is_final","typeLabel":"boolean"},"status":{"oneOf":[{"type":"string","description":"Status mirror of DashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.ChatSessionDto.IsFinal for list-endpoint filtering (`active` /\n`final`).","uniqueKey":"status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Status mirror of DashaAI.BlackBox.AgentAPI.TextChat.Dtos.Chats.ChatSessionDto.IsFinal for list-endpoint filtering (`active` /\n`final`).","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"string | null"},"final_reason":{"oneOf":[{"type":"string","description":"Reason for finalisation (`ttl`, `user_end`, `agent_finish`, …).","uniqueKey":"final_reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Reason for finalisation (`ttl`, `user_end`, `agent_finish`, …).","uniqueKey":"final_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"final_reason","typeLabel":"string | null"}},"additionalProperties":false,"description":"Public projection of a chat session — what callers see via `GET /api/v1/chats/{id}`\nand the list endpoint. Deliberately omits the orchestration `State` blob, the\n`ExternalIdHash`, and the worker hot-flags; those are server-internal.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","agent_id":"\u003cstring>","channel":"\u003cstring>","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}}],"created_time":"2023-11-07T05:31:56Z","last_activity":"2023-11-07T05:31:56Z","ttl_seconds":123,"is_final":true,"status":"\u003cstring>","final_reason":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"6ee5d57d-9c7e-4fb4-9488-67be17d2f024":{"description":"Request failed validation (missing agent_id / channel, out-of-range ttl_seconds, …).","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"},"8fd4d3d0-5b4f-4ed5-9d66-425d7eada503":{"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"},"fb3b9b2b-f647-4147-8670-7d68334490a6":{"description":"A non-final session already exists for this channel + external_id.","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":"Open a new chat session. - Dasha BlackBox Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T09:27:34.544Z","originalFileLocation":"docs/api-reference/chats/open-a-new-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=\"Mints a server-side session bound to the named agent on the named channel. The agent is frozen for the session\u0026#x27;s lifetime. external_id is optional but recommended for channel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate open-session requests for the same external endpoint via a partial unique index.\">\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=\"Open a new chat session. - Dasha BlackBox Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Mints a server-side session bound to the named agent on the named channel. The agent is frozen for the session\u0026#x27;s lifetime. external_id is optional but recommended for channel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate open-session requests for the same external endpoint via a partial unique index.\">\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/open-a-new-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=Open+a+new+chat+session.\u0026amp;description=Mints+a+server-side+session+bound+to+the+named+agent+on+the+named+channel.+The+agent+is%0Afrozen+for+the+session%27s+lifetime.+%60external_id%60+is+optional+but+recomme\u0026amp;theme=8f648b54f3a39a57bca8af12\u0026amp;signature=294151e055af48a59bea1ad38a825d8471379a321061edf237063cf71dae25d0\">\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=\"Open a new chat session. - Dasha BlackBox Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Mints a server-side session bound to the named agent on the named channel. The agent is frozen for the session\u0026#x27;s lifetime. external_id is optional but recommended for channel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate open-session requests for the same external endpoint via a partial unique index.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dasha-628f9d33.mintlify.site/_mintlify/api/og/v2?division=Chats\u0026amp;title=Open+a+new+chat+session.\u0026amp;description=Mints+a+server-side+session+bound+to+the+named+agent+on+the+named+channel.+The+agent+is%0Afrozen+for+the+session%27s+lifetime.+%60external_id%60+is+optional+but+recomme\u0026amp;theme=8f648b54f3a39a57bca8af12\u0026amp;signature=294151e055af48a59bea1ad38a825d8471379a321061edf237063cf71dae25d0\">\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/open-a-new-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/open-a-new-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/open-a-new-chat-session#webpage\",\"url\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-chat-session\",\"name\":\"Open a new chat session.\",\"description\":\"Mints a server-side session bound to the named agent on the named channel. The agent is frozen for the session's lifetime. external_id is optional but recommended for channel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate open-session requests for the same external endpoint via a partial unique index.\",\"dateModified\":\"2026-11-04T09:27:34.544Z\",\"isPartOf\":{\"@id\":\"https://blackbox.dasha.ai#website\"},\"breadcrumb\":{\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-chat-session#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-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\":\"Open a new chat session.\",\"item\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-chat-session\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-chat-session#apireference\",\"headline\":\"Open a new chat session.\",\"name\":\"Open a new chat session.\",\"description\":\"Mints a server-side session bound to the named agent on the named channel. The agent is frozen for the session's lifetime. external_id is optional but recommended for channel-driven sessions (SMS, web widget) — it lets the server dedupe duplicate open-session requests for the same external endpoint via a partial unique index.\",\"url\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-chat-session\",\"mainEntityOfPage\":{\"@id\":\"https://blackbox.dasha.ai/docs/api-reference/chats/open-a-new-chat-session#webpage\"},\"dateModified\":\"2026-11-04T09:27:34.544Z\",\"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/open-a-new-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.","description":"Ordered by `last_activity` descending. Default filter is `state=active` —\npass `state=final` or `state=all` to broaden. `updated_after` is useful\nfor incremental sync.","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.","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.","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"},{"title":"Retrieve a chat session — full transcript and lifecycle status.","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":"Open a new 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"]}