End datetime (inclusive) for filtering calls by creation date. If no time component is present, this defaults to the end of the day (11:59:59.999999 PM).
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Ultravox Docs","colors":{"primary":"#5E92FF","light":"#FBFBFB","dark":"#5E92FF"},"logo":{"light":"https://mintcdn.com/fixie-ff99b187/cH2M6xBt2fvtSCh3/images/UV%20Logo%20Horizontal%20Black.svg?fit=max\u0026auto=format\u0026n=cH2M6xBt2fvtSCh3\u0026q=85\u0026s=5eccb0a0c1b64983c2047f655e60aceb","dark":"https://mintcdn.com/fixie-ff99b187/cH2M6xBt2fvtSCh3/images/UV%20Logo%20Horizontal%20White.svg?fit=max\u0026auto=format\u0026n=cH2M6xBt2fvtSCh3\u0026q=85\u0026s=18734dbcb147cdb1bcfd5349f4c0f2dd"},"favicon":"https://mintcdn.com/fixie-ff99b187/cH2M6xBt2fvtSCh3/favicon.svg?fit=max\u0026auto=format\u0026n=cH2M6xBt2fvtSCh3\u0026q=85\u0026s=ff1442c06ee968ef7f32ce37590ca6a6","api":{"openapi":"https://api.ultravox.ai/api/schema/","playground":{"display":"interactive"},"mdx":{"auth":{"method":"key","name":"X-API-Key"},"server":"https://api.ultravox.ai/api/"}},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://discord.gg/62X253zeWB","label":"Community"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.ultravox.ai?utm_source=docs"}},"footer":{"socials":{"discord":"https://discord.gg/62X253zeWB","github":"https://github.com/fixie-ai/ultravox","x":"https://x.com/fixieai"}},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Inter"}},"integrations":{"gtm":{"tagId":"GTM-NC5RGFMZ"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fixie-ff99b187","hasAudioNarration":false,"actualSubdomain":"fixie-ff99b187","customDomains":["docs.ultravox.ai"],"gitSource":{"type":"github","owner":"fixie-ai","repo":"ultradox","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8c3a3ca78e468455a880f","collectionId":"a0ca3813-92df-4974-a7e1-746551e66b53","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8c3a3ca78e468455a880f"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae966442f6c2da55b92238b","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":107},{"language":"default","tag":"Documentation","count":62},{"language":"default","tag":"Telephony","count":27},{"language":"default","tag":"Tools","count":22},{"language":"default","tag":"Calls, Messages, Stages","count":18},{"language":"default","tag":"Getting Started","count":16},{"language":"default","tag":"Corpora, Query, Sources","count":15},{"language":"default","tag":"Agents","count":14},{"language":"default","tag":"Voices","count":11},{"language":"default","tag":"Webhooks","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a{color:#005e99;text-decoration:none;transition:color .2s ease-in-out}a:hover,dark a{color:#7cc8ec}.dark a:hover{color:#0077be}"}],"page":{"pagePath":"api-reference/calls/calls-list","slug":"/api-reference/calls/calls-list","pageMetadata":{"openapi":"get /api/calls","title":"List Calls","description":"Returns details for all calls","href":"/api-reference/calls/calls-list"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Returns details for all calls\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"get /api/calls","title":"List Calls","description":"Returns details for all calls","href":"/api-reference/calls/calls-list"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"calls_list","parameters":["a3ac69c4-cc00-461a-a293-76648d9b6082","23377d9a-a3a0-4775-a079-7ab7c97504f0","0418a39a-60a2-4e80-a475-0cd913e14519","45040d32-b582-4bc5-b8a6-db8482aa245c","b1e34d86-63bf-4f57-a4fb-ec9260ab5192","d52d60c6-c597-4bac-959e-52440c790f85","045ed644-16ac-40c2-9afe-7de1722d2364","45b20894-e2bf-4a6d-815e-6ee70fee7fef","4a8def4a-aea4-44bc-a36e-11173f3a6a0d","9c3975e5-65f2-447d-b893-ca8bbcf79dee","bcd201b3-1822-42b4-92ee-4fba5ed626cd","27f0e818-46d6-4de9-901f-bc438b4817cc","4f0b7fb5-0da0-4d51-bf66-dd4123b6ceaa"],"tags":["calls"],"security":["b9130bdf-117c-4010-87a3-34020d9b8b71"],"responses":{"200":"23dce1d0-2b12-422f-b7ff-8a92ff203e94"},"method":"get","type":"path","servers":["11525385-b17b-43b1-b750-a37b9a2eabf8"],"path":"/api/calls","baseUrlOptions":["https://api.ultravox.ai"],"title":"","description":"Returns details for all calls","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a3ac69c4-cc00-461a-a293-76648d9b6082":{"in":"query","name":"agentIds","schema":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Filter calls by the agent IDs.","uniqueKey":"","typeLabel":"string\u003cuuid>[]"},"description":"Filter calls by the agent IDs."},"23377d9a-a3a0-4775-a079-7ab7c97504f0":{"name":"cursor","required":false,"in":"query","description":"The pagination cursor value.","schema":{"type":"string","isRequired":false,"description":"The pagination cursor value.","uniqueKey":"","typeLabel":"string"}},"0418a39a-60a2-4e80-a475-0cd913e14519":{"in":"query","name":"durationMax","schema":{"type":"string","description":"Maximum duration of calls","uniqueKey":"","typeLabel":"string"},"description":"Maximum duration of calls"},"45040d32-b582-4bc5-b8a6-db8482aa245c":{"in":"query","name":"durationMin","schema":{"type":"string","description":"Minimum duration of calls","uniqueKey":"","typeLabel":"string"},"description":"Minimum duration of calls"},"b1e34d86-63bf-4f57-a4fb-ec9260ab5192":{"in":"query","name":"fromDate","schema":{"type":"string","format":"date-time","description":"Start datetime (inclusive) for filtering calls by creation date. If no time component is present, this defaults to the start of the day (midnight).","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"description":"Start datetime (inclusive) for filtering calls by creation date. If no time component is present, this defaults to the start of the day (midnight)."},"d52d60c6-c597-4bac-959e-52440c790f85":{"in":"query","name":"metadata","schema":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"additionalProperties","typeLabel":"string"},"description":"Filter calls by metadata. Use metadata.key=value to filter by specific key-value pairs.","uniqueKey":"","typeLabel":"object"},"description":"Filter calls by metadata. Use metadata.key=value to filter by specific key-value pairs."},"045ed644-16ac-40c2-9afe-7de1722d2364":{"name":"pageSize","required":false,"in":"query","description":"Number of results to return per page.","schema":{"type":"integer","isRequired":false,"description":"Number of results to return per page.","uniqueKey":"","typeLabel":"integer"}},"45b20894-e2bf-4a6d-815e-6ee70fee7fef":{"in":"query","name":"search","schema":{"type":"string","minLength":1,"description":"The search string used to filter results","uniqueKey":"","typeLabel":"string"},"description":"The search string used to filter results"},"4a8def4a-aea4-44bc-a36e-11173f3a6a0d":{"name":"sort","required":false,"in":"query","description":"Which field to use when ordering the results.","schema":{"type":"string","isRequired":false,"description":"Which field to use when ordering the results.","uniqueKey":"","typeLabel":"string"}},"9c3975e5-65f2-447d-b893-ca8bbcf79dee":{"in":"query","name":"timeOfDayEnd","schema":{"type":"string","format":"time","default":"23:59:59.999999","description":"Filter calls by the time of day of their creation, regardless of date. Format: HH:MM:SS. Defaults to 23:59:59 if not specified.","uniqueKey":"","typeLabel":"string\u003ctime>"},"description":"Filter calls by the time of day of their creation, regardless of date. Format: HH:MM:SS. Defaults to 23:59:59 if not specified."},"bcd201b3-1822-42b4-92ee-4fba5ed626cd":{"in":"query","name":"timeOfDayStart","schema":{"type":"string","format":"time","default":"00:00:00","description":"Filter calls by the time of day of their creation, regardless of date. Format: HH:MM:SS. Defaults to 00:00:00 if not specified.","uniqueKey":"","typeLabel":"string\u003ctime>"},"description":"Filter calls by the time of day of their creation, regardless of date. Format: HH:MM:SS. Defaults to 00:00:00 if not specified."},"27f0e818-46d6-4de9-901f-bc438b4817cc":{"in":"query","name":"toDate","schema":{"type":"string","format":"date-time","description":"End datetime (inclusive) for filtering calls by creation date. If no time component is present, this defaults to the end of the day (11:59:59.999999 PM).","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"description":"End datetime (inclusive) for filtering calls by creation date. If no time component is present, this defaults to the end of the day (11:59:59.999999 PM)."},"4f0b7fb5-0da0-4d51-bf66-dd4123b6ceaa":{"in":"query","name":"voiceId","schema":{"type":"string","format":"uuid","description":"Filter calls by the associated voice ID","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Filter calls by the associated voice ID"}},"responses":{"23dce1d0-2b12-422f-b7ff-8a92ff203e94":{"content":{"application/json":{"schema":{"type":"object","required":["results"],"properties":{"results":{"type":"array","items":{"type":"object","properties":{"callId":{"type":"string","format":"uuid","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].callId","typeLabel":"string\u003cuuid>"},"clientVersion":{"oneOf":[{"type":"string","readOnly":true,"description":"The version of the client that joined this call.","isRequired":true,"uniqueKey":"results.items.[INDEX].clientVersion.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"description":"The version of the client that joined this call.","isRequired":true,"uniqueKey":"results.items.[INDEX].clientVersion.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].clientVersion","typeLabel":"string | null"},"created":{"type":"string","format":"date-time","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].created","typeLabel":"string\u003cdate-time>"},"joined":{"oneOf":[{"type":"string","format":"date-time","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].joined.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].joined.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].joined","typeLabel":"string\u003cdate-time> | null"},"ended":{"oneOf":[{"type":"string","format":"date-time","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].ended.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].ended.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].ended","typeLabel":"string\u003cdate-time> | null"},"endReason":{"oneOf":[{"type":"string","description":"The reason the call ended.\n\n* `unjoined` - Client never joined\n* `hangup` - Client hung up\n* `agent_hangup` - Agent hung up\n* `timeout` - Call timed out\n* `connection_error` - Connection error\n* `system_error` - System error","enum":["unjoined","hangup","agent_hangup","timeout","connection_error","system_error"],"isRequired":true,"uniqueKey":"results.items.[INDEX].endReason.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The reason the call ended.\n\n* `unjoined` - Client never joined\n* `hangup` - Client hung up\n* `agent_hangup` - Agent hung up\n* `timeout` - Call timed out\n* `connection_error` - Connection error\n* `system_error` - System error","enum":[null],"isRequired":true,"uniqueKey":"results.items.[INDEX].endReason.oneOf.1","typeLabel":"any"},{"type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].endReason.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].endReason","typeLabel":"enum\u003cstring> | any | null"},"billedDuration":{"oneOf":[{"type":"string","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].billedDuration.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].billedDuration.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].billedDuration","typeLabel":"string | null"},"billedSideInputTokens":{"oneOf":[{"type":"integer","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].billedSideInputTokens.oneOf.0","typeLabel":"integer"},{"type":"null","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].billedSideInputTokens.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].billedSideInputTokens","typeLabel":"integer | null"},"billedSideOutputTokens":{"oneOf":[{"type":"integer","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].billedSideOutputTokens.oneOf.0","typeLabel":"integer"},{"type":"null","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].billedSideOutputTokens.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].billedSideOutputTokens","typeLabel":"integer | null"},"billingStatus":{"type":"string","description":"* BILLING_STATUS_PENDING* - The call hasn't been billed yet, but will be in the future. This is the case for ongoing calls for example. (Note: Calls created before May 28, 2025 may have this status even if they were billed.)\n* BILLING_STATUS_FREE_CONSOLE* - The call was free because it was initiated on https://app.ultravox.ai.\n* BILLING_STATUS_FREE_ZERO_EFFECTIVE_DURATION* - The call was free because its effective duration was zero. (Note: There may still be a non-zero sip bill in this case.)\n* BILLING_STATUS_FREE_MINUTES* - The call was unbilled but counted against the account's free minutes. (Note: There may still be a non-zero sip bill in this case.)\n* BILLING_STATUS_FREE_SYSTEM_ERROR* - The call was free because it ended due to a system error.\n* BILLING_STATUS_FREE_OTHER* - The call is in an undocumented free billing state.\n* BILLING_STATUS_BILLED* - The call was billed. See billedDuration for the billed duration.\n* BILLING_STATUS_REFUNDED* - The call was billed but was later refunded.\n* BILLING_STATUS_UNSPECIFIED* - The call is in an unexpected billing state. Please contact support.","enum":["BILLING_STATUS_PENDING","BILLING_STATUS_FREE_CONSOLE","BILLING_STATUS_FREE_ZERO_EFFECTIVE_DURATION","BILLING_STATUS_FREE_MINUTES","BILLING_STATUS_FREE_SYSTEM_ERROR","BILLING_STATUS_FREE_OTHER","BILLING_STATUS_BILLED","BILLING_STATUS_REFUNDED","BILLING_STATUS_UNSPECIFIED"],"isRequired":true,"uniqueKey":"results.items.[INDEX].billingStatus","typeLabel":"enum\u003cstring>"},"firstSpeaker":{"type":"string","description":"Who was supposed to talk first when the call started. Typically set to FIRST_SPEAKER_USER for outgoing calls and left as the default (FIRST_SPEAKER_AGENT) otherwise.","enum":["FIRST_SPEAKER_AGENT","FIRST_SPEAKER_USER"],"deprecated":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].firstSpeaker","typeLabel":"enum\u003cstring>"},"firstSpeakerSettings":{"type":"object","description":"Settings for the initial message to get the call started.","properties":{"user":{"type":"object","description":"If set, the user should speak first.","properties":{"fallback":{"type":"object","description":"If set, the agent will start the conversation itself if the user doesn't start\n speaking within the given delay.","properties":{"delay":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"How long the agent should wait before starting the conversation itself.","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.user.fallback.delay","typeLabel":"string"},"text":{"type":"string","description":"A specific greeting the agent should say.","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.user.fallback.text","typeLabel":"string"},"prompt":{"type":"string","description":"A prompt for the agent to generate a greeting.","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.user.fallback.prompt","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].firstSpeakerSettings.user.fallback","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].firstSpeakerSettings.user","typeLabel":"object"},"agent":{"type":"object","description":"If set, the agent should speak first.","properties":{"uninterruptible":{"type":"boolean","description":"Whether the user should be prevented from interrupting the agent's first message.\n Defaults to false (meaning the agent is interruptible as usual).","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.agent.uninterruptible","typeLabel":"boolean"},"text":{"type":"string","description":"A specific greeting the agent should say.","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.agent.text","typeLabel":"string"},"prompt":{"type":"string","description":"A prompt for the agent to generate a greeting.","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.agent.prompt","typeLabel":"string"},"delay":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"If set, the agent will wait this long before starting its greeting. This may be useful\n for ensuring the user is ready.","uniqueKey":"results.items.[INDEX].firstSpeakerSettings.agent.delay","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].firstSpeakerSettings.agent","typeLabel":"object"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].firstSpeakerSettings","typeLabel":"object"},"initialOutputMedium":{"type":"string","description":"The medium used initially by the agent. May later be changed by the client.","enum":["MESSAGE_MEDIUM_VOICE","MESSAGE_MEDIUM_TEXT"],"isRequired":true,"uniqueKey":"results.items.[INDEX].initialOutputMedium","typeLabel":"enum\u003cstring>"},"mediumRestriction":{"oneOf":[{"type":"object","properties":{"allowedMediums":{"type":"array","items":{"enum":["MESSAGE_MEDIUM_VOICE","MESSAGE_MEDIUM_TEXT"],"type":"string","uniqueKey":"results.items.[INDEX].mediumRestriction.oneOf.0.allowedMediums.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"results.items.[INDEX].mediumRestriction.oneOf.0.allowedMediums","typeLabel":"enum\u003cstring>[]"}},"readOnly":true,"description":"The mediums the call may use for both user input and agent output. Null allows every medium.","isRequired":true,"uniqueKey":"results.items.[INDEX].mediumRestriction.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"allowedMediums":{"type":"array","items":{"enum":["MESSAGE_MEDIUM_VOICE","MESSAGE_MEDIUM_TEXT"],"type":"string"}}},"readOnly":true,"description":"The mediums the call may use for both user input and agent output. Null allows every medium.","isRequired":true,"uniqueKey":"results.items.[INDEX].mediumRestriction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].mediumRestriction","typeLabel":"object | null"},"joinUrl":{"oneOf":[{"type":"string","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].joinUrl.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].joinUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].joinUrl","typeLabel":"string | null"},"additionalModels":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].additionalModels.items.[INDEX]","typeLabel":"string"},"readOnly":true,"description":"Models, besides the call's own, that the call's threads may use.","isRequired":true,"uniqueKey":"results.items.[INDEX].additionalModels","typeLabel":"string[]"},"admissionPreference":{"oneOf":[{"type":"string","description":"The admission preference requested for the call, if any.\n\n* `priority` - Prioritize this call as much as possible\n* `lowest_cost` - Run this call as inexpensively as possible","enum":["priority","lowest_cost"],"isRequired":true,"uniqueKey":"results.items.[INDEX].admissionPreference.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The admission preference requested for the call, if any.\n\n* `priority` - Prioritize this call as much as possible\n* `lowest_cost` - Run this call as inexpensively as possible","enum":[null],"isRequired":true,"uniqueKey":"results.items.[INDEX].admissionPreference.oneOf.1","typeLabel":"any"},{"type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].admissionPreference.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].admissionPreference","typeLabel":"enum\u003cstring> | any | null"},"shortSummary":{"oneOf":[{"type":"string","readOnly":true,"description":"A short summary of the call.","isRequired":true,"uniqueKey":"results.items.[INDEX].shortSummary.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"description":"A short summary of the call.","isRequired":true,"uniqueKey":"results.items.[INDEX].shortSummary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].shortSummary","typeLabel":"string | null"},"summary":{"oneOf":[{"type":"string","readOnly":true,"description":"A summary of the call.","isRequired":true,"uniqueKey":"results.items.[INDEX].summary.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"description":"A summary of the call.","isRequired":true,"uniqueKey":"results.items.[INDEX].summary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].summary","typeLabel":"string | null"},"agent":{"type":"object","description":"The agent used for this call.","required":["agentId","name"],"properties":{"agentId":{"type":"string","format":"uuid","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].agent.agentId","typeLabel":"string\u003cuuid>"},"name":{"type":"string","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].agent.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].agent","typeLabel":"object"},"agentId":{"oneOf":[{"type":"string","readOnly":true,"description":"The ID of the agent used for this call.","isRequired":true,"uniqueKey":"results.items.[INDEX].agentId.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"description":"The ID of the agent used for this call.","isRequired":true,"uniqueKey":"results.items.[INDEX].agentId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].agentId","typeLabel":"string | null"},"experimentalSettings":{"description":"Experimental settings for the call.","isRequired":true,"uniqueKey":"results.items.[INDEX].experimentalSettings","typeLabel":"any"},"metadata":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].metadata.additionalProperties","typeLabel":"string"},"description":"Optional metadata key-value pairs to associate with the call. All values must be strings.","isRequired":true,"uniqueKey":"results.items.[INDEX].metadata","typeLabel":"object"},"initialState":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"results.items.[INDEX].initialState.additionalProperties","typeLabel":"any"},"description":"The initial state of the call which is readable/writable by tools.","isRequired":true,"uniqueKey":"results.items.[INDEX].initialState","typeLabel":"object"},"requestContext":{"oneOf":[{"isRequired":true}],"isRequired":true,"uniqueKey":"results.items.[INDEX].requestContext","typeLabel":"any"},"sipDetails":{"oneOf":[{"type":"object","description":"SIP details for the call, if applicable.","required":["billedDuration","terminationReason"],"properties":{"billedDuration":{"oneOf":[{"type":"string","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.billedDuration.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.billedDuration.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.billedDuration","typeLabel":"string | null"},"terminationReason":{"oneOf":[{"type":"string","enum":["SIP_TERMINATION_NORMAL","SIP_TERMINATION_INVALID_NUMBER","SIP_TERMINATION_TIMEOUT","SIP_TERMINATION_DESTINATION_UNAVAILABLE","SIP_TERMINATION_BUSY","SIP_TERMINATION_CANCELED","SIP_TERMINATION_REJECTED","SIP_TERMINATION_UNKNOWN"],"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.terminationReason.oneOf.0","typeLabel":"enum\u003cstring>"},{"enum":[null],"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.terminationReason.oneOf.1","typeLabel":"any"},{"type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.terminationReason.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0.terminationReason","typeLabel":"enum\u003cstring> | any | null"}},"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].sipDetails","typeLabel":"object | null"},"inactivityMessages":{"type":"array","items":{"type":"object","properties":{"duration":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"The duration after which the message should be spoken.","uniqueKey":"results.items.[INDEX].inactivityMessages.items.[INDEX].duration","typeLabel":"string"},"message":{"type":"string","description":"The message to speak.","uniqueKey":"results.items.[INDEX].inactivityMessages.items.[INDEX].message","typeLabel":"string"},"endBehavior":{"enum":["END_BEHAVIOR_UNSPECIFIED","END_BEHAVIOR_HANG_UP_SOFT","END_BEHAVIOR_HANG_UP_STRICT"],"type":"string","description":"The behavior to exhibit when the message is finished being spoken.","format":"enum","uniqueKey":"results.items.[INDEX].inactivityMessages.items.[INDEX].endBehavior","typeLabel":"enum\u003cstring>"}},"description":"A message the agent should say after some duration. The duration's meaning\n varies depending on the context.","uniqueKey":"results.items.[INDEX].inactivityMessages.items.[INDEX]","typeLabel":"object"},"description":"Messages spoken by the agent when the user is inactive for the specified duration. Durations are cumulative, so a message m > 1 with duration 30s will be spoken 30 seconds after message m-1.","uniqueKey":"results.items.[INDEX].inactivityMessages","typeLabel":"object[]"},"joinTimeout":{"type":"string","default":"30s","uniqueKey":"results.items.[INDEX].joinTimeout","typeLabel":"string"},"languageHint":{"oneOf":[{"type":"string","description":"BCP47 language code that may be used to guide speech recognition.","maxLength":16,"uniqueKey":"results.items.[INDEX].languageHint.oneOf.0","typeLabel":"string"},{"type":"null","description":"BCP47 language code that may be used to guide speech recognition.","maxLength":16,"uniqueKey":"results.items.[INDEX].languageHint.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].languageHint","typeLabel":"string | null"},"maxDuration":{"type":"string","default":"3600s","uniqueKey":"results.items.[INDEX].maxDuration","typeLabel":"string"},"medium":{"oneOf":[{"type":"object","description":"Details about a call's protocol. By default, calls occur over WebRTC using\n the Ultravox client SDK. Setting a different call medium will prepare the\n server for a call using a different protocol.\n At most one call medium may be set.","properties":{"webRtc":{"type":"object","description":"The call will use WebRTC with the Ultravox client SDK.\n This is the default.","properties":{"dataMessages":{"type":"object","description":"Controls which data messages are enabled for the call.","properties":{"pong":{"type":"boolean","description":"Responds to a ping message. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.pong","typeLabel":"boolean"},"state":{"type":"boolean","description":"Indicates that the agent state has changed. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.state","typeLabel":"boolean"},"transcript":{"type":"boolean","description":"Provides transcripts of the user and agent speech. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.transcript","typeLabel":"boolean"},"clientToolInvocation":{"type":"boolean","description":"Requests a client-implemented tool invocation. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.clientToolInvocation","typeLabel":"boolean"},"dataConnectionToolInvocation":{"type":"boolean","description":"Requests a data-connection-implemented tool invocation. (Default: enabled for data connections, disabled otherwise)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.dataConnectionToolInvocation","typeLabel":"boolean"},"playbackClearBuffer":{"type":"boolean","description":"Requests the client-side audio buffer to be cleared. (Default: enabled for websocket connections, disabled otherwise)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.playbackClearBuffer","typeLabel":"boolean"},"callStarted":{"type":"boolean","description":"Provides information about the call when it starts. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.callStarted","typeLabel":"boolean"},"debug":{"type":"boolean","description":"Communicates debug information. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.debug","typeLabel":"boolean"},"callEvent":{"type":"boolean","description":"Indicates that a call event has been recorded. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.callEvent","typeLabel":"boolean"},"toolUsed":{"type":"boolean","description":"Indicates that a tool was used. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.toolUsed","typeLabel":"boolean"},"userStartedSpeaking":{"type":"boolean","description":"Indicates that the user has started speaking (according to simple VAD). (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.userStartedSpeaking","typeLabel":"boolean"},"userStoppedSpeaking":{"type":"boolean","description":"Indicates that the user has stopped speaking (according to simple VAD). (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.userStoppedSpeaking","typeLabel":"boolean"},"invokingTool":{"type":"boolean","description":"Indicates that a tool invocation has started. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages.invokingTool","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc.dataMessages","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.webRtc","typeLabel":"object"},"twilio":{"type":"object","description":"The call will use Twilio's \"Media Streams\" protocol.\n Once you have a join URL from starting a call, include it in your\n TwiML like so:\n \u003cConnect>\u003cStream url=${your-join-url} />\u003c/Connect>\n This works for both inbound and outbound calls.","properties":{"outgoing":{"type":"object","description":"If set, Ultravox will directly create a call with Twilio. Twilio must be configured\n for the requesting account.","properties":{"to":{"type":"string","description":"The phone number, in E.164 format (e.g. +14155552671), (or sip address) to call.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.outgoing.to","typeLabel":"string"},"from":{"type":"string","description":"The phone number or client identifier to use as the caller id. If `to` is a phone\n number, `from` must be a phone number owned by your Twilio account.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.outgoing.from","typeLabel":"string"},"additionalParams":{"type":"object","description":"Additional parameters to include in the Twilio call creation request.\n See https://www.twilio.com/docs/voice/api/call-resource#request-body-parameters","uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.outgoing.additionalParams","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.outgoing","typeLabel":"object"},"dtmfHandling":{"type":"object","description":"Controls how DTMF digits received during the call are handled.","properties":{"ignore":{"type":"boolean","description":"If true, DTMF digits are ignored entirely.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.dtmfHandling.ignore","typeLabel":"boolean"},"userTextMessage":{"type":"object","description":"Customizes how DTMF digits are sent as a user text message.","properties":{"text":{"type":"string","description":"Template for the message text. Use {digits} as a placeholder for the\n pressed digits. Defaults to \"{digits}\" if empty.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.dtmfHandling.userTextMessage.text","typeLabel":"string"},"urgency":{"enum":["URGENCY_UNSPECIFIED","URGENCY_IMMEDIATE","URGENCY_SOON","URGENCY_LATER"],"type":"string","description":"Urgency of the message. Defaults to URGENCY_IMMEDIATE.","format":"enum","uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.dtmfHandling.userTextMessage.urgency","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.dtmfHandling.userTextMessage","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio.dtmfHandling","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.twilio","typeLabel":"object"},"serverWebSocket":{"type":"object","description":"The call will use a plain websocket connection. This option provides a simple way to\n connect your own server to an Ultravox inference instance. It is not recommended for\n direct use in browsers or mobile clients.\n WebSocket connections are expected to send continuous audio. In other words, Ultravox\n expects to receive one second of audio each second. Typically this should be sent as\n frequent small chunks (e.g. 20ms), though larger chunks are also acceptable.\n Sending too much (overflow) or too little (underflow) audio will result in warning-level\n call events. Excessive overflow will eventually be dropped while underflow may cause\n de-synchronized recordings.","properties":{"inputSampleRate":{"type":"integer","description":"The sample rate for input (user) audio. Required.","format":"int32","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.inputSampleRate","typeLabel":"integer\u003cint32>"},"outputSampleRate":{"type":"integer","description":"The desired sample rate for output (agent) audio. If unset, defaults to the input_sample_rate.","format":"int32","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.outputSampleRate","typeLabel":"integer\u003cint32>"},"clientBufferSizeMs":{"type":"integer","description":"The size of the client-side audio buffer in milliseconds. Smaller buffers allow for faster\n interruptions but may cause audio underflow if network latency fluctuates too greatly. For\n the best of both worlds, set this to some large value (e.g. 30000) and implement support for\n playback_clear_buffer messages. Defaults to 60.","format":"int32","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.clientBufferSizeMs","typeLabel":"integer\u003cint32>"},"dataMessages":{"type":"object","description":"Controls which data messages are enabled for the call.","properties":{"pong":{"type":"boolean","description":"Responds to a ping message. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.pong","typeLabel":"boolean"},"state":{"type":"boolean","description":"Indicates that the agent state has changed. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.state","typeLabel":"boolean"},"transcript":{"type":"boolean","description":"Provides transcripts of the user and agent speech. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.transcript","typeLabel":"boolean"},"clientToolInvocation":{"type":"boolean","description":"Requests a client-implemented tool invocation. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.clientToolInvocation","typeLabel":"boolean"},"dataConnectionToolInvocation":{"type":"boolean","description":"Requests a data-connection-implemented tool invocation. (Default: enabled for data connections, disabled otherwise)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.dataConnectionToolInvocation","typeLabel":"boolean"},"playbackClearBuffer":{"type":"boolean","description":"Requests the client-side audio buffer to be cleared. (Default: enabled for websocket connections, disabled otherwise)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.playbackClearBuffer","typeLabel":"boolean"},"callStarted":{"type":"boolean","description":"Provides information about the call when it starts. (Default: enabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.callStarted","typeLabel":"boolean"},"debug":{"type":"boolean","description":"Communicates debug information. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.debug","typeLabel":"boolean"},"callEvent":{"type":"boolean","description":"Indicates that a call event has been recorded. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.callEvent","typeLabel":"boolean"},"toolUsed":{"type":"boolean","description":"Indicates that a tool was used. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.toolUsed","typeLabel":"boolean"},"userStartedSpeaking":{"type":"boolean","description":"Indicates that the user has started speaking (according to simple VAD). (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.userStartedSpeaking","typeLabel":"boolean"},"userStoppedSpeaking":{"type":"boolean","description":"Indicates that the user has stopped speaking (according to simple VAD). (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.userStoppedSpeaking","typeLabel":"boolean"},"invokingTool":{"type":"boolean","description":"Indicates that a tool invocation has started. (Default: disabled)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages.invokingTool","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.dataMessages","typeLabel":"object"},"mediaIdleTimeout":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"Depending on your implementation, severe underflow from something further downstream from\n your server may result in audio no longer being delivered to Ultravox at all (despite\n heartbeats continuing). If media_idle_timeout is set and Ultravox stops receiving audio for\n longer than this duration, the call will be ended with a \"Connection error\" end reason.\n Values in the 30s to 60s range are recommended (and may become the default in the future).\n Values below 10s will be treated as 10s.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket.mediaIdleTimeout","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.serverWebSocket","typeLabel":"object"},"telnyx":{"type":"object","description":"The call will use Telnyx's media streaming protocol.\n Once you have a join URL from starting a call, include it in your\n TexML like so:\n \u003cConnect>\u003cStream url=${your-join-url} bidirectionalMode=\"rtp\" />\u003c/Connect>\n This works for both inbound and outbound calls.","properties":{"outgoing":{"type":"object","description":"If set, Ultravox will directly create a call with Telnyx. Telnyx must be configured\n for the requesting account.","properties":{"to":{"type":"string","description":"The phone number to call in E.164 format (e.g. +14155552671).","uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.outgoing.to","typeLabel":"string"},"from":{"type":"string","description":"The phone number initiating the call.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.outgoing.from","typeLabel":"string"},"additionalParams":{"type":"object","description":"Additional parameters to include in the Telnyx call creation request.\n See https://developers.telnyx.com/api/call-scripting/initiate-texml-call","uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.outgoing.additionalParams","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.outgoing","typeLabel":"object"},"dtmfHandling":{"type":"object","description":"Controls how DTMF digits received during the call are handled.","properties":{"ignore":{"type":"boolean","description":"If true, DTMF digits are ignored entirely.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.dtmfHandling.ignore","typeLabel":"boolean"},"userTextMessage":{"type":"object","description":"Customizes how DTMF digits are sent as a user text message.","properties":{"text":{"type":"string","description":"Template for the message text. Use {digits} as a placeholder for the\n pressed digits. Defaults to \"{digits}\" if empty.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.dtmfHandling.userTextMessage.text","typeLabel":"string"},"urgency":{"enum":["URGENCY_UNSPECIFIED","URGENCY_IMMEDIATE","URGENCY_SOON","URGENCY_LATER"],"type":"string","description":"Urgency of the message. Defaults to URGENCY_IMMEDIATE.","format":"enum","uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.dtmfHandling.userTextMessage.urgency","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.dtmfHandling.userTextMessage","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx.dtmfHandling","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.telnyx","typeLabel":"object"},"plivo":{"type":"object","description":"The call will use Plivo's AudioStreams protocol.\n Once you have a join URL from starting a call, include it in your\n Plivo XML like so:\n \u003cStream keepCallAlive=\"true\" bidirectional=\"true\" contentType=\"audio/x-l16;rate=16000\">${your-join-url}\u003c/Stream>\n This works for both inbound and outbound calls.","properties":{"outgoing":{"type":"object","description":"If set, Ultravox will directly create a call with Plivo. Plivo must be configured\n for the requesting account.","properties":{"to":{"type":"string","description":"The phone number(s) or sip URI(s) to call, separated by `\u003c` if multiple.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.outgoing.to","typeLabel":"string"},"from":{"type":"string","description":"The phone number initiating the call, in E.164 format (e.g. +14155552671).","uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.outgoing.from","typeLabel":"string"},"additionalParams":{"type":"object","description":"Additional parameters to include in the Plivo call creation request.\n See https://www.plivo.com/docs/voice/api/call/make-a-call","uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.outgoing.additionalParams","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.outgoing","typeLabel":"object"},"dtmfHandling":{"type":"object","description":"Controls how DTMF digits received during the call are handled.","properties":{"ignore":{"type":"boolean","description":"If true, DTMF digits are ignored entirely.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.dtmfHandling.ignore","typeLabel":"boolean"},"userTextMessage":{"type":"object","description":"Customizes how DTMF digits are sent as a user text message.","properties":{"text":{"type":"string","description":"Template for the message text. Use {digits} as a placeholder for the\n pressed digits. Defaults to \"{digits}\" if empty.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.dtmfHandling.userTextMessage.text","typeLabel":"string"},"urgency":{"enum":["URGENCY_UNSPECIFIED","URGENCY_IMMEDIATE","URGENCY_SOON","URGENCY_LATER"],"type":"string","description":"Urgency of the message. Defaults to URGENCY_IMMEDIATE.","format":"enum","uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.dtmfHandling.userTextMessage.urgency","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.dtmfHandling.userTextMessage","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo.dtmfHandling","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.plivo","typeLabel":"object"},"exotel":{"type":"object","description":"The call will use Exotel's \"Voicebot\" protocol.\n Once you have a join URL from starting a call, provide it to Exotel as the wss target URL\n for your Voicebot (either directly or more likely dynamically from your own server).","properties":{"dtmfHandling":{"type":"object","description":"Controls how DTMF digits received during the call are handled.","properties":{"ignore":{"type":"boolean","description":"If true, DTMF digits are ignored entirely.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.exotel.dtmfHandling.ignore","typeLabel":"boolean"},"userTextMessage":{"type":"object","description":"Customizes how DTMF digits are sent as a user text message.","properties":{"text":{"type":"string","description":"Template for the message text. Use {digits} as a placeholder for the\n pressed digits. Defaults to \"{digits}\" if empty.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.exotel.dtmfHandling.userTextMessage.text","typeLabel":"string"},"urgency":{"enum":["URGENCY_UNSPECIFIED","URGENCY_IMMEDIATE","URGENCY_SOON","URGENCY_LATER"],"type":"string","description":"Urgency of the message. Defaults to URGENCY_IMMEDIATE.","format":"enum","uniqueKey":"results.items.[INDEX].medium.oneOf.0.exotel.dtmfHandling.userTextMessage.urgency","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.exotel.dtmfHandling.userTextMessage","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.exotel.dtmfHandling","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.exotel","typeLabel":"object"},"sip":{"type":"object","description":"The call will be connected using Session Initiation Protocol (SIP). Note that SIP incurs\n additional charges and must be enabled for your account.","properties":{"incoming":{"type":"object","description":"Details for an incoming SIP call.","properties":{},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip.incoming","typeLabel":"object"},"outgoing":{"type":"object","description":"Details for an outgoing SIP call. Ultravox will initiate this call (and there will be no joinUrl).","properties":{"to":{"type":"string","description":"The SIP URI to connect to. (Phone numbers are not allowed.)","uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip.outgoing.to","typeLabel":"string"},"from":{"type":"string","description":"The SIP URI to connect from. This is the \"from\" field in the SIP INVITE.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip.outgoing.from","typeLabel":"string"},"username":{"type":"string","description":"The SIP username to use for authentication.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip.outgoing.username","typeLabel":"string"},"password":{"type":"string","description":"The password for the specified username.","uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip.outgoing.password","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip.outgoing","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0.sip","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].medium.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"results.items.[INDEX].medium.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].medium","typeLabel":"object | null"},"model":{"type":"string","default":"ultravox-v0.7","uniqueKey":"results.items.[INDEX].model","typeLabel":"string"},"recordingEnabled":{"type":"boolean","default":false,"uniqueKey":"results.items.[INDEX].recordingEnabled","typeLabel":"boolean"},"retentionPolicy":{"oneOf":[{"type":"string","description":"The retention policy for the call's data after it ends.\n\n* `retain` - Retain indefinitely\n* `auto_delete` - Auto-delete after billing\n* `zdr` - Zero data retention","enum":["retain","auto_delete","zdr"],"uniqueKey":"results.items.[INDEX].retentionPolicy.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The retention policy for the call's data after it ends.\n\n* `retain` - Retain indefinitely\n* `auto_delete` - Auto-delete after billing\n* `zdr` - Zero data retention","enum":[null],"uniqueKey":"results.items.[INDEX].retentionPolicy.oneOf.1","typeLabel":"any"},{"type":"null","uniqueKey":"results.items.[INDEX].retentionPolicy.oneOf.2","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].retentionPolicy","typeLabel":"enum\u003cstring> | any | null"},"systemPrompt":{"oneOf":[{"type":"string","uniqueKey":"results.items.[INDEX].systemPrompt.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"results.items.[INDEX].systemPrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].systemPrompt","typeLabel":"string | null"},"temperature":{"type":"number","format":"double","maximum":1,"minimum":0,"default":0,"uniqueKey":"results.items.[INDEX].temperature","typeLabel":"number\u003cdouble>"},"timeExceededMessage":{"oneOf":[{"type":"string","uniqueKey":"results.items.[INDEX].timeExceededMessage.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"results.items.[INDEX].timeExceededMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].timeExceededMessage","typeLabel":"string | null"},"voice":{"oneOf":[{"type":"string","uniqueKey":"results.items.[INDEX].voice.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"results.items.[INDEX].voice.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].voice","typeLabel":"string | null"},"externalVoice":{"type":"object","properties":{"elevenLabs":{"type":"object","description":"A voice served by ElevenLabs.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in ElevenLabs.","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The ElevenLabs model to use.","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.model","typeLabel":"string"},"speed":{"type":"number","description":"The speaking rate. Must be between 0.7 and 1.2. Defaults to 1.\n See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.speed","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.speed","typeLabel":"number\u003cfloat>"},"useSpeakerBoost":{"type":"boolean","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.use_speaker_boost","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.useSpeakerBoost","typeLabel":"boolean"},"style":{"type":"number","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.style","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.style","typeLabel":"number\u003cfloat>"},"similarityBoost":{"type":"number","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.similarity_boost","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.similarityBoost","typeLabel":"number\u003cfloat>"},"stability":{"type":"number","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.stability","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.stability","typeLabel":"number\u003cfloat>"},"pronunciationDictionaries":{"type":"array","items":{"type":"object","properties":{"dictionaryId":{"type":"string","description":"The dictionary's ID.","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.pronunciationDictionaries.items.[INDEX].dictionaryId","typeLabel":"string"},"versionId":{"type":"string","description":"The dictionary's version.","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.pronunciationDictionaries.items.[INDEX].versionId","typeLabel":"string"}},"description":"A reference to a pronunciation dictionary within ElevenLabs.","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.pronunciationDictionaries.items.[INDEX]","typeLabel":"object"},"description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.pronunciation_dictionary_locators","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.pronunciationDictionaries","typeLabel":"object[]"},"optimizeStreamingLatency":{"type":"integer","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.query.optimize_streaming_latency.optimize_streaming_latency","format":"int32","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.optimizeStreamingLatency","typeLabel":"integer\u003cint32>"},"maxSampleRate":{"type":"integer","description":"The maximum sample rate Ultravox will try to use. ElevenLabs limits your allowed sample rate\n based on your tier. See https://elevenlabs.io/pricing#pricing-table (and click \"Show API details\")","format":"int32","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.maxSampleRate","typeLabel":"integer\u003cint32>"},"enableSsmlParsing":{"type":"boolean","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/v-1-text-to-speech-voice-id-stream-input#request.query.enable_ssml_parsing","uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs.enableSsmlParsing","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].externalVoice.elevenLabs","typeLabel":"object"},"cartesia":{"type":"object","description":"A voice served by Cartesia.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in Cartesia.","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The Cartesia model to use.","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.model","typeLabel":"string"},"speed":{"type":"number","description":"(Deprecated) The speaking rate. Must be between -1 and 1. Defaults to 0.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.speed","typeLabel":"number\u003cfloat>"},"emotion":{"type":"string","description":"(Deprecated) Use generation_config.emotion instead.","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.emotion","typeLabel":"string"},"emotions":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.emotions.items.[INDEX]","typeLabel":"string"},"description":"(Deprecated) Use generation_config.emotion instead.","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.emotions","typeLabel":"string[]"},"generationConfig":{"type":"object","description":"Configure the various attributes of the generated speech.","properties":{"volume":{"type":"number","description":"Adjust the volume of the generated speech between 0.5x and 2.0x the original volume (default is 1.0x). Valid values are between [0.5, 2.0] inclusive.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.generationConfig.volume","typeLabel":"number\u003cfloat>"},"speed":{"type":"number","description":"Adjust the speed of the generated speech between 0.6x and 2.0x the original speed (default is 1.0x). Valid values are between [0.6, 1.5] inclusive.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.generationConfig.speed","typeLabel":"number\u003cfloat>"},"emotion":{"type":"string","description":"The primary emotions are neutral, calm, angry, content, sad, scared. For more options, see Prompting Sonic-3.","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.generationConfig.emotion","typeLabel":"string"},"pronunciationDictId":{"type":"string","description":"The ID of a pronunciation dictionary to use for the generation.\n Pronunciation dictionaries are supported by sonic-3 models and newer.\n See https://docs.cartesia.ai/build-with-cartesia/capability-guides/specify-custom-pronunciations","uniqueKey":"results.items.[INDEX].externalVoice.cartesia.generationConfig.pronunciationDictId","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].externalVoice.cartesia.generationConfig","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].externalVoice.cartesia","typeLabel":"object"},"lmnt":{"type":"object","description":"A voice served by LMNT.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in LMNT.","uniqueKey":"results.items.[INDEX].externalVoice.lmnt.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The LMNT model to use.","uniqueKey":"results.items.[INDEX].externalVoice.lmnt.model","typeLabel":"string"},"speed":{"type":"number","description":"The speaking rate. Must be between 0.25 and 2. Defaults to 1.\n See https://docs.lmnt.com/api-reference/speech/synthesize-speech-bytes#body-speed","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.lmnt.speed","typeLabel":"number\u003cfloat>"},"conversational":{"type":"boolean","description":"See https://docs.lmnt.com/api-reference/speech/synthesize-speech-bytes#body-conversational","uniqueKey":"results.items.[INDEX].externalVoice.lmnt.conversational","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].externalVoice.lmnt","typeLabel":"object"},"google":{"type":"object","description":"A voice served by Google, using bidirectional streaming.\n (For non-streaming or output-only streaming, use generic.)","properties":{"voiceId":{"type":"string","description":"The ID (name) of the voice in Google, e.g. \"en-US-Chirp3-HD-Charon\".","uniqueKey":"results.items.[INDEX].externalVoice.google.voiceId","typeLabel":"string"},"speakingRate":{"type":"number","description":"The speaking rate. Must be between 0.25 and 2. Defaults to 1.\n See https://cloud.google.com/python/docs/reference/texttospeech/latest/google.cloud.texttospeech_v1.types.StreamingAudioConfig","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.google.speakingRate","typeLabel":"number\u003cfloat>"}},"uniqueKey":"results.items.[INDEX].externalVoice.google","typeLabel":"object"},"inworld":{"type":"object","description":"A voice served by Inworld, using bidirectional streaming.\n (For non-streaming or output-only streaming, use generic.)","properties":{"voiceId":{"type":"string","description":"The ID of the voice in Inworld.","uniqueKey":"results.items.[INDEX].externalVoice.inworld.voiceId","typeLabel":"string"},"modelId":{"type":"string","description":"The ID of the model to use for generations, e.g. \"inworld-tts-2\".\n See https://docs.inworld.ai/docs/tts/tts-models","uniqueKey":"results.items.[INDEX].externalVoice.inworld.modelId","typeLabel":"string"},"speakingRate":{"type":"number","description":"The speaking rate. Must be between 0.5 and 1.5. Defaults to 1.\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-audio-config-speaking-rate","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.inworld.speakingRate","typeLabel":"number\u003cfloat>"},"temperature":{"type":"number","description":"How much randomness to use when sampling audio tokens. Must be between 0.0 and 2.0.\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-temperature","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.inworld.temperature","typeLabel":"number\u003cfloat>"},"applyTextNormalization":{"type":"boolean","description":"Whether or not to apply text normalization. This should typically only be disabled if the\n agent is instructed to normalize text directly.\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-apply-text-normalization.","uniqueKey":"results.items.[INDEX].externalVoice.inworld.applyTextNormalization","typeLabel":"boolean"},"deliveryMode":{"enum":["DELIVERY_MODE_UNSPECIFIED","DELIVERY_MODE_STABLE","DELIVERY_MODE_BALANCED","DELIVERY_MODE_CREATIVE"],"type":"string","description":"How to balance consistency and expressiveness in generated speech. Only used by\n inworld-tts-2 models (ignored for other models).\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-delivery-mode","format":"enum","uniqueKey":"results.items.[INDEX].externalVoice.inworld.deliveryMode","typeLabel":"enum\u003cstring>"},"pronunciationDictionaryIds":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].externalVoice.inworld.pronunciationDictionaryIds.items.[INDEX]","typeLabel":"string"},"description":"Full resource names of up to three unique Inworld pronunciation dictionaries,\n in priority order (first match wins):\n workspaces/{workspace}/pronunciationDictionaries/{dictionary}.\n Must be accessible with the voice's Inworld API key. Omit to use no dictionary.\n Requires an inworld-tts-2 model and a concrete language on the call; otherwise\n entries are ignored or the request is rejected.","uniqueKey":"results.items.[INDEX].externalVoice.inworld.pronunciationDictionaryIds","typeLabel":"string[]"}},"uniqueKey":"results.items.[INDEX].externalVoice.inworld","typeLabel":"object"},"respeecher":{"type":"object","description":"A voice served by Respeecher, using bidirectional streaming.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in Respeecher.","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The model to use, e.g. \"/v1/public/tts/ua-rt\" or \"/v1/public/tts/en-rt\"\n Requests will be sent to wss://api.respeecher.com{model}/tts/websocket.\n If not set, defaults to \"/v1/public/tts/en-rt\" for calls with an English\n language hint and \"/v1/public/tts/ua-rt\" otherwise.","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.model","typeLabel":"string"},"seed":{"type":"integer","description":"Random seed for reproducible generation.","format":"int32","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.seed","typeLabel":"integer\u003cint32>"},"temperature":{"type":"number","description":"Controls randomness of the output. Higher values produce more varied speech.\n If set, must be greater than or equal to 0.0.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.temperature","typeLabel":"number\u003cfloat>"},"topK":{"type":"integer","description":"Limits sampling to the top K most likely tokens.\n If set, must be exactly -1 or greater than 0.","format":"int32","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.topK","typeLabel":"integer\u003cint32>"},"topP":{"type":"number","description":"Limits sampling to tokens with cumulative probability up to this value.\n If set, must be greater than 0 and less than or equal to 1.0.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.topP","typeLabel":"number\u003cfloat>"},"minP":{"type":"number","description":"Minimum probability threshold for token sampling.\n If set, must be between 0.0 and 1.0, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.minP","typeLabel":"number\u003cfloat>"},"presencePenalty":{"type":"number","description":"Penalty for tokens already present in the context.\n If set, must be between 0 and 2, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.presencePenalty","typeLabel":"number\u003cfloat>"},"repetitionPenalty":{"type":"number","description":"Penalty for repeating tokens.\n If set, must be between 1 and 2, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.repetitionPenalty","typeLabel":"number\u003cfloat>"},"frequencyPenalty":{"type":"number","description":"Penalty based on token frequency.\n If set, must be between 0 and 2, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].externalVoice.respeecher.frequencyPenalty","typeLabel":"number\u003cfloat>"}},"uniqueKey":"results.items.[INDEX].externalVoice.respeecher","typeLabel":"object"},"generic":{"type":"object","description":"A voice served by a generic REST-based TTS API.","properties":{"url":{"type":"string","description":"The endpoint to which requests are sent.","uniqueKey":"results.items.[INDEX].externalVoice.generic.url","typeLabel":"string"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].externalVoice.generic.headers.additionalProperties","typeLabel":"string"},"description":"Headers to include in the request.","uniqueKey":"results.items.[INDEX].externalVoice.generic.headers","typeLabel":"object"},"body":{"type":"object","description":"The request body to send. Some field should include a placeholder for text\n represented as {text}. The placeholder will be replaced with the text to synthesize.","uniqueKey":"results.items.[INDEX].externalVoice.generic.body","typeLabel":"object"},"responseSampleRate":{"type":"integer","description":"The sample rate of the audio returned by the API.","format":"int32","uniqueKey":"results.items.[INDEX].externalVoice.generic.responseSampleRate","typeLabel":"integer\u003cint32>"},"responseWordsPerMinute":{"type":"integer","description":"An estimate of the speaking rate of the returned audio in words per minute. This is\n used for transcript timing while audio is streamed in the response. (Once the response\n is complete, Ultravox Realtime uses the real audio duration to adjust the timing.)\n Defaults to 150 and is unused for non-streaming responses.","format":"int32","uniqueKey":"results.items.[INDEX].externalVoice.generic.responseWordsPerMinute","typeLabel":"integer\u003cint32>"},"responseMimeType":{"type":"string","description":"The real mime type of the content returned by the API. If unset, the Content-Type response header\n will be used. This is useful for APIs whose response bodies don't strictly adhere to what the\n API claims via header. For example, if your API claims to return audio/wav but omits the WAV\n header (thus really returning raw PCM), set this to audio/l16. Similarly, if your API claims to\n return JSON but actually streams JSON Lines, set this to application/jsonl.","uniqueKey":"results.items.[INDEX].externalVoice.generic.responseMimeType","typeLabel":"string"},"jsonAudioFieldPath":{"type":"string","description":"For JSON responses, the path to the field containing base64-encoded audio data. The data must\n be PCM audio, optionally with a WAV header.","uniqueKey":"results.items.[INDEX].externalVoice.generic.jsonAudioFieldPath","typeLabel":"string"},"jsonByteEncoding":{"enum":["JSON_BYTE_ENCODING_UNSPECIFIED","JSON_BYTE_ENCODING_BASE64","JSON_BYTE_ENCODING_HEX"],"type":"string","description":"For JSON responses, how audio bytes are encoded into the json_audio_field_path string.\n Defaults to base64. Also supports hex.","format":"enum","uniqueKey":"results.items.[INDEX].externalVoice.generic.jsonByteEncoding","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].externalVoice.generic","typeLabel":"object"}},"description":"A voice not known to Ultravox Realtime that can nonetheless be used for a call.\n Such voices are significantly less validated than normal voices and you'll be\n responsible for your own TTS-related errors.\n Exactly one field must be set.","uniqueKey":"results.items.[INDEX].externalVoice","typeLabel":"object"},"voiceOverrides":{"type":"object","description":"Overrides for the selected voice.","properties":{"elevenLabs":{"type":"object","description":"A voice served by ElevenLabs.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in ElevenLabs.","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The ElevenLabs model to use.","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.model","typeLabel":"string"},"speed":{"type":"number","description":"The speaking rate. Must be between 0.7 and 1.2. Defaults to 1.\n See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.speed","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.speed","typeLabel":"number\u003cfloat>"},"useSpeakerBoost":{"type":"boolean","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.use_speaker_boost","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.useSpeakerBoost","typeLabel":"boolean"},"style":{"type":"number","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.style","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.style","typeLabel":"number\u003cfloat>"},"similarityBoost":{"type":"number","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.similarity_boost","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.similarityBoost","typeLabel":"number\u003cfloat>"},"stability":{"type":"number","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.voice_settings.stability","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.stability","typeLabel":"number\u003cfloat>"},"pronunciationDictionaries":{"type":"array","items":{"type":"object","properties":{"dictionaryId":{"type":"string","description":"The dictionary's ID.","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.pronunciationDictionaries.items.[INDEX].dictionaryId","typeLabel":"string"},"versionId":{"type":"string","description":"The dictionary's version.","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.pronunciationDictionaries.items.[INDEX].versionId","typeLabel":"string"}},"description":"A reference to a pronunciation dictionary within ElevenLabs.","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.pronunciationDictionaries.items.[INDEX]","typeLabel":"object"},"description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.body.pronunciation_dictionary_locators","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.pronunciationDictionaries","typeLabel":"object[]"},"optimizeStreamingLatency":{"type":"integer","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/convert#request.query.optimize_streaming_latency.optimize_streaming_latency","format":"int32","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.optimizeStreamingLatency","typeLabel":"integer\u003cint32>"},"maxSampleRate":{"type":"integer","description":"The maximum sample rate Ultravox will try to use. ElevenLabs limits your allowed sample rate\n based on your tier. See https://elevenlabs.io/pricing#pricing-table (and click \"Show API details\")","format":"int32","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.maxSampleRate","typeLabel":"integer\u003cint32>"},"enableSsmlParsing":{"type":"boolean","description":"See https://elevenlabs.io/docs/api-reference/text-to-speech/v-1-text-to-speech-voice-id-stream-input#request.query.enable_ssml_parsing","uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs.enableSsmlParsing","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.elevenLabs","typeLabel":"object"},"cartesia":{"type":"object","description":"A voice served by Cartesia.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in Cartesia.","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The Cartesia model to use.","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.model","typeLabel":"string"},"speed":{"type":"number","description":"(Deprecated) The speaking rate. Must be between -1 and 1. Defaults to 0.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.speed","typeLabel":"number\u003cfloat>"},"emotion":{"type":"string","description":"(Deprecated) Use generation_config.emotion instead.","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.emotion","typeLabel":"string"},"emotions":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.emotions.items.[INDEX]","typeLabel":"string"},"description":"(Deprecated) Use generation_config.emotion instead.","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.emotions","typeLabel":"string[]"},"generationConfig":{"type":"object","description":"Configure the various attributes of the generated speech.","properties":{"volume":{"type":"number","description":"Adjust the volume of the generated speech between 0.5x and 2.0x the original volume (default is 1.0x). Valid values are between [0.5, 2.0] inclusive.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.generationConfig.volume","typeLabel":"number\u003cfloat>"},"speed":{"type":"number","description":"Adjust the speed of the generated speech between 0.6x and 2.0x the original speed (default is 1.0x). Valid values are between [0.6, 1.5] inclusive.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.generationConfig.speed","typeLabel":"number\u003cfloat>"},"emotion":{"type":"string","description":"The primary emotions are neutral, calm, angry, content, sad, scared. For more options, see Prompting Sonic-3.","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.generationConfig.emotion","typeLabel":"string"},"pronunciationDictId":{"type":"string","description":"The ID of a pronunciation dictionary to use for the generation.\n Pronunciation dictionaries are supported by sonic-3 models and newer.\n See https://docs.cartesia.ai/build-with-cartesia/capability-guides/specify-custom-pronunciations","uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.generationConfig.pronunciationDictId","typeLabel":"string"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia.generationConfig","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.cartesia","typeLabel":"object"},"lmnt":{"type":"object","description":"A voice served by LMNT.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in LMNT.","uniqueKey":"results.items.[INDEX].voiceOverrides.lmnt.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The LMNT model to use.","uniqueKey":"results.items.[INDEX].voiceOverrides.lmnt.model","typeLabel":"string"},"speed":{"type":"number","description":"The speaking rate. Must be between 0.25 and 2. Defaults to 1.\n See https://docs.lmnt.com/api-reference/speech/synthesize-speech-bytes#body-speed","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.lmnt.speed","typeLabel":"number\u003cfloat>"},"conversational":{"type":"boolean","description":"See https://docs.lmnt.com/api-reference/speech/synthesize-speech-bytes#body-conversational","uniqueKey":"results.items.[INDEX].voiceOverrides.lmnt.conversational","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.lmnt","typeLabel":"object"},"google":{"type":"object","description":"A voice served by Google, using bidirectional streaming.\n (For non-streaming or output-only streaming, use generic.)","properties":{"voiceId":{"type":"string","description":"The ID (name) of the voice in Google, e.g. \"en-US-Chirp3-HD-Charon\".","uniqueKey":"results.items.[INDEX].voiceOverrides.google.voiceId","typeLabel":"string"},"speakingRate":{"type":"number","description":"The speaking rate. Must be between 0.25 and 2. Defaults to 1.\n See https://cloud.google.com/python/docs/reference/texttospeech/latest/google.cloud.texttospeech_v1.types.StreamingAudioConfig","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.google.speakingRate","typeLabel":"number\u003cfloat>"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.google","typeLabel":"object"},"inworld":{"type":"object","description":"A voice served by Inworld, using bidirectional streaming.\n (For non-streaming or output-only streaming, use generic.)","properties":{"voiceId":{"type":"string","description":"The ID of the voice in Inworld.","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.voiceId","typeLabel":"string"},"modelId":{"type":"string","description":"The ID of the model to use for generations, e.g. \"inworld-tts-2\".\n See https://docs.inworld.ai/docs/tts/tts-models","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.modelId","typeLabel":"string"},"speakingRate":{"type":"number","description":"The speaking rate. Must be between 0.5 and 1.5. Defaults to 1.\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-audio-config-speaking-rate","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.speakingRate","typeLabel":"number\u003cfloat>"},"temperature":{"type":"number","description":"How much randomness to use when sampling audio tokens. Must be between 0.0 and 2.0.\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-temperature","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.temperature","typeLabel":"number\u003cfloat>"},"applyTextNormalization":{"type":"boolean","description":"Whether or not to apply text normalization. This should typically only be disabled if the\n agent is instructed to normalize text directly.\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-apply-text-normalization.","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.applyTextNormalization","typeLabel":"boolean"},"deliveryMode":{"enum":["DELIVERY_MODE_UNSPECIFIED","DELIVERY_MODE_STABLE","DELIVERY_MODE_BALANCED","DELIVERY_MODE_CREATIVE"],"type":"string","description":"How to balance consistency and expressiveness in generated speech. Only used by\n inworld-tts-2 models (ignored for other models).\n See https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream#body-delivery-mode","format":"enum","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.deliveryMode","typeLabel":"enum\u003cstring>"},"pronunciationDictionaryIds":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.pronunciationDictionaryIds.items.[INDEX]","typeLabel":"string"},"description":"Full resource names of up to three unique Inworld pronunciation dictionaries,\n in priority order (first match wins):\n workspaces/{workspace}/pronunciationDictionaries/{dictionary}.\n Must be accessible with the voice's Inworld API key. Omit to use no dictionary.\n Requires an inworld-tts-2 model and a concrete language on the call; otherwise\n entries are ignored or the request is rejected.","uniqueKey":"results.items.[INDEX].voiceOverrides.inworld.pronunciationDictionaryIds","typeLabel":"string[]"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.inworld","typeLabel":"object"},"respeecher":{"type":"object","description":"A voice served by Respeecher, using bidirectional streaming.","properties":{"voiceId":{"type":"string","description":"The ID of the voice in Respeecher.","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.voiceId","typeLabel":"string"},"model":{"type":"string","description":"The model to use, e.g. \"/v1/public/tts/ua-rt\" or \"/v1/public/tts/en-rt\"\n Requests will be sent to wss://api.respeecher.com{model}/tts/websocket.\n If not set, defaults to \"/v1/public/tts/en-rt\" for calls with an English\n language hint and \"/v1/public/tts/ua-rt\" otherwise.","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.model","typeLabel":"string"},"seed":{"type":"integer","description":"Random seed for reproducible generation.","format":"int32","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.seed","typeLabel":"integer\u003cint32>"},"temperature":{"type":"number","description":"Controls randomness of the output. Higher values produce more varied speech.\n If set, must be greater than or equal to 0.0.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.temperature","typeLabel":"number\u003cfloat>"},"topK":{"type":"integer","description":"Limits sampling to the top K most likely tokens.\n If set, must be exactly -1 or greater than 0.","format":"int32","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.topK","typeLabel":"integer\u003cint32>"},"topP":{"type":"number","description":"Limits sampling to tokens with cumulative probability up to this value.\n If set, must be greater than 0 and less than or equal to 1.0.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.topP","typeLabel":"number\u003cfloat>"},"minP":{"type":"number","description":"Minimum probability threshold for token sampling.\n If set, must be between 0.0 and 1.0, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.minP","typeLabel":"number\u003cfloat>"},"presencePenalty":{"type":"number","description":"Penalty for tokens already present in the context.\n If set, must be between 0 and 2, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.presencePenalty","typeLabel":"number\u003cfloat>"},"repetitionPenalty":{"type":"number","description":"Penalty for repeating tokens.\n If set, must be between 1 and 2, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.repetitionPenalty","typeLabel":"number\u003cfloat>"},"frequencyPenalty":{"type":"number","description":"Penalty based on token frequency.\n If set, must be between 0 and 2, inclusive.","format":"float","uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher.frequencyPenalty","typeLabel":"number\u003cfloat>"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.respeecher","typeLabel":"object"},"generic":{"type":"object","description":"A voice served by a generic REST-based TTS API.","properties":{"url":{"type":"string","description":"The endpoint to which requests are sent.","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.url","typeLabel":"string"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.headers.additionalProperties","typeLabel":"string"},"description":"Headers to include in the request.","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.headers","typeLabel":"object"},"body":{"type":"object","description":"The request body to send. Some field should include a placeholder for text\n represented as {text}. The placeholder will be replaced with the text to synthesize.","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.body","typeLabel":"object"},"responseSampleRate":{"type":"integer","description":"The sample rate of the audio returned by the API.","format":"int32","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.responseSampleRate","typeLabel":"integer\u003cint32>"},"responseWordsPerMinute":{"type":"integer","description":"An estimate of the speaking rate of the returned audio in words per minute. This is\n used for transcript timing while audio is streamed in the response. (Once the response\n is complete, Ultravox Realtime uses the real audio duration to adjust the timing.)\n Defaults to 150 and is unused for non-streaming responses.","format":"int32","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.responseWordsPerMinute","typeLabel":"integer\u003cint32>"},"responseMimeType":{"type":"string","description":"The real mime type of the content returned by the API. If unset, the Content-Type response header\n will be used. This is useful for APIs whose response bodies don't strictly adhere to what the\n API claims via header. For example, if your API claims to return audio/wav but omits the WAV\n header (thus really returning raw PCM), set this to audio/l16. Similarly, if your API claims to\n return JSON but actually streams JSON Lines, set this to application/jsonl.","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.responseMimeType","typeLabel":"string"},"jsonAudioFieldPath":{"type":"string","description":"For JSON responses, the path to the field containing base64-encoded audio data. The data must\n be PCM audio, optionally with a WAV header.","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.jsonAudioFieldPath","typeLabel":"string"},"jsonByteEncoding":{"enum":["JSON_BYTE_ENCODING_UNSPECIFIED","JSON_BYTE_ENCODING_BASE64","JSON_BYTE_ENCODING_HEX"],"type":"string","description":"For JSON responses, how audio bytes are encoded into the json_audio_field_path string.\n Defaults to base64. Also supports hex.","format":"enum","uniqueKey":"results.items.[INDEX].voiceOverrides.generic.jsonByteEncoding","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].voiceOverrides.generic","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].voiceOverrides","typeLabel":"object"},"transcriptOptional":{"type":"boolean","default":true,"description":"Indicates whether a transcript is optional for the call.","deprecated":true,"uniqueKey":"results.items.[INDEX].transcriptOptional","typeLabel":"boolean"},"vadSettings":{"oneOf":[{"type":"object","description":"VAD settings for the call.","properties":{"turnEndpointDelay":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"The minimum amount of time the agent will wait to respond after the user seems to be done\n speaking. Increasing this value will make the agent less eager to respond, which may increase\n perceived response latency but will also make the agent less likely to jump in before the user\n is really done speaking.\n\n Built-in VAD currently operates on 32ms frames, so only multiples of 32ms are meaningful.\n (Anything from 1ms to 31ms will produce the same result.)\n\n Defaults to \"0.384s\" (384ms) as a starting point, but there's nothing special about this value\n aside from it corresponding to 12 VAD frames.","uniqueKey":"results.items.[INDEX].vadSettings.oneOf.0.turnEndpointDelay","typeLabel":"string"},"minimumTurnDuration":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"The minimum duration of user speech required to be considered a user turn.\n Increasing this value will cause the agent to ignore short user audio. This may be useful in\n particularly noisy environments, but it comes at the cost of possibly ignoring very short\n user responses such as \"yes\" or \"no\".\n\n Defaults to \"0s\" meaning the agent considers all user audio inputs (that make it through\n built-in noise cancellation).","uniqueKey":"results.items.[INDEX].vadSettings.oneOf.0.minimumTurnDuration","typeLabel":"string"},"minimumInterruptionDuration":{"pattern":"^-?(?:0|[1-9][0-9]{0,11})(?:\\.[0-9]{1,9})?s$","type":"string","description":"The minimum duration of user speech required to interrupt the agent. This works the same way\n as minimumTurnDuration, but allows for a higher threshold for interrupting the agent. (This\n value will be ignored if it is less than minimumTurnDuration.)\n\n Defaults to \"0.09s\" (90ms) as a starting point, but there's nothing special about this value.","uniqueKey":"results.items.[INDEX].vadSettings.oneOf.0.minimumInterruptionDuration","typeLabel":"string"},"frameActivationThreshold":{"type":"number","description":"The threshold for the VAD to consider a frame as speech. This is a value between 0.1 and 1.\n\n Miniumum value is 0.1, which is the default value.","format":"float","uniqueKey":"results.items.[INDEX].vadSettings.oneOf.0.frameActivationThreshold","typeLabel":"number\u003cfloat>"}},"uniqueKey":"results.items.[INDEX].vadSettings.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"results.items.[INDEX].vadSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].vadSettings","typeLabel":"object | null"},"dataConnectionConfig":{"type":"object","description":"Settings for exchanging data messages with an additional participant.","properties":{"websocketUrl":{"type":"string","description":"The websocket URL to which the session will connect to stream data messages.","uniqueKey":"results.items.[INDEX].dataConnectionConfig.websocketUrl","typeLabel":"string"},"audioConfig":{"type":"object","description":"Audio configuration for the data connection. If not set, no audio will be sent.","properties":{"sampleRate":{"type":"integer","description":"The sample rate of the audio stream. If not set, will default to 16000.","format":"int32","uniqueKey":"results.items.[INDEX].dataConnectionConfig.audioConfig.sampleRate","typeLabel":"integer\u003cint32>"},"channelMode":{"enum":["CHANNEL_MODE_UNSPECIFIED","CHANNEL_MODE_MIXED","CHANNEL_MODE_SEPARATED"],"type":"string","description":"The audio channel mode to use. CHANNEL_MODE_MIXED will combine user and agent audio\n into a single mono output while CHANNEL_MODE_SEPARATED will result in stereo audio\n where user and agent are separated. The latter is the default.","format":"enum","uniqueKey":"results.items.[INDEX].dataConnectionConfig.audioConfig.channelMode","typeLabel":"enum\u003cstring>"}},"uniqueKey":"results.items.[INDEX].dataConnectionConfig.audioConfig","typeLabel":"object"},"dataMessages":{"type":"object","description":"Controls which data messages are enabled for the data connection.","properties":{"pong":{"type":"boolean","description":"Responds to a ping message. (Default: enabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.pong","typeLabel":"boolean"},"state":{"type":"boolean","description":"Indicates that the agent state has changed. (Default: enabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.state","typeLabel":"boolean"},"transcript":{"type":"boolean","description":"Provides transcripts of the user and agent speech. (Default: enabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.transcript","typeLabel":"boolean"},"clientToolInvocation":{"type":"boolean","description":"Requests a client-implemented tool invocation. (Default: enabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.clientToolInvocation","typeLabel":"boolean"},"dataConnectionToolInvocation":{"type":"boolean","description":"Requests a data-connection-implemented tool invocation. (Default: enabled for data connections, disabled otherwise)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.dataConnectionToolInvocation","typeLabel":"boolean"},"playbackClearBuffer":{"type":"boolean","description":"Requests the client-side audio buffer to be cleared. (Default: enabled for websocket connections, disabled otherwise)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.playbackClearBuffer","typeLabel":"boolean"},"callStarted":{"type":"boolean","description":"Provides information about the call when it starts. (Default: enabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.callStarted","typeLabel":"boolean"},"debug":{"type":"boolean","description":"Communicates debug information. (Default: disabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.debug","typeLabel":"boolean"},"callEvent":{"type":"boolean","description":"Indicates that a call event has been recorded. (Default: disabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.callEvent","typeLabel":"boolean"},"toolUsed":{"type":"boolean","description":"Indicates that a tool was used. (Default: disabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.toolUsed","typeLabel":"boolean"},"userStartedSpeaking":{"type":"boolean","description":"Indicates that the user has started speaking (according to simple VAD). (Default: disabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.userStartedSpeaking","typeLabel":"boolean"},"userStoppedSpeaking":{"type":"boolean","description":"Indicates that the user has stopped speaking (according to simple VAD). (Default: disabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.userStoppedSpeaking","typeLabel":"boolean"},"invokingTool":{"type":"boolean","description":"Indicates that a tool invocation has started. (Default: disabled)","uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages.invokingTool","typeLabel":"boolean"}},"uniqueKey":"results.items.[INDEX].dataConnectionConfig.dataMessages","typeLabel":"object"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"results.items.[INDEX].dataConnectionConfig.headers.additionalProperties","typeLabel":"string"},"description":"Additional headers to include when connecting to the websocket endpoint.","uniqueKey":"results.items.[INDEX].dataConnectionConfig.headers","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].dataConnectionConfig","typeLabel":"object"},"callbacks":{"type":"object","description":"Callbacks configuration for the call.","properties":{"joined":{"type":"object","description":"Callback invoked when the call is joined.","properties":{"url":{"type":"string","description":"The URL to invoke.","uniqueKey":"results.items.[INDEX].callbacks.joined.url","typeLabel":"string"},"secrets":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].callbacks.joined.secrets.items.[INDEX]","typeLabel":"string"},"description":"Secrets to use to signing the callback request.","uniqueKey":"results.items.[INDEX].callbacks.joined.secrets","typeLabel":"string[]"}},"uniqueKey":"results.items.[INDEX].callbacks.joined","typeLabel":"object"},"ended":{"type":"object","description":"Callback invoked when the call has ended.","properties":{"url":{"type":"string","description":"The URL to invoke.","uniqueKey":"results.items.[INDEX].callbacks.ended.url","typeLabel":"string"},"secrets":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].callbacks.ended.secrets.items.[INDEX]","typeLabel":"string"},"description":"Secrets to use to signing the callback request.","uniqueKey":"results.items.[INDEX].callbacks.ended.secrets","typeLabel":"string[]"}},"uniqueKey":"results.items.[INDEX].callbacks.ended","typeLabel":"object"},"billed":{"type":"object","description":"Callback invoked when the call is billed.","properties":{"url":{"type":"string","description":"The URL to invoke.","uniqueKey":"results.items.[INDEX].callbacks.billed.url","typeLabel":"string"},"secrets":{"type":"array","items":{"type":"string","uniqueKey":"results.items.[INDEX].callbacks.billed.secrets.items.[INDEX]","typeLabel":"string"},"description":"Secrets to use to signing the callback request.","uniqueKey":"results.items.[INDEX].callbacks.billed.secrets","typeLabel":"string[]"}},"uniqueKey":"results.items.[INDEX].callbacks.billed","typeLabel":"object"}},"uniqueKey":"results.items.[INDEX].callbacks","typeLabel":"object"},"backgroundAudio":{"oneOf":[{"type":"object","description":"Background audio played behind the agent's voice during the call.","properties":{"audioClip":{"type":"string","description":"The name or ID of the audio clip to play.","uniqueKey":"results.items.[INDEX].backgroundAudio.oneOf.0.audioClip","typeLabel":"string"},"volume":{"type":"number","description":"The volume of the background audio relative to the agent's voice, between\n 0 and 10. Defaults to 0.3.","format":"float","uniqueKey":"results.items.[INDEX].backgroundAudio.oneOf.0.volume","typeLabel":"number\u003cfloat>"}},"uniqueKey":"results.items.[INDEX].backgroundAudio.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"results.items.[INDEX].backgroundAudio.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].backgroundAudio","typeLabel":"object | null"}},"required":["additionalModels","admissionPreference","agent","agentId","billedDuration","billedSideInputTokens","billedSideOutputTokens","billingStatus","callId","clientVersion","created","endReason","ended","experimentalSettings","firstSpeaker","firstSpeakerSettings","initialOutputMedium","initialState","joinUrl","joined","mediumRestriction","metadata","requestContext","shortSummary","sipDetails","summary"],"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results","typeLabel":"object[]"},"next":{"oneOf":[{"type":"string","format":"uri","example":"http://api.example.org/accounts/?cursor=cD00ODY%3D\"","uniqueKey":"next.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","example":"http://api.example.org/accounts/?cursor=cD00ODY%3D\"","uniqueKey":"next.oneOf.1","typeLabel":"null"}],"uniqueKey":"next","typeLabel":"string\u003curi> | null"},"previous":{"oneOf":[{"type":"string","format":"uri","example":"http://api.example.org/accounts/?cursor=cj0xJnA9NDg3","uniqueKey":"previous.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","example":"http://api.example.org/accounts/?cursor=cj0xJnA9NDg3","uniqueKey":"previous.oneOf.1","typeLabel":"null"}],"uniqueKey":"previous","typeLabel":"string\u003curi> | null"},"total":{"type":"integer","example":123,"uniqueKey":"total","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"results":[{"callId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","clientVersion":"\u003cstring>","created":"2023-11-07T05:31:56Z","joined":"2023-11-07T05:31:56Z","ended":"2023-11-07T05:31:56Z","endReason":"unjoined","billedDuration":"\u003cstring>","billedSideInputTokens":123,"billedSideOutputTokens":123,"billingStatus":"BILLING_STATUS_PENDING","firstSpeaker":"FIRST_SPEAKER_AGENT","firstSpeakerSettings":{"user":{"fallback":{"delay":"\u003cstring>","text":"\u003cstring>","prompt":"\u003cstring>"}},"agent":{"uninterruptible":true,"text":"\u003cstring>","prompt":"\u003cstring>","delay":"\u003cstring>"}},"initialOutputMedium":"MESSAGE_MEDIUM_VOICE","mediumRestriction":{"allowedMediums":["MESSAGE_MEDIUM_VOICE"]},"joinUrl":"\u003cstring>","additionalModels":["\u003cstring>"],"admissionPreference":"priority","shortSummary":"\u003cstring>","summary":"\u003cstring>","agent":{"agentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>"},"agentId":"\u003cstring>","experimentalSettings":"\u003cunknown>","metadata":{},"initialState":{},"requestContext":"\u003cunknown>","sipDetails":{"billedDuration":"\u003cstring>","terminationReason":"SIP_TERMINATION_NORMAL"},"inactivityMessages":[{"duration":"\u003cstring>","message":"\u003cstring>","endBehavior":"END_BEHAVIOR_UNSPECIFIED"}],"joinTimeout":"30s","languageHint":"\u003cstring>","maxDuration":"3600s","medium":{"webRtc":{"dataMessages":{"pong":true,"state":true,"transcript":true,"clientToolInvocation":true,"dataConnectionToolInvocation":true,"playbackClearBuffer":true,"callStarted":true,"debug":true,"callEvent":true,"toolUsed":true,"userStartedSpeaking":true,"userStoppedSpeaking":true,"invokingTool":true}},"twilio":{"outgoing":{"to":"\u003cstring>","from":"\u003cstring>","additionalParams":{}},"dtmfHandling":{"ignore":true,"userTextMessage":{"text":"\u003cstring>","urgency":"URGENCY_UNSPECIFIED"}}},"serverWebSocket":{"inputSampleRate":123,"outputSampleRate":123,"clientBufferSizeMs":123,"dataMessages":{"pong":true,"state":true,"transcript":true,"clientToolInvocation":true,"dataConnectionToolInvocation":true,"playbackClearBuffer":true,"callStarted":true,"debug":true,"callEvent":true,"toolUsed":true,"userStartedSpeaking":true,"userStoppedSpeaking":true,"invokingTool":true},"mediaIdleTimeout":"\u003cstring>"},"telnyx":{"outgoing":{"to":"\u003cstring>","from":"\u003cstring>","additionalParams":{}},"dtmfHandling":{"ignore":true,"userTextMessage":{"text":"\u003cstring>","urgency":"URGENCY_UNSPECIFIED"}}},"plivo":{"outgoing":{"to":"\u003cstring>","from":"\u003cstring>","additionalParams":{}},"dtmfHandling":{"ignore":true,"userTextMessage":{"text":"\u003cstring>","urgency":"URGENCY_UNSPECIFIED"}}},"exotel":{"dtmfHandling":{"ignore":true,"userTextMessage":{"text":"\u003cstring>","urgency":"URGENCY_UNSPECIFIED"}}},"sip":{"incoming":{},"outgoing":{"to":"\u003cstring>","from":"\u003cstring>","username":"\u003cstring>","password":"\u003cstring>"}}},"model":"ultravox-v0.7","recordingEnabled":false,"retentionPolicy":"retain","systemPrompt":"\u003cstring>","temperature":0,"timeExceededMessage":"\u003cstring>","voice":"\u003cstring>","externalVoice":{"elevenLabs":{"voiceId":"\u003cstring>","model":"\u003cstring>","speed":123,"useSpeakerBoost":true,"style":123,"similarityBoost":123,"stability":123,"pronunciationDictionaries":[{"dictionaryId":"\u003cstring>","versionId":"\u003cstring>"}],"optimizeStreamingLatency":123,"maxSampleRate":123,"enableSsmlParsing":true},"cartesia":{"voiceId":"\u003cstring>","model":"\u003cstring>","speed":123,"emotion":"\u003cstring>","emotions":["\u003cstring>"],"generationConfig":{"volume":123,"speed":123,"emotion":"\u003cstring>","pronunciationDictId":"\u003cstring>"}},"lmnt":{"voiceId":"\u003cstring>","model":"\u003cstring>","speed":123,"conversational":true},"google":{"voiceId":"\u003cstring>","speakingRate":123},"inworld":{"voiceId":"\u003cstring>","modelId":"\u003cstring>","speakingRate":123,"temperature":123,"applyTextNormalization":true,"deliveryMode":"DELIVERY_MODE_UNSPECIFIED","pronunciationDictionaryIds":["\u003cstring>"]},"respeecher":{"voiceId":"\u003cstring>","model":"\u003cstring>","seed":123,"temperature":123,"topK":123,"topP":123,"minP":123,"presencePenalty":123,"repetitionPenalty":123,"frequencyPenalty":123},"generic":{"url":"\u003cstring>","headers":{},"body":{},"responseSampleRate":123,"responseWordsPerMinute":123,"responseMimeType":"\u003cstring>","jsonAudioFieldPath":"\u003cstring>","jsonByteEncoding":"JSON_BYTE_ENCODING_UNSPECIFIED"}},"voiceOverrides":{"elevenLabs":{"voiceId":"\u003cstring>","model":"\u003cstring>","speed":123,"useSpeakerBoost":true,"style":123,"similarityBoost":123,"stability":123,"pronunciationDictionaries":[{"dictionaryId":"\u003cstring>","versionId":"\u003cstring>"}],"optimizeStreamingLatency":123,"maxSampleRate":123,"enableSsmlParsing":true},"cartesia":{"voiceId":"\u003cstring>","model":"\u003cstring>","speed":123,"emotion":"\u003cstring>","emotions":["\u003cstring>"],"generationConfig":{"volume":123,"speed":123,"emotion":"\u003cstring>","pronunciationDictId":"\u003cstring>"}},"lmnt":{"voiceId":"\u003cstring>","model":"\u003cstring>","speed":123,"conversational":true},"google":{"voiceId":"\u003cstring>","speakingRate":123},"inworld":{"voiceId":"\u003cstring>","modelId":"\u003cstring>","speakingRate":123,"temperature":123,"applyTextNormalization":true,"deliveryMode":"DELIVERY_MODE_UNSPECIFIED","pronunciationDictionaryIds":["\u003cstring>"]},"respeecher":{"voiceId":"\u003cstring>","model":"\u003cstring>","seed":123,"temperature":123,"topK":123,"topP":123,"minP":123,"presencePenalty":123,"repetitionPenalty":123,"frequencyPenalty":123},"generic":{"url":"\u003cstring>","headers":{},"body":{},"responseSampleRate":123,"responseWordsPerMinute":123,"responseMimeType":"\u003cstring>","jsonAudioFieldPath":"\u003cstring>","jsonByteEncoding":"JSON_BYTE_ENCODING_UNSPECIFIED"}},"transcriptOptional":true,"vadSettings":{"turnEndpointDelay":"\u003cstring>","minimumTurnDuration":"\u003cstring>","minimumInterruptionDuration":"\u003cstring>","frameActivationThreshold":123},"dataConnectionConfig":{"websocketUrl":"\u003cstring>","audioConfig":{"sampleRate":123,"channelMode":"CHANNEL_MODE_UNSPECIFIED"},"dataMessages":{"pong":true,"state":true,"transcript":true,"clientToolInvocation":true,"dataConnectionToolInvocation":true,"playbackClearBuffer":true,"callStarted":true,"debug":true,"callEvent":true,"toolUsed":true,"userStartedSpeaking":true,"userStoppedSpeaking":true,"invokingTool":true},"headers":{}},"callbacks":{"joined":{"url":"\u003cstring>","secrets":["\u003cstring>"]},"ended":{"url":"\u003cstring>","secrets":["\u003cstring>"]},"billed":{"url":"\u003cstring>","secrets":["\u003cstring>"]}},"backgroundAudio":{"audioClip":"\u003cstring>","volume":123}}],"next":"http://api.example.org/accounts/?cursor=cD00ODY%3D\"","previous":"http://api.example.org/accounts/?cursor=cj0xJnA9NDg3","total":123}}},"exampleType":"generated"}},"description":"","exampleType":"generated"}},"security":{"b9130bdf-117c-4010-87a3-34020d9b8b71":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key","scopes":[],"schemeName":"apiKeyAuth"}}},"servers":{"11525385-b17b-43b1-b750-a37b9a2eabf8":{"url":"https://api.ultravox.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key","scopes":[],"schemeName":"apiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"API key","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"X-API-Key"}],"title":"apiKeyAuth"}]},"originalFileLocation":"https://api.ultravox.ai/api/schema/"},"subdomain":"fixie-ff99b187","siteName":"Ultravox Docs","title":"List Calls - Ultravox Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-27T19:44:04.079Z","originalFileLocation":"api-reference/calls/calls-list.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=\"Returns details for all calls\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ultravox Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_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/fixie-ff99b187/RC4kJskBQjAqkbwk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List Calls - Ultravox Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns details for all calls\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ultravox Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ultravox.ai/api-reference/calls/calls-list\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fixie-ff99b187.mintlify.app/_mintlify/api/og/v2?division=Calls%2C+Messages%2C+Stages\u0026amp;title=List+Calls\u0026amp;description=Returns+details+for+all+calls\u0026amp;theme=bc87cc7f9d3a0dd67baea503\u0026amp;signature=62cbb86f1542c077422479abf432a8c555b858a76a530fff42953d1951045a8f\">\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=\"List Calls - Ultravox Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns details for all calls\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fixie-ff99b187.mintlify.app/_mintlify/api/og/v2?division=Calls%2C+Messages%2C+Stages\u0026amp;title=List+Calls\u0026amp;description=Returns+details+for+all+calls\u0026amp;theme=bc87cc7f9d3a0dd67baea503\u0026amp;signature=62cbb86f1542c077422479abf432a8c555b858a76a530fff42953d1951045a8f\">\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/fixie-ff99b187/RC4kJskBQjAqkbwk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ultravox Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5E92FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ultravox.ai/api-reference/calls/calls-list\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/calls/calls-list.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ultravox.ai/#organization\",\"name\":\"Ultravox Docs\",\"url\":\"https://docs.ultravox.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fixie-ff99b187/cH2M6xBt2fvtSCh3/images/UV%20Logo%20Horizontal%20Black.svg?fit=max\u0026auto=format\u0026n=cH2M6xBt2fvtSCh3\u0026q=85\u0026s=5eccb0a0c1b64983c2047f655e60aceb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ultravox.ai#website\",\"name\":\"Ultravox Docs\",\"url\":\"https://docs.ultravox.ai\",\"publisher\":{\"@id\":\"https://docs.ultravox.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ultravox.ai/api-reference/calls/calls-list#webpage\",\"url\":\"https://docs.ultravox.ai/api-reference/calls/calls-list\",\"name\":\"List Calls\",\"description\":\"Returns details for all calls\",\"dateModified\":\"2026-01-27T19:44:04.079Z\",\"isPartOf\":{\"@id\":\"https://docs.ultravox.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ultravox.ai/api-reference/calls/calls-list#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ultravox.ai/api-reference/calls/calls-list#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Calls, Messages, Stages\",\"item\":\"https://docs.ultravox.ai/api-reference/calls/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List Calls\",\"item\":\"https://docs.ultravox.ai/api-reference/calls/calls-list\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ultravox.ai/api-reference/calls/calls-list#apireference\",\"headline\":\"List Calls\",\"name\":\"List Calls\",\"description\":\"Returns details for all calls\",\"url\":\"https://docs.ultravox.ai/api-reference/calls/calls-list\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ultravox.ai/api-reference/calls/calls-list#webpage\"},\"dateModified\":\"2026-01-27T19:44:04.079Z\",\"publisher\":{\"@id\":\"https://docs.ultravox.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ultravox.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ultravox Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ultravox Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Ultravox REST API Overview","href":"/api-reference/introduction"}]},{"group":"Accounts","pages":[{"openapi":"get /api/accounts/me","title":"Get Account","href":"/api-reference/accounts/accounts-me-get"},{"openapi":"get /api/accounts/me/usage/calls","title":"Get Call Usage","href":"/api-reference/accounts/accounts-me-usage-calls-get"},{"openapi":"get /api/accounts/me/usage/concurrency","title":"Get Concurrency Usage","href":"/api-reference/accounts/accounts-me-usage-concurrency-get"},{"openapi":"patch /api/accounts/me/tts_api_keys","title":"Set TTS API keys","href":"/api-reference/accounts/accounts-me-tts-api-keys-partial-update"},{"openapi":"get /api/accounts/me/tts_api_keys","title":"Get Account TTS API Keys","href":"/api-reference/accounts/accounts-me-tts-api-keys-retrieve"}]},{"group":"Agents","pages":[{"openapi":"get /api/agents","title":"List Agents","href":"/api-reference/agents/agents-list"},{"openapi":"post /api/agents","title":"Create Agent","href":"/api-reference/agents/agents-post"},{"openapi":"get /api/agents/{agent_id}","title":"Get Agent","href":"/api-reference/agents/agents-get"},{"openapi":"patch /api/agents/{agent_id}","title":"Update Agent","href":"/api-reference/agents/agents-patch"},{"openapi":"delete /api/agents/{agent_id}","title":"Delete Agent","href":"/api-reference/agents/agents-delete"},{"openapi":"get /api/agents/{agent_id}/calls","title":"List Agent Calls","href":"/api-reference/agents/agents-calls-list"},{"openapi":"post /api/agents/{agent_id}/calls","title":"Create Agent Call","href":"/api-reference/agents/agents-calls-post"},{"group":"Scheduled Call Batches","tag":"NEW","expanded":true,"pages":[{"openapi":"get /api/agents/{agent_id}/scheduled_batches","title":"List Scheduled Call Batches","href":"/api-reference/agents/agents-scheduled-batches-list"},{"openapi":"post /api/agents/{agent_id}/scheduled_batches","title":"Create Scheduled Call Batch","href":"/api-reference/agents/agents-scheduled-batches-post"},{"openapi":"get /api/agents/{agent_id}/scheduled_batches/{batch_id}","title":"Get Scheduled Call Batch","href":"/api-reference/agents/agents-scheduled-batches-get"},{"openapi":"patch /api/agents/{agent_id}/scheduled_batches/{batch_id}","title":"Update Scheduled Call Batch","href":"/api-reference/agents/agents-scheduled-batches-patch"},{"openapi":"delete /api/agents/{agent_id}/scheduled_batches/{batch_id}","title":"Delete Scheduled Call Batch","href":"/api-reference/agents/agents-scheduled-batches-delete"},{"openapi":"get /api/agents/{agent_id}/scheduled_batches/{batch_id}/created_calls","title":"List Scheduled Call Batch Created Calls","href":"/api-reference/agents/agents-scheduled-batches-created-calls-list"},{"openapi":"get /api/agents/{agent_id}/scheduled_batches/{batch_id}/scheduled_calls","title":"List Scheduled Call Batch Scheduled Calls","href":"/api-reference/agents/agents-scheduled-batches-scheduled-calls-list"}]}]},{"group":"Calls, Messages, Stages","pages":[{"title":"Calls Overview","description":"Understanding Calls in Ultravox","href":"/api-reference/calls/overview"},{"openapi":"get /api/calls","title":"List Calls","href":"/api-reference/calls/calls-list"},{"openapi":"get /api/calls/{call_id}","title":"Get Call","description":"Gets details for the specified call","href":"/api-reference/calls/calls-get"},{"openapi":"post /api/calls","title":"Create Call","href":"/api-reference/calls/calls-post"},{"openapi":"delete /api/calls/{call_id}","title":"Delete Call","href":"/api-reference/calls/calls-delete"},{"openapi":"get /api/calls/{call_id}/messages","title":"List Call Messages","href":"/api-reference/calls/calls-messages-list"},{"openapi":"get /api/calls/{call_id}/tools","title":"List Call Tools","href":"/api-reference/calls/calls-tools-list"},{"openapi":"get /api/calls/{call_id}/recording","title":"Get Call Recording","href":"/api-reference/calls/calls-recording-get"},{"openapi":"get /api/calls/{call_id}/stages","title":"List Call Stages","href":"/api-reference/calls/calls-stages-list"},{"openapi":"get /api/calls/{call_id}/stages/{call_stage_id}","title":"Get Call Stage","href":"/api-reference/calls/calls-stages-get"},{"openapi":"get /api/calls/{call_id}/stages/{call_stage_id}/messages","title":"List Call Stage Messages","href":"/api-reference/calls/calls-stages-messages-list"},{"openapi":"get /api/calls/{call_id}/stages/{call_stage_id}/tools","title":"List Call Stage Tools","href":"/api-reference/calls/calls-stages-tools-list"},{"openapi":"get /api/calls/{call_id}/stages/{call_stage_id}/messages/{call_stage_message_index}/audio","title":"Get Call Stage Message Audio","href":"/api-reference/calls/calls-stages-message-audio-get"},{"openapi":"get /api/deleted_calls","title":"List Deleted Calls","href":"/api-reference/calls/calls-deleted-calls-list"},{"openapi":"get /api/deleted_calls/{call_id}","title":"Get Deleted Call","href":"/api-reference/calls/calls-deleted-calls-get"},{"openapi":"get /api/calls/{call_id}/events","title":"List Call Events","href":"/api-reference/calls/calls-events-list"},{"openapi":"get /api/calls/{call_id}/sip_logs","title":"Get Sip Logs for a call","href":"/api-reference/calls/calls-sip-logs-get"},{"openapi":"post /api/calls/{call_id}/send_data_message","title":"Send Data Message to Call","href":"/api-reference/calls/calls-send-data-message-post"}]},{"group":"Corpora, Query, Sources","pages":[{"title":"Corpus Service (RAG) Overview","href":"/api-reference/corpora/overview"},{"openapi":"get /api/corpora","title":"List Corpora","href":"/api-reference/corpora/corpora-list"},{"openapi":"post /api/corpora","title":"Create Corpus","href":"/api-reference/corpora/corpora-post"},{"openapi":"get /api/corpora/{corpus_id}","title":"Get Corpus","href":"/api-reference/corpora/corpora-get"},{"openapi":"patch /api/corpora/{corpus_id}","title":"Update Corpus","href":"/api-reference/corpora/corpora-patch"},{"openapi":"delete /api/corpora/{corpus_id}","title":"Delete Corpus","href":"/api-reference/corpora/corpora-delete"},{"openapi":"post /api/corpora/{corpus_id}/query","title":"Query Corpus","href":"/api-reference/corpora/corpus-query"},{"openapi":"get /api/corpora/{corpus_id}/sources","title":"List Corpus Sources","href":"/api-reference/corpora/corpora-sources-list"},{"openapi":"post /api/corpora/{corpus_id}/sources","title":"Create Corpus Source","href":"/api-reference/corpora/corpora-sources-post"},{"openapi":"get /api/corpora/{corpus_id}/sources/{source_id}","title":"Get Corpus Source","href":"/api-reference/corpora/corpora-sources-get"},{"openapi":"patch /api/corpora/{corpus_id}/sources/{source_id}","title":"Update Corpus Source","href":"/api-reference/corpora/corpora-sources-patch"},{"openapi":"delete /api/corpora/{corpus_id}/sources/{source_id}","title":"Delete Corpus Source","href":"/api-reference/corpora/corpora-sources-delete"},{"openapi":"get /api/corpora/{corpus_id}/sources/{source_id}/documents","title":"List Corpus Source Documents","href":"/api-reference/corpora/corpora-sources-documents-list"},{"openapi":"get /api/corpora/{corpus_id}/sources/{source_id}/documents/{document_id}","title":"Get Corpus Source Document","href":"/api-reference/corpora/corpora-sources-documents-get"},{"openapi":"post /api/corpora/{corpus_id}/uploads","title":"Create Corpus File Upload","href":"/api-reference/corpora/corpora-uploads-post"}]},{"group":"Call Throttles","pages":[{"openapi":"get /api/call_throttles","title":"List Call Throttles","href":"/api-reference/call-throttles/call-throttles-list"},{"openapi":"get /api/call_throttles/{throttle_id}","title":"Get Call Throttle","href":"/api-reference/call-throttles/call-throttles-get"},{"openapi":"post /api/call_throttles","title":"Create Call Throttle","href":"/api-reference/call-throttles/call-throttles-post"},{"openapi":"put /api/call_throttles/{throttle_id}","title":"Update Call Throttle","href":"/api-reference/call-throttles/call-throttles-put"},{"openapi":"patch /api/call_throttles/{throttle_id}","title":"Patch Call Throttle","href":"/api-reference/call-throttles/call-throttles-patch"},{"openapi":"delete /api/call_throttles/{throttle_id}","title":"Delete Call Throttle","href":"/api-reference/call-throttles/call-throttles-delete"}]},{"group":"Tools","pages":[{"openapi":"get /api/tools","title":"List Tools","href":"/api-reference/tools/tools-list"},{"openapi":"get /api/tools/{tool_id}","title":"Get Tool","href":"/api-reference/tools/tools-get"},{"openapi":"post /api/tools","title":"Create Tool","href":"/api-reference/tools/tools-post"},{"openapi":"put /api/tools/{tool_id}","title":"Update Tool","href":"/api-reference/tools/tools-put"},{"openapi":"delete /api/tools/{tool_id}","title":"Delete Tool","href":"/api-reference/tools/tools-delete"},{"openapi":"get /api/tools/{tool_id}/history","title":"Get Tool History","href":"/api-reference/tools/tools-history-get"},{"openapi":"post /api/tools/{tool_id}/test","title":"Test Tool","href":"/api-reference/tools/tools-test-post"}]},{"group":"Voices","pages":[{"openapi":"get /api/voices","title":"List Voices","href":"/api-reference/voices/voices-list"},{"openapi":"get /api/voices/{voice_id}","title":"Get Voice","href":"/api-reference/voices/voices-get"},{"openapi":"post /api/voices","title":"Create (Clone) Voice","playground":"none","href":"/api-reference/voices/voices-post"},{"openapi":"delete /api/voices/{voice_id}","title":"Delete Voice","href":"/api-reference/voices/voices-delete"},{"openapi":"put /api/voices/{voice_id}","title":"Replace Voice","href":"/api-reference/voices/voices-put"},{"openapi":"patch /api/voices/{voice_id}","title":"Update Voice","href":"/api-reference/voices/voices-patch"},{"openapi":"post /api/voice_preview","title":"Preview Voice","href":"/api-reference/voices/voice-preview-post"},{"openapi":"get /api/voices/{voice_id}/preview","title":"Get Voice Sample","href":"/api-reference/voices/voices-preview-get"}]},{"group":"Webhooks","pages":[{"openapi":"get /api/webhooks","title":"List Webhooks","href":"/api-reference/webhooks/webhooks-list"},{"openapi":"get /api/webhooks/{webhook_id}","title":"Get Webhook","href":"/api-reference/webhooks/webhooks-get"},{"openapi":"post /api/webhooks","title":"Create Webhook","href":"/api-reference/webhooks/webhooks-post"},{"openapi":"put /api/webhooks/{webhook_id}","title":"Replace Webhook","href":"/api-reference/webhooks/webhooks-put"},{"openapi":"patch /api/webhooks/{webhook_id}","title":"Update Webhook","href":"/api-reference/webhooks/webhooks-patch"},{"openapi":"delete /api/webhooks/{webhook_id}","title":"Delete Webhook","href":"/api-reference/webhooks/webhooks-delete"}]},{"group":"Telephony","pages":[{"openapi":"get /api/sip","title":"Get Account SIP configuration","href":"/api-reference/sip/sip-get"},{"openapi":"patch /api/sip","title":"Update Account SIP configuration","href":"/api-reference/sip/sip-partial-update"},{"openapi":"post /api/sip/registrations","title":"Create SIP Registration","href":"/api-reference/sip/sip-registrations-create"},{"openapi":"get /api/sip/registrations","title":"List SIP Registrations","href":"/api-reference/sip/sip-registrations-list"},{"openapi":"get /api/sip/registrations/{registration_id}","title":"Get SIP Registration","href":"/api-reference/sip/sip-registrations-get"},{"openapi":"patch /api/sip/registrations/{registration_id}","title":"Update SIP Registration","href":"/api-reference/sip/sip-registrations-partial-update"},{"openapi":"delete /api/sip/registrations/{registration_id}","title":"Delete SIP Registration","href":"/api-reference/sip/sip-registrations-delete"},{"openapi":"get /api/telephony_configs/twilio","title":"Get Twilio Configuration for Account","href":"/api-reference/telephony/twilio-get"},{"openapi":"post /api/telephony_configs/twilio","title":"Create Twilio Configuration for Account","href":"/api-reference/telephony/twilio-post"},{"openapi":"patch /api/telephony_configs/twilio","title":"Update Twilio Configuration for Account","href":"/api-reference/telephony/twilio-patch"},{"openapi":"delete /api/telephony_configs/twilio","title":"Delete Twilio Configuration for Account","href":"/api-reference/telephony/twilio-delete"},{"openapi":"get /api/telephony_configs/telnyx","title":"Get Telnyx Configuration for Account","href":"/api-reference/telephony/telnyx-get"},{"openapi":"post /api/telephony_configs/telnyx","title":"Create Telnyx Configuration for Account","href":"/api-reference/telephony/telnyx-post"},{"openapi":"patch /api/telephony_configs/telnyx","title":"Update Telnyx Configuration for Account","href":"/api-reference/telephony/telnyx-patch"},{"openapi":"delete /api/telephony_configs/telnyx","title":"Delete Telnyx Configuration for Account","href":"/api-reference/telephony/telnyx-delete"},{"openapi":"get /api/telephony_configs/plivo","title":"Get Plivo Configuration for Account","href":"/api-reference/telephony/plivo-get"},{"openapi":"post /api/telephony_configs/plivo","title":"Create Plivo Configuration for Account","href":"/api-reference/telephony/plivo-post"},{"openapi":"patch /api/telephony_configs/plivo","title":"Update Plivo Configuration for Account","href":"/api-reference/telephony/plivo-patch"},{"openapi":"delete /api/telephony_configs/plivo","title":"Delete Plivo Configuration for Account","href":"/api-reference/telephony/plivo-delete"},{"openapi":"patch /api/accounts/me/telephony_config","title":"Set Telephony Credentials","href":"/api-reference/accounts/accounts-me-telephony-config-partial-update"},{"openapi":"get /api/accounts/me/telephony_config","title":"Get Telephony Credentials","href":"/api-reference/accounts/accounts-me-telephony-config-retrieve"}]},{"group":"Schema","pages":[{"title":"Call Definition","href":"/api-reference/schema/call-definition"},{"title":"Base Tool Definition","href":"/api-reference/schema/base-tool-definition"},{"title":"SIP Fallback Handler Response","href":"/api-reference/schema/sip-fallback-handler-response"},{"title":"Ultravox Data Message Protocol","href":"/api-reference/schema/datamessages"}]},{"group":"Other","pages":[{"openapi":"get /api/models","title":"List Models","href":"/api-reference/other/models-get"},{"openapi":"get /api/schema/","title":"Get OpenAPI Schema","href":"/api-reference/other/schema-get"}]}]},{"tab":"SDK Reference","pages":[{"title":"SDK Reference","href":"/sdk-reference/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/voximplant"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/news"}]}]},"basePath":"","title":"List Calls - Ultravox Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Buji1S4J.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}