Your agent rings a customer, opens with your purpose (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the name and source you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with callingHours (any hour of any day when you set none), in the customer’s own time, or with scheduledAt, the call is queued and answers status: "scheduled" with a sch_… id; otherwise it rings now with an out_… id. Each call is billed from your balance, refused with 402 when it cannot pay, held to your plan’s concurrent lines and 60 requests a minute; what it learned arrives as call.analysed or from Get Call. Needs a full key.
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace. Refused with 404 (Workspace not found.) when the id is unknown, is not one of your customers, or is not an org_… id; 410 when that customer was deleted (restore it with POST /customers/{id}/restore until it is erased); 403 when the key belongs to one customer workspace (it cannot act as another); 400 when your workspace is not a developer workspace. /customers/* and GET /customers/usage are your own workspace's and refuse the header with 400: call them without it.
The customer's number. Include the + and the country code (a leading 00 works too); spaces are fine. A number without its country code is refused: nothing is assumed to be Indian or anywhere else.
Values the agent's instructions use as {{name}}. Up to 20; names are lower-cased with spaces turned into _, values cut to 150 characters. When the number is a contact of yours, its name, first_name, phone and email are filled in underneath — a value you send here wins — and the agent is told who it is speaking with.
Outside the calling hours right now: schedule queues the call for the minute they open; refuse answers 409 with nextOpening and does nothing. Does not apply to a call with scheduledAt, nor to a batch (which always queues).
The details to fill from the call, keyed back exactly as named. A value that does not fit its type is left out rather than sent wrong. Leave it out for the agent's own collected fields.
Your own flat data, returned exactly as sent on every report and webhook. Up to 20 keys of 1–60 characters, 4,000 characters serialised; values are strings, numbers, booleans or null — a nested object or list is refused.
Don't ring before this instant, written with its offset (2027-03-08T10:00:00+05:30). Up to 30 days ahead; queued, then rung at this time or the next opening of the calling hours after it. A time already past means now.
Try again when the person was not reached (no answer, busy, an answering machine, or a pick-up the agent never reached). A declined call, a dead number and a call somebody answered are never retried. A retry keeps the same id, rings only inside the calling hours, and is checked again against opt-outs and the do-not-call list.
Which of the agent's numbers rings — its own, or one lent to it for calling (List Phone Numbers). Leave it out for the agent's own line. On an agent with several numbers, a chosen number places at most 200 calls a day.
How long the phone rings before the call is given up, in whole seconds. Leave it out for the agent's voice.ringSeconds (30 unless set). A call nobody answers in that time is reported as no_answer — the hangup of call.completed — and is retried as one when retry asks. Kept for a scheduled call and for each retry.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ThinnestAI","description":"One AI agent that answers on your website, WhatsApp and Telegram — and remembers the same customer across all of them.","colors":{"primary":"#ff4e01","light":"#ff7a3d","dark":"#e64600"},"logo":{"light":"https://mintcdn.com/thinnestai/v8t9Y30dpMuNl6ae/logo/light.svg?fit=max\u0026auto=format\u0026n=v8t9Y30dpMuNl6ae\u0026q=85\u0026s=b9c83749f4bae8ed15285bc7d2b3dec4","dark":"https://mintcdn.com/thinnestai/v8t9Y30dpMuNl6ae/logo/dark.svg?fit=max\u0026auto=format\u0026n=v8t9Y30dpMuNl6ae\u0026q=85\u0026s=e25aa9f9221cebcb813fa71c39f72037"},"favicon":"https://mintcdn.com/thinnestai/v8t9Y30dpMuNl6ae/favicon.png?fit=max\u0026auto=format\u0026n=v8t9Y30dpMuNl6ae\u0026q=85\u0026s=71b74c45d3942ee0cf5d5fec76b24991","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"primary":{"type":"button","label":"Open the console","href":"https://thinnest.ai/app"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"thinnestai","hasAudioNarration":false,"actualSubdomain":"thinnestai","customDomains":["docs.thinnest.ai"],"gitSource":{"type":"github","owner":"ashutoshkaremore","repo":"thin-agents-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aedc2b414aa97ea22437264","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API reference","count":213},{"language":"default","tag":"Documentation","count":62},{"language":"default","tag":"Guides","count":15},{"language":"default","tag":"Tools","count":15},{"language":"default","tag":"Channels","count":13},{"language":"default","tag":"Phone numbers","count":13},{"language":"default","tag":"Your agent","count":12},{"language":"default","tag":"Reaching out","count":10},{"language":"default","tag":"Agents","count":10},{"language":"default","tag":"Customers","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/calls/place-call","slug":"/api-reference/calls/place-call","pageMetadata":{"title":"Place Call","description":"Your agent rings a customer, opens with your `purpose` (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the `name` and `source` you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with `callingHours` (any hour of any day when you set none), in the customer's own time, or with `scheduledAt`, the call is queued and answers `status: \"scheduled\"` with a `sch_…` id; otherwise it rings now with an `out_…` id. Each call is billed from your balance, refused with `402` when it cannot pay, held to your plan's concurrent lines and 60 requests a minute; what it learned arrives as `call.analysed` or from Get Call. Needs a **full** key.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /calls","href":"/api-reference/calls/place-call","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Your agent rings a customer, opens with your \", _jsx(_components.code, {\n children: \"purpose\"\n }), \" (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the \", _jsx(_components.code, {\n children: \"name\"\n }), \" and \", _jsx(_components.code, {\n children: \"source\"\n }), \" you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with \", _jsx(_components.code, {\n children: \"callingHours\"\n }), \" (any hour of any day when you set none), in the customer’s own time, or with \", _jsx(_components.code, {\n children: \"scheduledAt\"\n }), \", the call is queued and answers \", _jsx(_components.code, {\n children: \"status: \\\"scheduled\\\"\"\n }), \" with a \", _jsx(_components.code, {\n children: \"sch_…\"\n }), \" id; otherwise it rings now with an \", _jsx(_components.code, {\n children: \"out_…\"\n }), \" id. Each call is billed from your balance, refused with \", _jsx(_components.code, {\n children: \"402\"\n }), \" when it cannot pay, held to your plan’s concurrent lines and 60 requests a minute; what it learned arrives as \", _jsx(_components.code, {\n children: \"call.analysed\"\n }), \" or from Get Call. Needs a \", _jsx(_components.strong, {\n children: \"full\"\n }), \" key.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Place Call","description":"Your agent rings a customer, opens with your `purpose` (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the `name` and `source` you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with `callingHours` (any hour of any day when you set none), in the customer's own time, or with `scheduledAt`, the call is queued and answers `status: \"scheduled\"` with a `sch_…` id; otherwise it rings now with an `out_…` id. Each call is billed from your balance, refused with `402` when it cannot pay, held to your plan's concurrent lines and 60 requests a minute; what it learned arrives as `call.analysed` or from Get Call. Needs a **full** key.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /calls","href":"/api-reference/calls/place-call","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Place Call","operationId":"placeCall","tags":["Calls"],"description":"Your agent rings a customer, opens with your `purpose` (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the `name` and `source` you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with `callingHours` (any hour of any day when you set none), in the customer's own time, or with `scheduledAt`, the call is queued and answers `status: \"scheduled\"` with a `sch_…` id; otherwise it rings now with an `out_…` id. Each call is billed from your balance, refused with `402` when it cannot pay, held to your plan's concurrent lines and 60 requests a minute; what it learned arrives as `call.analysed` or from Get Call. Needs a **full** key.","parameters":["8c45133d-b572-4993-99b5-cc9754b1f1bf","fc0bc742-8f2a-4d58-849e-859f6a1095be"],"requestBody":"8762bc4f-6bdf-44b3-bf4f-06eb90408dda","responses":{"202":"c5468c1a-50b8-4413-a23d-45924afb0f1b","400":"8381fbe1-03e1-458b-af6e-ff259f801c98","401":"702cab08-5317-4443-bed6-c1f84ac04074","402":"386fde6d-b8ec-41b3-86fa-49015f84a7de","403":"864eff6f-783d-4ed6-b26c-52482ba135b1","404":"34c77a96-f07a-40e9-9cbd-ed57fdde34bc","409":"ac96ced7-3fe1-4271-8826-d1bc07bc89bb","410":"2fba17f2-bafa-40ea-8ff9-f9a9b95d7fc1","429":"0d81824a-a33a-40f8-aa85-1d3f15d72134","502":"2ada3bf6-107e-43c0-9445-91a588e51445","503":"3eecd3a4-c0ba-40b3-8a7c-2fd04abd0533"},"method":"post","type":"path","servers":["fe13abc9-8a2a-47f3-936a-df77a0d4b29d"],"security":["1dff0b0a-4755-40ac-981b-0b760bbead54"],"path":"/calls","baseUrlOptions":["https://app.thinnest.ai/api/v1"],"title":"Place Call","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"8c45133d-b572-4993-99b5-cc9754b1f1bf":{"name":"Idempotency-Key","in":"header","required":false,"description":"Any unique string. A retry with the same key within 24 hours returns the first request's answer instead of acting twice.","schema":{"type":"string","maxLength":255,"isRequired":false,"description":"Any unique string. A retry with the same key within 24 hours returns the first request's answer instead of acting twice.","uniqueKey":"","typeLabel":"string"}},"fc0bc742-8f2a-4d58-849e-859f6a1095be":{"name":"Thinnest-Workspace","in":"header","required":false,"description":"Developers only: the customer workspace this request acts in — its `org_…` id from `POST /customers`. Leave it out to act in your own workspace. Refused with `404` (`Workspace not found.`) when the id is unknown, is not one of your customers, or is not an `org_…` id; `410` when that customer was deleted (restore it with `POST /customers/{id}/restore` until it is erased); `403` when the key belongs to one customer workspace (it cannot act as another); `400` when your workspace is not a developer workspace. `/customers/*` and `GET /customers/usage` are your own workspace's and refuse the header with `400`: call them without it.","schema":{"type":"string","example":"org_3fKq9TzQ1mN8vB2xR7cLpA","isRequired":false,"description":"Developers only: the customer workspace this request acts in — its `org_…` id from `POST /customers`. Leave it out to act in your own workspace. Refused with `404` (`Workspace not found.`) when the id is unknown, is not one of your customers, or is not an `org_…` id; `410` when that customer was deleted (restore it with `POST /customers/{id}/restore` until it is erased); `403` when the key belongs to one customer workspace (it cannot act as another); `400` when your workspace is not a developer workspace. `/customers/*` and `GET /customers/usage` are your own workspace's and refuse the header with `400`: call them without it.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"One call to place.","required":["to","purpose"],"properties":{"to":{"type":"string","description":"The customer's number. Include the `+` and the country code (a leading `00` works too); spaces are fine. A number without its country code is refused: nothing is assumed to be Indian or anywhere else.","example":"+91 98765 43210","isRequired":true,"uniqueKey":"to","typeLabel":"string"},"purpose":{"type":"string","minLength":1,"maxLength":300,"description":"Why you are calling, as you would say it — the first thing the customer hears. 300 characters or fewer.","example":"I'm calling from Skyline Homes about your enquiry for Sky Towers.","isRequired":true,"uniqueKey":"purpose","typeLabel":"string"},"agent":{"type":"string","description":"Which agent calls — its `ag_…` id or its name. Needed only when more than one agent answers the phone.","example":"ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71","uniqueKey":"agent","typeLabel":"string"},"idempotencyKey":{"type":"string","description":"The same as the `Idempotency-Key` header, for clients that cannot set headers. The header wins.","uniqueKey":"idempotencyKey","typeLabel":"string"},"name":{"type":"string","maxLength":120,"description":"The lead's name. A number that is not a contact yet becomes one with this name; an existing contact's name is never overwritten.","uniqueKey":"name","typeLabel":"string"},"source":{"type":"string","maxLength":120,"description":"Where the lead came from, e.g. `99acres enquiry form` — recorded on a new contact.","uniqueKey":"source","typeLabel":"string"},"reference":{"type":"string","maxLength":200,"description":"Your own id for this lead, never interpreted. It comes back on the response, every report and both call webhooks.","uniqueKey":"reference","typeLabel":"string"},"variables":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"variables.additionalProperties","typeLabel":"string"},"description":"Values the agent's instructions use as `{{name}}`. Up to 20; names are lower-cased with spaces turned into `_`, values cut to 150 characters. When the number is a contact of yours, its `name`, `first_name`, `phone` and `email` are filled in underneath — a value you send here wins — and the agent is told who it is speaking with.","uniqueKey":"variables","typeLabel":"object"},"callingHours":{"type":"object","description":"When this person may be rung, in their own time. Leave it out and the call may ring at any hour of any day.","properties":{"start":{"type":"string","description":"Opening time, `HH:MM`, earlier than `end`.","default":"00:00","example":"10:00","uniqueKey":"callingHours.start","typeLabel":"string"},"end":{"type":"string","description":"Closing time, `HH:MM`, later than `start`. `24:00` is the end of the day.","default":"24:00","example":"19:00","uniqueKey":"callingHours.end","typeLabel":"string"},"days":{"type":"array","description":"The weekdays calls may be placed on. Leave it out for every day.","minItems":1,"items":{"type":"string","enum":["mon","tue","wed","thu","fri","sat","sun"],"uniqueKey":"callingHours.days.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["mon","tue","wed","thu","fri","sat"],"uniqueKey":"callingHours.days","typeLabel":"enum\u003cstring>[]"},"timezone":{"type":"string","description":"An IANA zone, used only for a number whose country cannot be placed; an Indian number is always read in India's time. Defaults to your workspace's zone.","example":"Asia/Kolkata","uniqueKey":"callingHours.timezone","typeLabel":"string"}},"uniqueKey":"callingHours","typeLabel":"object"},"ifOutsideHours":{"type":"string","enum":["schedule","refuse"],"default":"schedule","description":"Outside the calling hours right now: `schedule` queues the call for the minute they open; `refuse` answers `409` with `nextOpening` and does nothing. Does not apply to a call with `scheduledAt`, nor to a batch (which always queues).","uniqueKey":"ifOutsideHours","typeLabel":"enum\u003cstring>"},"extract":{"type":"array","maxItems":30,"items":{"type":"object","description":"One detail to fill in after every call — the same shape as a call's `extract`.","required":["name"],"properties":{"name":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,59}$","description":"Letters, digits and underscores, starting with a letter, up to 60 characters. Unique, ignoring case.","isRequired":true,"uniqueKey":"extract.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","enum":["text","number","integer","boolean","date"],"default":"text","description":"The value's type.","uniqueKey":"extract.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":200,"description":"What to put in it, as the model reads it.","uniqueKey":"extract.items.[INDEX].description","typeLabel":"string"},"choices":{"type":"array","maxItems":30,"items":{"type":"string","maxLength":60,"uniqueKey":"extract.items.[INDEX].choices.items.[INDEX]","typeLabel":"string"},"description":"Values a `text` field must be one of. Only for `text`.","uniqueKey":"extract.items.[INDEX].choices","typeLabel":"string[]"}},"example":{"name":"interest","type":"text","description":"How keen they sounded","choices":["Hot","Warm","Cold"]},"uniqueKey":"extract.items.[INDEX]","typeLabel":"object"},"description":"The details to fill from the call, keyed back exactly as named. A value that does not fit its type is left out rather than sent wrong. Leave it out for the agent's own collected fields.","uniqueKey":"extract","typeLabel":"object[]"},"summary":{"type":"boolean","description":"`true` writes two or three sentences about the call, `false` skips it. Leave it out to follow the agent's own switch.","uniqueKey":"summary","typeLabel":"boolean"},"metadata":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"metadata.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"metadata.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"metadata.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"metadata.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"metadata.additionalProperties","typeLabel":"string | number | boolean | null"},"description":"Your own flat data, returned exactly as sent on every report and webhook. Up to 20 keys of 1–60 characters, 4,000 characters serialised; values are strings, numbers, booleans or null — a nested object or list is refused.","uniqueKey":"metadata","typeLabel":"object"},"scheduledAt":{"type":"string","format":"date-time","description":"Don't ring before this instant, written with its offset (`2027-03-08T10:00:00+05:30`). Up to 30 days ahead; queued, then rung at this time or the next opening of the calling hours after it. A time already past means now.","uniqueKey":"scheduledAt","typeLabel":"string\u003cdate-time>"},"retry":{"type":"object","description":"Try again when the person was not reached (no answer, busy, an answering machine, or a pick-up the agent never reached). A declined call, a dead number and a call somebody answered are never retried. A retry keeps the same `id`, rings only inside the calling hours, and is checked again against opt-outs and the do-not-call list.","required":["count"],"properties":{"count":{"type":"integer","minimum":0,"maximum":5,"description":"Further attempts after the first. 0 means none.","isRequired":true,"uniqueKey":"retry.count","typeLabel":"integer"},"noAnswerMinutes":{"type":"integer","minimum":5,"maximum":1440,"default":60,"description":"Minutes to wait after a call nobody answered, or an answering machine took.","uniqueKey":"retry.noAnswerMinutes","typeLabel":"integer"},"busyMinutes":{"type":"integer","minimum":5,"maximum":1440,"default":15,"description":"Minutes to wait after an engaged line.","uniqueKey":"retry.busyMinutes","typeLabel":"integer"}},"example":{"count":2,"noAnswerMinutes":60,"busyMinutes":15},"uniqueKey":"retry","typeLabel":"object"},"from":{"type":"string","description":"Which of the agent's numbers rings — its own, or one lent to it for calling (List Phone Numbers). Leave it out for the agent's own line. On an agent with several numbers, a chosen number places at most 200 calls a day.","uniqueKey":"from","typeLabel":"string"},"ringSeconds":{"type":"integer","minimum":10,"maximum":60,"description":"How long the phone rings before the call is given up, in whole seconds. Leave it out for the agent's `voice.ringSeconds` (30 unless set). A call nobody answers in that time is reported as `no_answer` — the `hangup` of `call.completed` — and is retried as one when `retry` asks. Kept for a scheduled call and for each retry.","uniqueKey":"ringSeconds","typeLabel":"integer"},"overrides":{"type":"object","description":"Changes to the agent for this call only; the agent itself is not edited. Any other key is refused by name.","properties":{"voice":{"type":"string","maxLength":100,"description":"A voice id from List Voices — or, on a workspace that brings its own keys, a voice your own provider offers (List BYOK Voices). A studio voice bills this call at the studio rate.","uniqueKey":"overrides.voice","typeLabel":"string"},"language":{"type":"string","description":"A language the console offers, e.g. `Hindi` — what the call is heard and spoken in. `auto` is not accepted: leave it out for the agent's own behaviour.","uniqueKey":"overrides.language","typeLabel":"string"},"maxCallSeconds":{"type":"integer","minimum":60,"maximum":1200,"description":"The longest this call may run, in seconds.","uniqueKey":"overrides.maxCallSeconds","typeLabel":"integer"},"ringSeconds":{"type":"integer","minimum":10,"maximum":60,"description":"The same as the top-level `ringSeconds`; send one or the other.","uniqueKey":"overrides.ringSeconds","typeLabel":"integer"},"callInstructions":{"type":"string","minLength":1,"maxLength":4000,"description":"Replaces the agent's call instructions (the box on its Voice page) for this call.","uniqueKey":"overrides.callInstructions","typeLabel":"string"}},"example":{"voice":"priya","language":"Hindi","maxCallSeconds":300},"uniqueKey":"overrides","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"to":"+91 98765 43210","purpose":"I'm calling from Skyline Homes about your enquiry for Sky Towers.","agent":"ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71","name":"Asha Rao","source":"99acres enquiry form","reference":"LSQ-42","variables":{"lead_name":"Asha","project":"Sky Towers","budget_asked":"2BHK"},"callingHours":{"start":"10:00","end":"19:00","days":["mon","tue","wed","thu","fri","sat"]},"extract":[{"name":"budget","type":"number","description":"Budget in rupees"},{"name":"interest","choices":["Hot","Warm","Cold"]},{"name":"site_visit","type":"boolean"}],"summary":true,"metadata":{"deal_id":"D-19","owner":"Ravi"},"retry":{"count":2,"noAnswerMinutes":60,"busyMinutes":15},"from":"918045678901","overrides":{"voice":"priya","maxCallSeconds":300}},"examples":{"Example":{"title":"Example","value":{"to":"+91 98765 43210","purpose":"I'm calling from Skyline Homes about your enquiry for Sky Towers.","agent":"ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71","name":"Asha Rao","source":"99acres enquiry form","reference":"LSQ-42","variables":{"lead_name":"Asha","project":"Sky Towers","budget_asked":"2BHK"},"callingHours":{"start":"10:00","end":"19:00","days":["mon","tue","wed","thu","fri","sat"]},"extract":[{"name":"budget","type":"number","description":"Budget in rupees"},{"name":"interest","choices":["Hot","Warm","Cold"]},{"name":"site_visit","type":"boolean"}],"summary":true,"metadata":{"deal_id":"D-19","owner":"Ravi"},"retry":{"count":2,"noAnswerMinutes":60,"busyMinutes":15},"from":"918045678901","overrides":{"voice":"priya","maxCallSeconds":300}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"c5468c1a-50b8-4413-a23d-45924afb0f1b":{"description":"Accepted: ringing now (`out_…`), or queued for later (`sch_…`, with `scheduledFor`).","content":{"application/json":{"schema":{"type":"object","required":["id","to","from","status","reference"],"properties":{"id":{"type":"string","description":"The call's id — `out_…` when ringing now, `sch_…` when queued. Every later report and webhook carries it.","example":"out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"to":{"type":"string","description":"The number as it will be dialled.","example":"919876543210","isRequired":true,"uniqueKey":"to","typeLabel":"string"},"from":{"oneOf":[{"type":"string","description":"The number it rings from. Null on a queued call that will use the agent's own line.","example":"918045678901","isRequired":true,"uniqueKey":"from.oneOf.0","typeLabel":"string"},{"type":"null","description":"The number it rings from. Null on a queued call that will use the agent's own line.","example":"918045678901","isRequired":true,"uniqueKey":"from.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"from","typeLabel":"string | null"},"status":{"type":"string","enum":["ringing","scheduled"],"description":"Ringing now, or queued.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"reference":{"oneOf":[{"type":"string","description":"Your `reference`, echoed.","isRequired":true,"uniqueKey":"reference.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your `reference`, echoed.","isRequired":true,"uniqueKey":"reference.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"reference","typeLabel":"string | null"},"scheduledFor":{"type":"string","format":"date-time","description":"When a queued call will ring. Only on `scheduled`.","uniqueKey":"scheduledFor","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"ringing":{"title":"ringing","value":{"id":"out_9f2c1a44-6b0e-4c1d-8a7f-2e5b3c9d1f60","to":"919876543210","from":"918045678901","status":"ringing","reference":"LSQ-42"}},"scheduled":{"title":"scheduled","value":{"id":"sch_2d7b0e91-4f3a-4c88-9b1e-7a6c5d4e3f21","to":"919876543210","from":null,"status":"scheduled","scheduledFor":"2026-10-07T04:30:00.000Z","reference":"LSQ-42"}}},"exampleType":"examples"}},"exampleType":"examples"},"8381fbe1-03e1-458b-af6e-ff259f801c98":{"description":"A missing `to` or `purpose`, a number that could not be read, a purpose over 300 characters, several phone agents and no `agent`, a `from` that is not one of the agent's numbers, a voice that is not offered, or an optional field that breaks its rule. Nothing is created.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"examples":{"missing":{"title":"missing","value":{"error":"Both `to` and `purpose` are required.","code":"validation_failed"}},"agent":{"title":"agent","value":{"error":"More than one agent answers the phone. Name one in `agent`.","code":"agent_ambiguous"}},"hours":{"title":"hours","value":{"error":"`callingHours.start` must be earlier than `callingHours.end`.","code":"validation_failed"}},"voice":{"title":"voice","value":{"error":"`overrides.voice` is not a voice we offer. GET /api/v1/voices lists them.","code":"validation_failed"}}},"exampleType":"examples"}},"exampleType":"examples"},"702cab08-5317-4443-bed6-c1f84ac04074":{"description":"The key is missing, wrong or revoked. The answer is always the same, whichever it is.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"example":{"error":"Unauthorized","code":"unauthorized"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized","code":"unauthorized"}}},"exampleType":"examples"}},"exampleType":"examples"},"386fde6d-b8ec-41b3-86fa-49015f84a7de":{"description":"Your balance cannot pay for a call (`code: insufficient_balance`). `reason` says which limit stopped it: `no balance`, `trial spent`, `overdrawn`, `too many calls`, `balance unknown` or `retry buffer`.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","const":"insufficient_balance","description":"Always `insufficient_balance`.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"reason":{"type":"string","enum":["no balance","trial spent","overdrawn","too many calls","balance unknown","retry buffer"],"description":"Which spending limit stopped the call.","uniqueKey":"reason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"There is not enough balance to place a call.","code":"insufficient_balance","reason":"no balance"},"examples":{"Example":{"title":"Example","value":{"error":"There is not enough balance to place a call.","code":"insufficient_balance","reason":"no balance"}}},"exampleType":"examples"}},"exampleType":"examples"},"864eff6f-783d-4ed6-b26c-52482ba135b1":{"description":"The customer asked not to be contacted (`code: opted_out`), the number is on your do-not-call list (`code: do_not_call`), or the key is not a full key (`code: key_scope_read` or `key_scope_build`). Branch on `code`: the three have the same status.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"examples":{"optedOut":{"title":"optedOut","value":{"error":"That customer has asked not to be contacted.","code":"opted_out"}},"dnc":{"title":"dnc","value":{"error":"That number is on your do-not-call list.","code":"do_not_call"}},"scope":{"title":"scope","value":{"error":"This API key is a build key: it can set up agents, actions, contacts and webhooks, but not message customers, send codes or place calls. Use a full key for that.","code":"key_scope_build"}}},"exampleType":"examples"}},"exampleType":"examples"},"34c77a96-f07a-40e9-9cbd-ed57fdde34bc":{"description":"`agent` names no agent that answers the phone in this workspace (or voice is not available on this deployment).","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"example":{"error":"No agent of that name or id answers the phone in this workspace.","code":"agent_not_found"},"examples":{"Example":{"title":"Example","value":{"error":"No agent of that name or id answers the phone in this workspace.","code":"agent_not_found"}}},"exampleType":"examples"}},"exampleType":"examples"},"ac96ced7-3fe1-4271-8826-d1bc07bc89bb":{"description":"Outside calling hours with `ifOutsideHours: \"refuse\"` (carries `nextOpening`); hours that can never open for this number; a call to this number already waiting on this agent (carries its `id` and `scheduledFor`); the person on a call right now (with this agent or another in the workspace); no agent that answers the phone; a number on your own carrier account without its credentials; or the same `Idempotency-Key` still being processed.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What clashed, in a sentence.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["outside_calling_hours","number_never_callable","call_already_scheduled","call_in_progress","calling_not_set_up","needs_own_carrier_keys","idempotency_in_progress","conflict"],"description":"Which clash. Branch on this, not on the sentence.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"nextOpening":{"type":"string","format":"date-time","description":"With `ifOutsideHours: \"refuse\"`: when the calling hours next open.","uniqueKey":"nextOpening","typeLabel":"string\u003cdate-time>"},"id":{"type":"string","description":"When a call is already waiting: that call's id.","uniqueKey":"id","typeLabel":"string"},"scheduledFor":{"type":"string","format":"date-time","description":"When a call is already waiting: when it will ring.","uniqueKey":"scheduledFor","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"outsideHours":{"title":"outsideHours","value":{"error":"It is outside calling hours (10:00–19:00) for this number.","code":"outside_calling_hours","nextOpening":"2026-10-07T04:30:00.000Z"}},"waiting":{"title":"waiting","value":{"error":"A call to this number is already scheduled on this agent.","code":"call_already_scheduled","id":"sch_2d7b0e91-4f3a-4c88-9b1e-7a6c5d4e3f21","scheduledFor":"2026-10-07T04:30:00.000Z"}},"onCall":{"title":"onCall","value":{"error":"This number is on a call right now.","code":"call_in_progress"}},"noLine":{"title":"noLine","value":{"error":"No agent in this workspace answers the phone. Turn on Voice and add a number.","code":"calling_not_set_up"}}},"exampleType":"examples"}},"exampleType":"examples"},"2fba17f2-bafa-40ea-8ff9-f9a9b95d7fc1":{"description":"The customer named in `Thinnest-Workspace` was deleted. `POST /customers/{id}/restore` brings it back until its erase date.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"example":{"error":"This workspace was deleted on 2026-10-06 and is erased on 2026-11-05. POST /v1/customers/{id}/restore brings it back until then.","code":"workspace_deleted"},"examples":{"Example":{"title":"Example","value":{"error":"This workspace was deleted on 2026-10-06 and is erased on 2026-11-05. POST /v1/customers/{id}/restore brings it back until then.","code":"workspace_deleted"}}},"exampleType":"examples"}},"exampleType":"examples"},"0d81824a-a33a-40f8-aa85-1d3f15d72134":{"description":"Over 60 calls a minute (`code: rate_limit_calls`), every line your plan allows already busy (`code: concurrent_calls`), or a chosen `from` number has placed its calls for today (`code: number_daily_limit`). `limit` names the limit that was hit.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait, when given."}},"content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"examples":{"rate":{"title":"rate","value":{"error":"Over 60 calls a minute. Slow down and retry.","code":"rate_limit_calls","limit":{"name":"calls","perMinute":60}}},"lines":{"title":"lines","value":{"error":"Already running 3 calls. Wait for one to finish.","code":"concurrent_calls","limit":{"name":"concurrent_calls","max":3}}},"daily":{"title":"daily","value":{"error":"That number has placed its calls for today. Use another, or leave out `from`.","code":"number_daily_limit","limit":{"name":"number_daily","max":200}}}},"exampleType":"examples"}},"exampleType":"examples"},"2ada3bf6-107e-43c0-9445-91a588e51445":{"description":"The phone line refused this call (retrying the same number is unlikely to help), or, on a workspace using its own voice keys, your voice provider could not be reached to check `overrides.voice` (try again).","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"example":{"error":"The phone provider would not place the call.","code":"carrier_unavailable"},"examples":{"Example":{"title":"Example","value":{"error":"The phone provider would not place the call.","code":"carrier_unavailable"}}},"exampleType":"examples"}},"exampleType":"examples"},"3eecd3a4-c0ba-40b3-8a7c-2fd04abd0533":{"description":"Calling is unavailable right now, or the opt-out lists could not be checked. Worth retrying.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"What went wrong, in a sentence you can show a person.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unauthorized","key_scope_read","key_scope_build","workspace_not_found","workspace_deleted","workspace_not_developer","workspace_header_forbidden","rate_limit_resources","rate_limit_family","rate_limit_calls","rate_limit_messages","rate_limit_codes","rate_limit_code_recipient","concurrent_calls","number_daily_limit","rate_limited","opted_out","do_not_call","stop_list_unknown","insufficient_balance","outside_calling_hours","number_never_callable","call_in_progress","call_already_scheduled","calling_not_set_up","carrier_unavailable","agent_not_found","agent_ambiguous","from_number_invalid","agent_on_live_call","phone_number_required","signing_unavailable","invalid_number","number_required","number_claimed_elsewhere","needs_own_carrier_keys","number_move_needs_developer","number_move_same_workspace","number_on_live_call","number_move_needs_business_details","number_move_carrier_account","number_move_unavailable","number_move_in_progress","number_move_legacy_number","number_cannot_forward","forward_destination_not_allowed","forward_loop","template_not_found","template_not_approved","template_language_missing","template_unsendable","code_template_not_found","code_template_ambiguous","whatsapp_not_connected","whatsapp_blocked","whatsapp_not_configured","free_allowance_used","send_failed","plan_required","plan_limit","payment_required","idempotency_in_progress","validation_failed","forbidden","not_found","conflict","gone","unprocessable","internal_error","service_unavailable"],"description":"A stable machine-readable code. Two refusals that share a status are told apart by it (a `403` for an opted-out customer, for the do-not-call list and for a key that is not a full key). See the table in the API reference under Errors.","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"limit":{"type":"object","description":"On a `429` that hit one of our limits: which one and how big it is. `perMinute` for a per-minute limit; `max` (and `windowSeconds`) for the others.","required":["name"],"properties":{"name":{"type":"string","description":"Which limit: `resources`, `family`, `calls`, `messages`, `codes`, `code_recipient`, `concurrent_calls` or `number_daily`.","isRequired":true,"uniqueKey":"limit.name","typeLabel":"string"},"perMinute":{"type":"integer","description":"Requests allowed a minute.","uniqueKey":"limit.perMinute","typeLabel":"integer"},"max":{"type":"integer","description":"The most allowed, for a limit that is not per minute.","uniqueKey":"limit.max","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The window `max` is counted over, when it has one.","uniqueKey":"limit.windowSeconds","typeLabel":"integer"}},"uniqueKey":"limit","typeLabel":"object"}},"example":{"error":"That agent was not found.","code":"not_found"},"description":"Every error body. Branch on `code`, never on the sentence in `error`: the sentence may be reworded, the code does not change.","uniqueKey":"","typeLabel":"object"},"examples":{"lines":{"title":"lines","value":{"error":"The phone provider would not place the call.","code":"carrier_unavailable"}},"consent":{"title":"consent","value":{"error":"Could not confirm this number may be called. Try again shortly.","code":"stop_list_unknown"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1dff0b0a-4755-40ac-981b-0b760bbead54":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your API key (`ta_live_…`) from **Settings → API keys**, sent as `Authorization: Bearer \u003ckey>`. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with `403`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"fe13abc9-8a2a-47f3-936a-df77a0d4b29d":{"url":"https://app.thinnest.ai/api/v1","description":"Every workspace, in every country"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your API key (`ta_live_…`) from **Settings → API keys**, sent as `Authorization: Bearer \u003ckey>`. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with `403`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your API key (`ta_live_…`) from **Settings → API keys**, sent as `Authorization: Bearer \u003ckey>`. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with `403`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"thinnestai","siteName":"ThinnestAI","title":"Place Call - ThinnestAI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T17:02:21.637Z","originalFileLocation":"api-reference/calls/place-call.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=\"Your agent rings a customer, opens with your purpose (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the name and source you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with callingHours (any hour of any day when you set none), in the customer\u0026#x27;s own time, or with scheduledAt, the call is queued and answers status: \u0026quot;scheduled\u0026quot; with a sch_… id; otherwise it rings now with an out_… id. Each call is billed from your balance, refused with 402 when it cannot pay, held to your plan\u0026#x27;s concurrent lines and 60 requests a minute; what it learned arrives as call.analysed or from Get Call. Needs a full key.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ThinnestAI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_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/thinnestai/5DqVrbKlNMbN0dXk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Place Call - ThinnestAI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Your agent rings a customer, opens with your purpose (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the name and source you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with callingHours (any hour of any day when you set none), in the customer\u0026#x27;s own time, or with scheduledAt, the call is queued and answers status: \u0026quot;scheduled\u0026quot; with a sch_… id; otherwise it rings now with an out_… id. Each call is billed from your balance, refused with 402 when it cannot pay, held to your plan\u0026#x27;s concurrent lines and 60 requests a minute; what it learned arrives as call.analysed or from Get Call. Needs a full key.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ThinnestAI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.thinnest.ai/api-reference/calls/place-call\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://thinnestai.mintlify.site/_mintlify/api/og/v2?division=Calls\u0026amp;title=Place+Call\u0026amp;description=Your+agent+rings+a+customer%2C+opens+with+your+%60purpose%60+%28spoken+aloud%2C+so+300+characters+or+fewer%29%2C+then+holds+a+normal+conversation.+A+number+that+is+not+a+cont\u0026amp;theme=55a958cd82a3f8f5bd748d45\u0026amp;signature=6a3ed05b382e4a8f312d3ddd3a4297fd87c35ea8b9e260ad689b761b78a0a886\">\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=\"Place Call - ThinnestAI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Your agent rings a customer, opens with your purpose (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the name and source you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with callingHours (any hour of any day when you set none), in the customer\u0026#x27;s own time, or with scheduledAt, the call is queued and answers status: \u0026quot;scheduled\u0026quot; with a sch_… id; otherwise it rings now with an out_… id. Each call is billed from your balance, refused with 402 when it cannot pay, held to your plan\u0026#x27;s concurrent lines and 60 requests a minute; what it learned arrives as call.analysed or from Get Call. Needs a full key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://thinnestai.mintlify.site/_mintlify/api/og/v2?division=Calls\u0026amp;title=Place+Call\u0026amp;description=Your+agent+rings+a+customer%2C+opens+with+your+%60purpose%60+%28spoken+aloud%2C+so+300+characters+or+fewer%29%2C+then+holds+a+normal+conversation.+A+number+that+is+not+a+cont\u0026amp;theme=55a958cd82a3f8f5bd748d45\u0026amp;signature=6a3ed05b382e4a8f312d3ddd3a4297fd87c35ea8b9e260ad689b761b78a0a886\">\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/thinnestai/5DqVrbKlNMbN0dXk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ThinnestAI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff4e01\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.thinnest.ai/api-reference/calls/place-call\">\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/place-call.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.thinnest.ai/#organization\",\"name\":\"ThinnestAI\",\"url\":\"https://docs.thinnest.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/thinnestai/v8t9Y30dpMuNl6ae/logo/light.svg?fit=max\u0026auto=format\u0026n=v8t9Y30dpMuNl6ae\u0026q=85\u0026s=b9c83749f4bae8ed15285bc7d2b3dec4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.thinnest.ai#website\",\"name\":\"ThinnestAI\",\"url\":\"https://docs.thinnest.ai\",\"publisher\":{\"@id\":\"https://docs.thinnest.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.thinnest.ai/api-reference/calls/place-call#webpage\",\"url\":\"https://docs.thinnest.ai/api-reference/calls/place-call\",\"name\":\"Place Call\",\"description\":\"Your agent rings a customer, opens with your purpose (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the name and source you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with callingHours (any hour of any day when you set none), in the customer's own time, or with scheduledAt, the call is queued and answers status: \\\"scheduled\\\" with a sch_… id; otherwise it rings now with an out_… id. Each call is billed from your balance, refused with 402 when it cannot pay, held to your plan's concurrent lines and 60 requests a minute; what it learned arrives as call.analysed or from Get Call. Needs a full key.\",\"dateModified\":\"2026-10-29T17:02:21.637Z\",\"isPartOf\":{\"@id\":\"https://docs.thinnest.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.thinnest.ai/api-reference/calls/place-call#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.thinnest.ai/api-reference/calls/place-call#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Calls\",\"item\":\"https://docs.thinnest.ai/api-reference/calls/list-calls\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Place Call\",\"item\":\"https://docs.thinnest.ai/api-reference/calls/place-call\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.thinnest.ai/api-reference/calls/place-call#apireference\",\"headline\":\"Place Call\",\"name\":\"Place Call\",\"description\":\"Your agent rings a customer, opens with your purpose (spoken aloud, so 300 characters or fewer), then holds a normal conversation. A number that is not a contact yet becomes one with the name and source you send; someone who opted out or is on your do-not-call list is refused. Outside the calling hours you set with callingHours (any hour of any day when you set none), in the customer's own time, or with scheduledAt, the call is queued and answers status: \\\"scheduled\\\" with a sch_… id; otherwise it rings now with an out_… id. Each call is billed from your balance, refused with 402 when it cannot pay, held to your plan's concurrent lines and 60 requests a minute; what it learned arrives as call.analysed or from Get Call. Needs a full key.\",\"url\":\"https://docs.thinnest.ai/api-reference/calls/place-call\",\"mainEntityOfPage\":{\"@id\":\"https://docs.thinnest.ai/api-reference/calls/place-call#webpage\"},\"dateModified\":\"2026-10-29T17:02:21.637Z\",\"publisher\":{\"@id\":\"https://docs.thinnest.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.thinnest.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ThinnestAI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ThinnestAI","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"API reference","groups":[{"group":"Get started","pages":[{"title":"API reference","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Errors","href":"/api-reference/errors"},{"title":"SDKs","href":"/api-reference/sdks"},{"title":"Customers","href":"/api-reference/customers"},{"title":"Bring your own keys","href":"/api-reference/bring-your-own-keys"},{"title":"Webhooks","href":"/api-reference/webhooks"}]},{"group":"Agents","pages":[{"title":"List Agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents","href":"/api-reference/agents/list-agents"},{"title":"Create Agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents","href":"/api-reference/agents/create-agent"},{"title":"Get Agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}","href":"/api-reference/agents/get-agent"},{"title":"Update Agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}","href":"/api-reference/agents/update-agent"},{"title":"Delete Agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}","href":"/api-reference/agents/delete-agent"},{"title":"Get Agent BYOK Model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/byok-model","href":"/api-reference/agents/get-agent-byok-model"},{"title":"Set Agent BYOK Model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /agents/{id}/byok-model","href":"/api-reference/agents/set-agent-byok-model"},{"title":"Get Agent BYOK Voice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/byok-voice","href":"/api-reference/agents/get-agent-byok-voice"},{"title":"Set Agent BYOK Voice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /agents/{id}/byok-voice","href":"/api-reference/agents/set-agent-byok-voice"},{"title":"Test Chat","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/test-chat","href":"/api-reference/agents/test-chat"}]},{"group":"Knowledge","pages":[{"title":"List Knowledge Documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/knowledge","href":"/api-reference/knowledge/list-knowledge-documents"},{"title":"Add Knowledge Document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/knowledge","href":"/api-reference/knowledge/add-knowledge-document"},{"title":"Delete Knowledge Document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/knowledge/{documentId}","href":"/api-reference/knowledge/delete-knowledge-document"}]},{"group":"Actions","pages":[{"title":"List Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/actions","href":"/api-reference/actions/list-actions"},{"title":"Create Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/actions","href":"/api-reference/actions/create-action"},{"title":"Get Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/actions/{actionId}","href":"/api-reference/actions/get-action"},{"title":"Update Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}/actions/{actionId}","href":"/api-reference/actions/update-action"},{"title":"Delete Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/actions/{actionId}","href":"/api-reference/actions/delete-action"},{"title":"Test Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/actions/{actionId}/test","href":"/api-reference/actions/test-action"}]},{"group":"Tools","pages":[{"title":"List Built-in Tools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/tools","href":"/api-reference/tools/list-built-in-tools"},{"title":"Update Built-in Tools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}/tools","href":"/api-reference/tools/update-built-in-tools"},{"title":"List Tool Servers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/mcp-servers","href":"/api-reference/tools/list-tool-servers"},{"title":"Connect Tool Server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/mcp-servers","href":"/api-reference/tools/connect-tool-server"},{"title":"Get Tool Server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/mcp-servers/{serverId}","href":"/api-reference/tools/get-tool-server"},{"title":"Disconnect Tool Server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/mcp-servers/{serverId}","href":"/api-reference/tools/disconnect-tool-server"},{"title":"Sync Tool Server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/mcp-servers/{serverId}/sync","href":"/api-reference/tools/sync-tool-server"},{"title":"Update Tool Server Tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}/mcp-servers/{serverId}/tools/{toolId}","href":"/api-reference/tools/update-tool-server-tool"},{"title":"List Connections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/connections","href":"/api-reference/tools/list-connections"},{"title":"Get Connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/connections/{kind}","href":"/api-reference/tools/get-connection"},{"title":"Connect Account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/connections/{kind}","href":"/api-reference/tools/connect-account"},{"title":"Configure Connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}/connections/{kind}","href":"/api-reference/tools/configure-connection"},{"title":"Disconnect Account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/connections/{kind}","href":"/api-reference/tools/disconnect-account"},{"title":"List Connection Options","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/connections/{kind}/options","href":"/api-reference/tools/list-connection-options"},{"title":"Replace Records Link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/connections/records/link","href":"/api-reference/tools/replace-records-link"}]},{"group":"Channels","pages":[{"title":"Get Agent Channels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/channels","href":"/api-reference/channels/get-agent-channels"},{"title":"Connect Telegram Bot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/channels/telegram","href":"/api-reference/channels/connect-telegram-bot"},{"title":"Disconnect Telegram Bot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/channels/telegram","href":"/api-reference/channels/disconnect-telegram-bot"}]},{"group":"Calls","pages":[{"title":"List Calls","description":"Every call your workspace made or took — inbound, website, WhatsApp, a campaign's or one you placed — newest first, without transcripts or recordings. Each item's `id` opens the call with Get Call. A call booked for later appears here only once it has rung; read a booked call by the `sch_…` id Place Call gave you.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls","href":"/api-reference/calls/list-calls"},{"title":"Place Call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /calls","href":"/api-reference/calls/place-call"},{"title":"Place Batch Calls","description":"Rings up to 200 people with one request. Every option Place Call takes may be set once for the batch and again on an entry, the entry winning (an entry's `variables` sit on top of the batch's); `purpose` and `agent` are the batch's. Every entry is queued and paced inside your plan's lines and balance — none rings inline — and each gets its own `sch_…` id that reports through `call.analysed` and Get Call. A bad entry is listed under `refused` and does not stop the rest. Needs a **full** key.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /calls/batch","href":"/api-reference/calls/place-batch-calls"},{"title":"Get Call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/{id}","href":"/api-reference/calls/get-call"},{"title":"Cancel Call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /calls/{id}","href":"/api-reference/calls/cancel-call"},{"title":"Get Call Transcript","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/{id}/transcript","href":"/api-reference/calls/get-call-transcript"},{"title":"Get Call Timeline","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/{id}/timeline","href":"/api-reference/calls/get-call-timeline"}]},{"group":"Post-call","pages":[{"title":"Get Call Analysis","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/{id}/analysis","href":"/api-reference/post-call/get-call-analysis"},{"title":"Delete Call Content","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /calls/{id}/content","href":"/api-reference/post-call/delete-call-content"},{"title":"Get Post-call Settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/post-call","href":"/api-reference/post-call/get-post-call-settings"},{"title":"Update Post-call Settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}/post-call","href":"/api-reference/post-call/update-post-call-settings"}]},{"group":"Recordings","pages":[{"title":"Get Call Recording","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/{id}/recording","href":"/api-reference/recordings/get-call-recording"},{"title":"Get Recording By Signed Link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /recordings/{callId}","href":"/api-reference/recordings/get-recording-by-signed-link"}]},{"group":"Conversations","pages":[{"title":"List Conversations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /conversations","href":"/api-reference/conversations/list-conversations"},{"title":"List Conversation Messages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /conversations/{id}/messages","href":"/api-reference/conversations/list-conversation-messages"},{"title":"Reply to Conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /conversations/{id}/reply","href":"/api-reference/conversations/reply-to-conversation"},{"title":"Update Conversation Status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /conversations/{id}/status","href":"/api-reference/conversations/update-conversation-status"},{"title":"Assign Conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /conversations/{id}/assign","href":"/api-reference/conversations/assign-conversation"}]},{"group":"Messages","pages":[{"title":"Send Message","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /messages","href":"/api-reference/messages/send-message"}]},{"group":"One-time codes","pages":[{"title":"Send One-Time Code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /codes","href":"/api-reference/one-time-codes/send-one-time-code"},{"title":"List Code Templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /codes/templates","href":"/api-reference/one-time-codes/list-code-templates"},{"title":"Create Code Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /codes/templates","href":"/api-reference/one-time-codes/create-code-template"},{"title":"Get Code Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /codes/templates/{id}","href":"/api-reference/one-time-codes/get-code-template"},{"title":"Update Code Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /codes/templates/{id}","href":"/api-reference/one-time-codes/update-code-template"},{"title":"Delete Code Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /codes/templates/{id}","href":"/api-reference/one-time-codes/delete-code-template"},{"title":"Submit Code Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /codes/templates/{id}/submit","href":"/api-reference/one-time-codes/submit-code-template"}]},{"group":"Contacts","pages":[{"title":"List Contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Create Contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /contacts","href":"/api-reference/contacts/create-contact"},{"title":"Get Contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contacts/{id}","href":"/api-reference/contacts/get-contact"},{"title":"Update Contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /contacts/{id}","href":"/api-reference/contacts/update-contact"},{"title":"Delete Contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /contacts/{id}","href":"/api-reference/contacts/delete-contact"}]},{"group":"Do not call","pages":[{"title":"List Do-Not-Call Numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /do-not-call","href":"/api-reference/do-not-call/list-do-not-call-numbers"},{"title":"Add Do-Not-Call Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /do-not-call","href":"/api-reference/do-not-call/add-do-not-call-number"},{"title":"Get Do-Not-Call Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /do-not-call/{phone}","href":"/api-reference/do-not-call/get-do-not-call-number"},{"title":"Remove Do-Not-Call Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /do-not-call/{phone}","href":"/api-reference/do-not-call/remove-do-not-call-number"}]},{"group":"Events","pages":[{"title":"Report Event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /events","href":"/api-reference/events/report-event"}]},{"group":"Templates","pages":[{"title":"List Templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /templates","href":"/api-reference/templates/list-templates"},{"title":"Create Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /templates","href":"/api-reference/templates/create-template"},{"title":"Get Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /templates/{name}","href":"/api-reference/templates/get-template"},{"title":"Update Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /templates/{name}","href":"/api-reference/templates/update-template"},{"title":"Delete Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /templates/{name}","href":"/api-reference/templates/delete-template"},{"title":"Submit Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /templates/{name}/submit","href":"/api-reference/templates/submit-template"}]},{"group":"Campaigns","pages":[{"title":"List Campaigns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /campaigns","href":"/api-reference/campaigns/list-campaigns"},{"title":"Create Campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /campaigns","href":"/api-reference/campaigns/create-campaign"},{"title":"Get Campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /campaigns/{id}","href":"/api-reference/campaigns/get-campaign"},{"title":"Launch Campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /campaigns/{id}/launch","href":"/api-reference/campaigns/launch-campaign"},{"title":"Pause Campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /campaigns/{id}/pause","href":"/api-reference/campaigns/pause-campaign"},{"title":"Resume Campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /campaigns/{id}/resume","href":"/api-reference/campaigns/resume-campaign"},{"title":"Cancel Campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /campaigns/{id}/cancel","href":"/api-reference/campaigns/cancel-campaign"}]},{"group":"Sequences","pages":[{"title":"List Sequences","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /sequences","href":"/api-reference/sequences/list-sequences"},{"title":"Create Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sequences","href":"/api-reference/sequences/create-sequence"},{"title":"Get Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /sequences/{sequenceId}","href":"/api-reference/sequences/get-sequence"},{"title":"Update Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /sequences/{sequenceId}","href":"/api-reference/sequences/update-sequence"},{"title":"Delete Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /sequences/{sequenceId}","href":"/api-reference/sequences/delete-sequence"},{"title":"Add Sequence Step","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sequences/{sequenceId}/steps","href":"/api-reference/sequences/add-sequence-step"},{"title":"Activate Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sequences/{sequenceId}/activate","href":"/api-reference/sequences/activate-sequence"},{"title":"Pause Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sequences/{sequenceId}/pause","href":"/api-reference/sequences/pause-sequence"},{"title":"Enrol in Sequence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sequences/{sequenceId}/enrolments","href":"/api-reference/sequences/enrol-in-sequence"}]},{"group":"Forms","pages":[{"title":"List Forms","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /forms","href":"/api-reference/forms/list-forms"},{"title":"Create Form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /forms","href":"/api-reference/forms/create-form"},{"title":"Get Form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /forms/{id}","href":"/api-reference/forms/get-form"},{"title":"Update Form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /forms/{id}","href":"/api-reference/forms/update-form"},{"title":"Delete Form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /forms/{id}","href":"/api-reference/forms/delete-form"},{"title":"Publish Form","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /forms/{id}/publish","href":"/api-reference/forms/publish-form"}]},{"group":"Phone numbers","pages":[{"title":"List Phone Numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone-numbers","href":"/api-reference/phone-numbers/list-phone-numbers"},{"title":"Rent Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /phone-numbers","href":"/api-reference/phone-numbers/rent-phone-number"},{"title":"Get Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone-numbers/{number}","href":"/api-reference/phone-numbers/get-phone-number"},{"title":"Update Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /phone-numbers/{number}","href":"/api-reference/phone-numbers/update-phone-number"},{"title":"Release Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /phone-numbers/{number}","href":"/api-reference/phone-numbers/release-phone-number"},{"title":"Move Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /phone-numbers/{number}/move","href":"/api-reference/phone-numbers/move-phone-number"},{"title":"Get Business Details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone-numbers/business-details","href":"/api-reference/phone-numbers/get-business-details"},{"title":"Send Business Details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /phone-numbers/business-details","href":"/api-reference/phone-numbers/send-business-details"},{"title":"Search Available Phone Numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone-numbers/available","href":"/api-reference/phone-numbers/search-available-phone-numbers"},{"title":"List Available Cities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone-numbers/available/cities","href":"/api-reference/phone-numbers/list-available-cities"},{"title":"Import Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /phone-numbers/import","href":"/api-reference/phone-numbers/import-phone-number"},{"title":"List Carrier Accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone-numbers/carrier-accounts","href":"/api-reference/phone-numbers/list-carrier-accounts"},{"title":"Save Carrier Account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /phone-numbers/carrier-accounts/{provider}","href":"/api-reference/phone-numbers/save-carrier-account"}]},{"group":"SMS","pages":[{"title":"Get SMS Provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /sms/provider","href":"/api-reference/sms/get-sms-provider"},{"title":"Connect SMS Provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /sms/provider","href":"/api-reference/sms/connect-sms-provider"},{"title":"Disconnect SMS Provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /sms/provider","href":"/api-reference/sms/disconnect-sms-provider"},{"title":"List SMS Templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /sms/templates","href":"/api-reference/sms/list-sms-templates"},{"title":"Add SMS Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sms/templates","href":"/api-reference/sms/add-sms-template"},{"title":"Update SMS Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /sms/templates/{id}","href":"/api-reference/sms/update-sms-template"},{"title":"Delete SMS Template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /sms/templates/{id}","href":"/api-reference/sms/delete-sms-template"},{"title":"Send Test SMS","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sms/test","href":"/api-reference/sms/send-test-sms"}]},{"group":"Voices","pages":[{"title":"List Voices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /voices","href":"/api-reference/voices/list-voices"}]},{"group":"Voice clones","pages":[{"title":"List Voice Clones","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /voice-clones","href":"/api-reference/voice-clones/list-voice-clones"},{"title":"Create Voice Clone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /voice-clones","href":"/api-reference/voice-clones/create-voice-clone"},{"title":"Get Voice Clone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /voice-clones/{id}","href":"/api-reference/voice-clones/get-voice-clone"},{"title":"Update Voice Clone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /voice-clones/{id}","href":"/api-reference/voice-clones/update-voice-clone"},{"title":"Delete Voice Clone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /voice-clones/{id}","href":"/api-reference/voice-clones/delete-voice-clone"}]},{"group":"Models","pages":[{"title":"List Models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /models","href":"/api-reference/models/list-models"}]},{"group":"Bring your own keys","pages":[{"title":"Get BYOK Status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /byok","href":"/api-reference/bring-your-own-keys/get-byok-status"},{"title":"Turn BYOK On or Off","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /byok","href":"/api-reference/bring-your-own-keys/turn-byok-on-or-off"},{"title":"List BYOK Keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /byok/credentials","href":"/api-reference/bring-your-own-keys/list-byok-keys"},{"title":"Add BYOK Key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /byok/credentials","href":"/api-reference/bring-your-own-keys/add-byok-key"},{"title":"Update BYOK Key Model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /byok/credentials/{kind}","href":"/api-reference/bring-your-own-keys/update-byok-key-model"},{"title":"Delete BYOK Key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /byok/credentials/{kind}","href":"/api-reference/bring-your-own-keys/delete-byok-key"},{"title":"List BYOK Voices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /byok/voices","href":"/api-reference/bring-your-own-keys/list-byok-voices"},{"title":"Preview BYOK Voice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /byok/voices/preview","href":"/api-reference/bring-your-own-keys/preview-byok-voice"}]},{"group":"Webhooks","pages":[{"title":"List Webhooks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create Webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Get Webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/{id}","href":"/api-reference/webhooks/get-webhook"},{"title":"Update Webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete Webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"List Webhook Deliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/{id}/deliveries","href":"/api-reference/webhooks/list-webhook-deliveries"},{"title":"Test Webhook","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks/{id}/test","href":"/api-reference/webhooks/test-webhook"},{"title":"Redeliver Webhook Events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks/{id}/redeliver","href":"/api-reference/webhooks/redeliver-webhook-events"}]},{"group":"Usage","pages":[{"title":"Get Usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /usage","href":"/api-reference/usage/get-usage"},{"title":"Get Daily Usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /usage/daily","href":"/api-reference/usage/get-daily-usage"},{"title":"List Call Log","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /usage/calls","href":"/api-reference/usage/list-call-log"},{"title":"List Wallet Ledger","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /wallet/ledger","href":"/api-reference/usage/list-wallet-ledger"},{"title":"List Invoices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /invoices","href":"/api-reference/usage/list-invoices"},{"title":"Get Customers Usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /customers/usage","href":"/api-reference/usage/get-customers-usage"},{"title":"Get Calls Summary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/summary","href":"/api-reference/usage/get-calls-summary"},{"title":"Get WhatsApp Summary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /whatsapp/summary","href":"/api-reference/usage/get-whatsapp-summary"}]},{"group":"Analytics","pages":[{"title":"Get Dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dashboard","href":"/api-reference/analytics/get-dashboard"},{"title":"Get Agent Analytics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/analytics","href":"/api-reference/analytics/get-agent-analytics"}]},{"group":"Customers","pages":[{"title":"List Customers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /customers","href":"/api-reference/customers/list-customers"},{"title":"Create Customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /customers","href":"/api-reference/customers/create-customer"},{"title":"Get Customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /customers/{id}","href":"/api-reference/customers/get-customer"},{"title":"Update Customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /customers/{id}","href":"/api-reference/customers/update-customer"},{"title":"Delete Customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /customers/{id}","href":"/api-reference/customers/delete-customer"},{"title":"Restore Customer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /customers/{id}/restore","href":"/api-reference/customers/restore-customer"},{"title":"List Customer Keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /customers/{id}/keys","href":"/api-reference/customers/list-customer-keys"},{"title":"Create Customer Key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /customers/{id}/keys","href":"/api-reference/customers/create-customer-key"},{"title":"Revoke Customer Key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /customers/{id}/keys/{keyId}","href":"/api-reference/customers/revoke-customer-key"}]},{"group":"Workspace","pages":[{"title":"Get Workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /workspace","href":"/api-reference/workspace/get-workspace"},{"title":"Update Workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /workspace","href":"/api-reference/workspace/update-workspace"}]},{"group":"Projects","pages":[{"title":"List Projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects","href":"/api-reference/projects/list-projects"},{"title":"Create Project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /projects","href":"/api-reference/projects/create-project"},{"title":"Get Project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /projects/{id}","href":"/api-reference/projects/get-project"},{"title":"Update Project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /projects/{id}","href":"/api-reference/projects/update-project"},{"title":"Delete Project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /projects/{id}","href":"/api-reference/projects/delete-project"}]},{"group":"Teams","pages":[{"title":"List Teams","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /teams","href":"/api-reference/teams/list-teams"},{"title":"Create Team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /teams","href":"/api-reference/teams/create-team"},{"title":"Get Team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /teams/{id}","href":"/api-reference/teams/get-team"},{"title":"Update Team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /teams/{id}","href":"/api-reference/teams/update-team"},{"title":"Delete Team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /teams/{id}","href":"/api-reference/teams/delete-team"},{"title":"Add Team Member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /teams/{id}/members/{memberId}","href":"/api-reference/teams/add-team-member"},{"title":"Remove Team Member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /teams/{id}/members/{memberId}","href":"/api-reference/teams/remove-team-member"},{"title":"Grant Team Project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /teams/{id}/projects/{projectId}","href":"/api-reference/teams/grant-team-project"},{"title":"Revoke Team Project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /teams/{id}/projects/{projectId}","href":"/api-reference/teams/revoke-team-project"}]},{"group":"Members","pages":[{"title":"List Members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /members","href":"/api-reference/members/list-members"},{"title":"Get Member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /members/{id}","href":"/api-reference/members/get-member"},{"title":"Update Member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /members/{id}","href":"/api-reference/members/update-member"},{"title":"Remove Member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /members/{id}","href":"/api-reference/members/remove-member"}]},{"group":"Invitations","pages":[{"title":"List Invitations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /invitations","href":"/api-reference/invitations/list-invitations"},{"title":"Create Invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /invitations","href":"/api-reference/invitations/create-invitation"},{"title":"Get Invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /invitations/{id}","href":"/api-reference/invitations/get-invitation"},{"title":"Revoke Invitation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /invitations/{id}","href":"/api-reference/invitations/revoke-invitation"}]},{"group":"Notifications","pages":[{"title":"Get Notification Preferences","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /notification-preferences","href":"/api-reference/notifications/get-notification-preferences"},{"title":"Update Notification Preferences","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /notification-preferences","href":"/api-reference/notifications/update-notification-preferences"}]},{"group":"Saved replies","pages":[{"title":"List Saved Replies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /saved-replies","href":"/api-reference/saved-replies/list-saved-replies"},{"title":"Create Saved Reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /saved-replies","href":"/api-reference/saved-replies/create-saved-reply"},{"title":"Get Saved Reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /saved-replies/{id}","href":"/api-reference/saved-replies/get-saved-reply"},{"title":"Update Saved Reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /saved-replies/{id}","href":"/api-reference/saved-replies/update-saved-reply"},{"title":"Delete Saved Reply","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /saved-replies/{id}","href":"/api-reference/saved-replies/delete-saved-reply"}]},{"group":"Contact groups","pages":[{"title":"List Contact Groups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contact-groups","href":"/api-reference/contact-groups/list-contact-groups"},{"title":"Create Contact Group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /contact-groups","href":"/api-reference/contact-groups/create-contact-group"},{"title":"Get Contact Group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contact-groups/{id}","href":"/api-reference/contact-groups/get-contact-group"},{"title":"Rename Contact Group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /contact-groups/{id}","href":"/api-reference/contact-groups/rename-contact-group"},{"title":"Delete Contact Group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /contact-groups/{id}","href":"/api-reference/contact-groups/delete-contact-group"},{"title":"Add Contacts To Group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /contact-groups/{id}/members","href":"/api-reference/contact-groups/add-contacts-to-group"},{"title":"Remove Contacts From Group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /contact-groups/{id}/members","href":"/api-reference/contact-groups/remove-contacts-from-group"}]},{"group":"Workflows","pages":[{"title":"Start a Workflow Run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /workflows/{workflowId}/runs","href":"/api-reference/workflows/start-a-workflow-run"},{"title":"List Workflows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /workflows","href":"/api-reference/workflows/list-workflows"},{"title":"Get a Workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /workflows/{workflowId}","href":"/api-reference/workflows/get-a-workflow"},{"title":"Send a Workflow Event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /workflows/events","href":"/api-reference/workflows/send-a-workflow-event"}]}]},{"tab":"What's New","pages":[{"title":"What's New","href":"/whats-new"}]}]},"basePath":"","title":"Place Call - ThinnestAI","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}