{
"statusCode": 400,
"message": "Validation error",
"error": "Bad Request",
"correlationId": "YevPQs",
"subErrors": [
"filters.contactId must not be less than 1"
]
}
{
"code": "UNAUTHORIZED",
"message": "You are not authorized to access this resource."
}
{
"statusCode": 422,
"message": "dateTo must be after dateFrom",
"error": "Unprocessable Entity",
"correlationId": "YevPQs"
}
{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests",
"correlationId": "YevPQs"
}
{
"statusCode": 500,
"message": "Internal Server Error",
"error": "Internal Server Error",
"correlationId": "YevPQs"
}
Dialer
Request a campaign data export
Queues an asynchronous export of the campaign’s call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call.
When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional filters narrow the export by contact, agent or date range — omit them to export everything for the campaign.
The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key.
filters.contactId and filters.userId must be positive ids, and dateFrom / dateTo must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing dateTo resolves to the time the job runs, a missing dateFrom to the campaign’s creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date 2026-W33 that cannot be read, and such a bound returns 422 (dateFrom must be a parseable ISO 8601 date-time, or the dateTo equivalent) whether or not the other bound is present. Supplying both with a dateTo that is not after dateFrom returns 422 (dateTo must be after dateFrom), and again nothing is enqueued.
{
"statusCode": 400,
"message": "Validation error",
"error": "Bad Request",
"correlationId": "YevPQs",
"subErrors": [
"filters.contactId must not be less than 1"
]
}
{
"code": "UNAUTHORIZED",
"message": "You are not authorized to access this resource."
}
{
"statusCode": 422,
"message": "dateTo must be after dateFrom",
"error": "Unprocessable Entity",
"correlationId": "YevPQs"
}
{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests",
"correlationId": "YevPQs"
}
{
"statusCode": 500,
"message": "Internal Server Error",
"error": "Internal Server Error",
"correlationId": "YevPQs"
}
The Dialer is a newly released product surface: depending on your account’s rollout stage, campaigns managed through this API may not yet be visible in your CloudTalk Dashboard.
HTTP Basic Authentication. Use your API Access Key ID as the username and your API Access Key Secret as the password. Generate keys in the CloudTalk Dashboard under Account -> Settings -> API Keys (https://dashboard.cloudtalk.io/menu/account/settings/API-keys).
Optional narrowing filters. Omitting the whole object exports everything for the campaign. Supplying only one of dateFrom / dateTo is valid — a missing end resolves to the time the job runs, a missing start to the campaign's creation.
Show child attributes
Response
The export job was accepted and queued.
Handle for a queued export job. Poll it with the export-status call.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CloudTalk Help Center","description":"CloudTalk developer documentation — REST API reference and integration guides.","colors":{"primary":"#0527FF","light":"#8495FF","dark":"#0420D5"},"logo":{"light":"https://mintcdn.com/cloudtalk/M_FX1uE099dO0_78/logo/light.svg?fit=max\u0026auto=format\u0026n=M_FX1uE099dO0_78\u0026q=85\u0026s=9efde0e0ef215d0b41a2f8f92056e144","dark":"https://mintcdn.com/cloudtalk/M_FX1uE099dO0_78/logo/dark.svg?fit=max\u0026auto=format\u0026n=M_FX1uE099dO0_78\u0026q=85\u0026s=4f13ec15ddcb5aaaac1005fe27b20494"},"favicon":"https://mintcdn.com/cloudtalk/M_FX1uE099dO0_78/favicon.svg?fit=max\u0026auto=format\u0026n=M_FX1uE099dO0_78\u0026q=85\u0026s=b8634fcc454e4f7d772d4c384046ec0b","api":{"examples":{"prefill":true,"autogenerate":true}},"background":{"color":{"light":"#F9FAFB","dark":"#1A1B1E"}},"navbar":{"links":[{"href":"https://support.cloudtalk.io/","label":"Support"}],"primary":{"type":"button","label":"Log in","href":"https://dashboard.cloudtalk.io/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/cloudtalk.io","youtube":"https://www.youtube.com/channel/UCIVoouQBQ9u6ahSJJ7f5orQ","facebook":"https://www.facebook.com/CloudTalkCallCenter","instagram":"https://www.instagram.com/cloudtalk_io"},"links":[{"header":"Product","items":[{"label":"Pricing","href":"https://www.cloudtalk.io/pricing"},{"label":"AI Voice Agents","href":"https://www.cloudtalk.io/ai-voice-agents"},{"label":"AI Sales Dialer","href":"https://www.cloudtalk.io/dialer"},{"label":"AI Receptionist","href":"https://www.cloudtalk.io/ai-receptionist"},{"label":"Inbound Call Center","href":"https://www.cloudtalk.io/inbound-support-center"},{"label":"Outbound Call Center","href":"https://www.cloudtalk.io/outbound-sales"}]},{"header":"Support","items":[{"label":"Help Center","href":"https://help.cloudtalk.io/en"},{"label":"Status Page","href":"https://status.cloudtalk.io/"},{"label":"Contact Us","href":"https://www.cloudtalk.io/contact"},{"label":"Request a Free Trial","href":"https://www.cloudtalk.io/signup"}]},{"header":"Company","items":[{"label":"Our Story","href":"https://www.cloudtalk.io/our-story"},{"label":"Careers","href":"https://www.cloudtalk.io/careers"},{"label":"Security","href":"https://www.cloudtalk.io/security"},{"label":"Trust Center","href":"https://trust.cloudtalk.io/"},{"label":"Brand Assets","href":"https://www.cloudtalk.io/brand-assets"}]},{"header":"Legal","items":[{"label":"Terms \u0026 Conditions","href":"https://www.cloudtalk.io/terms-and-conditions"},{"label":"Privacy Notice","href":"https://www.cloudtalk.io/privacy-notice"}]}]},"fonts":{"family":"Public Sans"},"styling":{"codeblocks":"system","latex":true},"integrations":{"ga4":{"measurementId":"G-FMQKD83J1Q"}},"contextual":{"options":["copy","view","mcp","cursor","vscode","chatgpt","claude","perplexity"],"display":"header"},"markdown":{"schema":false},"navigation":{"languages":[{"language":"en","href":"en"},{"language":"de","href":"de"},{"language":"es","href":"es"},{"language":"fr","href":"fr"},{"language":"nl","href":"nl"},{"language":"pt","href":"pt"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cloudtalk","hasAudioNarration":false,"actualSubdomain":"cloudtalk","customDomains":["help.cloudtalk.io"],"gitSource":{"type":"github","owner":"cloudtalk-io","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aeb6572edeafab81dc5bb56","collectionId":"ff5268bf-c894-49c0-8aa9-3204af5b5aca","liveDeploymentHistoryId":"6aeb6572edeafab81dc5bb56","schemaVersion":"v3"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aeb67560e1827ae617b1005","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"Help Center","count":450},{"language":"de","tag":"Hilfecenter","count":449},{"language":"es","tag":"Centro de ayuda","count":449},{"language":"fr","tag":"Centre d'aide","count":449},{"language":"nl","tag":"Helpcentrum","count":449},{"language":"pt","tag":"Centro de ajuda","count":449},{"language":"en","tag":"API","count":116},{"language":"en","tag":"API Reference","count":108},{"language":"en","tag":"Integrations","count":97},{"language":"de","tag":"Integrationen","count":97},{"language":"es","tag":"Integraciones","count":97},{"language":"fr","tag":"Intégrations","count":97},{"language":"nl","tag":"Integraties","count":97},{"language":"pt","tag":"Integrações","count":97},{"language":"en","tag":"Dashboard","count":89},{"language":"de","tag":"Dashboard","count":89},{"language":"es","tag":"Dashboard","count":89},{"language":"fr","tag":"Dashboard","count":89},{"language":"nl","tag":"Dashboard","count":89},{"language":"pt","tag":"Dashboard","count":89},{"language":"en","tag":"Numbers \u0026 porting","count":66},{"language":"de","tag":"Nummern \u0026 Portierung","count":66},{"language":"es","tag":"Números y portabilidad","count":66},{"language":"fr","tag":"Numéros et portabilité","count":66},{"language":"nl","tag":"Nummers \u0026 portering","count":66},{"language":"pt","tag":"Números e portabilidade","count":66},{"language":"en","tag":"CRM","count":51},{"language":"de","tag":"CRM","count":51},{"language":"es","tag":"CRM","count":51},{"language":"fr","tag":"CRM","count":51},{"language":"nl","tag":"CRM","count":51},{"language":"pt","tag":"CRM","count":51},{"language":"en","tag":"AI","count":43},{"language":"de","tag":"KI","count":42},{"language":"es","tag":"IA","count":42},{"language":"fr","tag":"IA","count":42},{"language":"nl","tag":"AI","count":42},{"language":"pt","tag":"IA","count":42},{"language":"en","tag":"Porting by country","count":40},{"language":"de","tag":"Portierung nach Land","count":40},{"language":"es","tag":"Portabilidad por país","count":40},{"language":"fr","tag":"Portabilité par pays","count":40},{"language":"nl","tag":"Portering per land","count":40},{"language":"pt","tag":"Portabilidade por país","count":40},{"language":"en","tag":"CloudTalk Phone \u0026 Go","count":38},{"language":"de","tag":"CloudTalk Phone \u0026 Go","count":38},{"language":"es","tag":"CloudTalk Phone y Go","count":38},{"language":"fr","tag":"CloudTalk Phone et Go","count":38},{"language":"nl","tag":"CloudTalk Phone \u0026 Go","count":38},{"language":"pt","tag":"CloudTalk Phone e Go","count":38},{"language":"de","tag":"Erste Schritte","count":33},{"language":"es","tag":"Primeros pasos","count":33},{"language":"fr","tag":"Premiers pas","count":33},{"language":"nl","tag":"Aan de slag","count":33},{"language":"pt","tag":"Primeiros passos","count":33},{"language":"de","tag":"Abrechnung \u0026 Abonnement","count":29},{"language":"es","tag":"Facturación y suscripción","count":29},{"language":"fr","tag":"Facturation et abonnement","count":29},{"language":"nl","tag":"Facturering \u0026 abonnement","count":29},{"language":"pt","tag":"Faturação e subscrição","count":29}],"searchSettings":{"maxResults":8,"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"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":"vite-origin","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"html:not(.dark) #navbar>div:first-child{background:#f5f5f5}#navbar img.nav-logo{height:1.3125rem}#navbar a[href^=\"https://dashboard.cloudtalk.io\"],#navbar a[href^=\"https://dashboard.cloudtalk.io\"] *{color:#fff!important}#navbar a[href^=\"https://dashboard.cloudtalk.io\"]{background:#0420d5;height:2.25rem;padding:0 .875rem;border-radius:.625rem;font-weight:600}#navbar a[href^=\"https://dashboard.cloudtalk.io\"]:hover{background:#031aaa;color:#fff!important}.dark #navbar a[href^=\"https://dashboard.cloudtalk.io\"]{background:#0527ff}.dark #navbar a[href^=\"https://dashboard.cloudtalk.io\"]:hover{background:#304cff}#navbar a[href^=\"https://support.cloudtalk.io\"]{background:0 0;color:#181d27!important;box-shadow:inset 0 0 0 1px #d5d7da;height:2.25rem;padding:0 .875rem;border-radius:.625rem;font-weight:600}#navbar a[href^=\"https://support.cloudtalk.io\"]:hover{background:#e9eaeb;color:#181d27!important}.dark #navbar a[href^=\"https://support.cloudtalk.io\"]{background:0 0;color:#ececed!important;box-shadow:inset 0 0 0 1px #373a41}.dark #navbar a[href^=\"https://support.cloudtalk.io\"]:hover{background:#2b303b;color:#ececed!important}html:not(.dark) #assistant-entry{background:#fff}#navbar nav[aria-label=Main]>ul>li:not(:last-child){margin-inline-end:.75rem}#sidebar-content>button,#sidebar-content>div.border-t{display:none}nav#sidebar-content{border-right:0}@media (min-width:1024px){main#content-container{padding-left:3rem!important}}"}],"page":{"pagePath":"api-reference/dialer/request-a-campaign-data-export","slug":"/api-reference/dialer/request-a-campaign-data-export","pageMetadata":{"title":"Request a campaign data export","description":"Queues an asynchronous export of the campaign's call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call.\n\nWhen the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional `filters` narrow the export by contact, agent or date range — omit them to export everything for the campaign.\n\nThe call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key.\n\n`filters.contactId` and `filters.userId` must be positive ids, and `dateFrom` / `dateTo` must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing `dateTo` resolves to the time the job runs, a missing `dateFrom` to the campaign's creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date `2026-W33` that cannot be read, and such a bound returns 422 (`dateFrom must be a parseable ISO 8601 date-time`, or the `dateTo` equivalent) whether or not the other bound is present. Supplying both with a `dateTo` that is not after `dateFrom` returns 422 (`dateTo must be after dateFrom`), and again nothing is enqueued.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /dialer/campaigns/{campaignId}/exports","href":"/api-reference/dialer/request-a-campaign-data-export","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Queues an asynchronous export of the campaign’s call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional \", _jsx(_components.code, {\n children: \"filters\"\n }), \" narrow the export by contact, agent or date range — omit them to export everything for the campaign.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"filters.contactId\"\n }), \" and \", _jsx(_components.code, {\n children: \"filters.userId\"\n }), \" must be positive ids, and \", _jsx(_components.code, {\n children: \"dateFrom\"\n }), \" / \", _jsx(_components.code, {\n children: \"dateTo\"\n }), \" must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing \", _jsx(_components.code, {\n children: \"dateTo\"\n }), \" resolves to the time the job runs, a missing \", _jsx(_components.code, {\n children: \"dateFrom\"\n }), \" to the campaign’s creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date \", _jsx(_components.code, {\n children: \"2026-W33\"\n }), \" that cannot be read, and such a bound returns 422 (\", _jsx(_components.code, {\n children: \"dateFrom must be a parseable ISO 8601 date-time\"\n }), \", or the \", _jsx(_components.code, {\n children: \"dateTo\"\n }), \" equivalent) whether or not the other bound is present. Supplying both with a \", _jsx(_components.code, {\n children: \"dateTo\"\n }), \" that is not after \", _jsx(_components.code, {\n children: \"dateFrom\"\n }), \" returns 422 (\", _jsx(_components.code, {\n children: \"dateTo must be after dateFrom\"\n }), \"), and again nothing is enqueued.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const{Warning}={..._provideComponents(),...props.components};if(!Warning)_missingMdxReference(`Warning`,true);return _jsx(Warning,{children:`The Dialer is a newly released product surface: depending on your account’s rollout stage, campaigns managed through this API may not yet be visible in your CloudTalk Dashboard.`})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Request a campaign data export","description":"Queues an asynchronous export of the campaign's call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call.\n\nWhen the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional `filters` narrow the export by contact, agent or date range — omit them to export everything for the campaign.\n\nThe call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key.\n\n`filters.contactId` and `filters.userId` must be positive ids, and `dateFrom` / `dateTo` must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing `dateTo` resolves to the time the job runs, a missing `dateFrom` to the campaign's creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date `2026-W33` that cannot be read, and such a bound returns 422 (`dateFrom must be a parseable ISO 8601 date-time`, or the `dateTo` equivalent) whether or not the other bound is present. Supplying both with a `dateTo` that is not after `dateFrom` returns 422 (`dateTo must be after dateFrom`), and again nothing is enqueued.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /dialer/campaigns/{campaignId}/exports","href":"/api-reference/dialer/request-a-campaign-data-export","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cloudtalk/3405988015c78c5c/theme-toggle.js"],"openApiReferenceData":{"operation":{"servers":["20cc6ae7-251c-4887-a09b-76a76d8dfc1c"],"tags":["Dialer"],"summary":"Request a campaign data export","description":"Queues an asynchronous export of the campaign's call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call.\n\nWhen the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional `filters` narrow the export by contact, agent or date range — omit them to export everything for the campaign.\n\nThe call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key.\n\n`filters.contactId` and `filters.userId` must be positive ids, and `dateFrom` / `dateTo` must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing `dateTo` resolves to the time the job runs, a missing `dateFrom` to the campaign's creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date `2026-W33` that cannot be read, and such a bound returns 422 (`dateFrom must be a parseable ISO 8601 date-time`, or the `dateTo` equivalent) whether or not the other bound is present. Supplying both with a `dateTo` that is not after `dateFrom` returns 422 (`dateTo must be after dateFrom`), and again nothing is enqueued.","operationId":"publicCreateCampaignExport","x-mint":{"content":"\u003cWarning>The Dialer is a newly released product surface: depending on your account's rollout stage, campaigns managed through this API may not yet be visible in your CloudTalk Dashboard.\u003c/Warning>"},"parameters":["55d989a0-9e8b-4e72-b29f-95785ddabd32"],"requestBody":"a2b5109d-8999-47e1-a79d-8988eeeca51c","responses":{"202":"b557c57d-a3fe-4a93-9e2f-35d1ce90c1b7","400":"8410e540-8695-4056-a919-7ef5f7f42fd0","401":"5db8c74b-f74a-44cd-b4c1-44f29eda0753","404":"257087e0-98a9-4649-a790-68c944df7adb","422":"2e817861-eb93-4e62-8276-b896b8ed760c","429":"b7a46432-f3b3-4c73-91ed-4f8e254aba5a","500":"77a6c767-1b4b-4ef6-885b-04f8235d0403"},"method":"post","type":"path","security":["6d96e362-8e79-44bd-a2f9-bb735965af53"],"path":"/dialer/campaigns/{campaignId}/exports","baseUrlOptions":["https://api.cloudtalk.io/v1"],"title":"Request a campaign data export","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.type":"call_history","body.format":"csv","body.filters.dateFrom":"2026-07-01T00:00:00.000Z","body.filters.dateTo":"2026-08-01T00:00:00.000Z"}]},"dependencies":{"parameters":{"55d989a0-9e8b-4e72-b29f-95785ddabd32":{"name":"campaignId","in":"path","required":true,"description":"Dialer campaign ID.","schema":{"type":"string","pattern":"^[1-9][0-9]*$","isRequired":true,"description":"Dialer campaign ID.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Body of the export enqueue call.","required":["type","format"],"properties":{"type":{"type":"string","description":"What to export. `call_history` exports the campaign's dial log; `survey_responses` exports answers collected by the campaign's survey.","enum":["call_history","survey_responses"],"example":"call_history","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"format":{"type":"string","description":"Serialisation format of the generated file.","enum":["csv","xlsx"],"example":"csv","isRequired":true,"uniqueKey":"format","typeLabel":"enum\u003cstring>"},"filters":{"type":"object","description":"Optional narrowing filters. Omitting the whole object exports everything for the campaign. Supplying only one of `dateFrom` / `dateTo` is valid — a missing end resolves to the time the job runs, a missing start to the campaign's creation.","properties":{"contactId":{"type":"integer","description":"Restrict the export to one contact. Must be a positive id — `0` or a negative value is rejected with 400 (`filters.contactId must not be less than 1` in `subErrors`).","minimum":1,"example":900123,"uniqueKey":"filters.contactId","typeLabel":"integer"},"userId":{"type":"integer","description":"Restrict the export to one agent (user). Must be a positive id — `0` or a negative value is rejected with 400 (`filters.userId must not be less than 1` in `subErrors`).","minimum":1,"example":800001,"uniqueKey":"filters.userId","typeLabel":"integer"},"dateFrom":{"type":"string","description":"Only rows at or after this instant, as an RFC 3339 date-time. The service validates strict ISO 8601, so a calendar-impossible value such as `2026-02-31T00:00:00.000Z` is rejected with 400 rather than rolled forward.","format":"date-time","example":"2026-07-01T00:00:00.000Z","uniqueKey":"filters.dateFrom","typeLabel":"string\u003cdate-time>"},"dateTo":{"type":"string","description":"Only rows at or before this instant, as an RFC 3339 date-time. Validated exactly like `dateFrom`.","format":"date-time","example":"2026-08-01T00:00:00.000Z","uniqueKey":"filters.dateTo","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"filters","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"type":"call_history","format":"csv","filters":{"dateFrom":"2026-07-01T00:00:00.000Z","dateTo":"2026-08-01T00:00:00.000Z"}},"examples":{"Example":{"title":"Example","value":{"type":"call_history","format":"csv","filters":{"dateFrom":"2026-07-01T00:00:00.000Z","dateTo":"2026-08-01T00:00:00.000Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b557c57d-a3fe-4a93-9e2f-35d1ce90c1b7":{"description":"The export job was accepted and queued.","content":{"application/json":{"schema":{"type":"object","description":"Handle for a queued export job. Poll it with the export-status call.","properties":{"jobId":{"type":"string","description":"Export job ID.","format":"uuid","example":"0197fbd1-6d0a-7e58-8f6f-1a2b3c4d5e6f","uniqueKey":"jobId","typeLabel":"string\u003cuuid>"},"status":{"type":"string","description":"Job status at the moment of enqueue.","enum":["queued","running","completed","failed"],"example":"queued","uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"example":{"jobId":"0197fbd1-6d0a-7e58-8f6f-1a2b3c4d5e6f","status":"queued"},"examples":{"Example":{"title":"Example","value":{"jobId":"0197fbd1-6d0a-7e58-8f6f-1a2b3c4d5e6f","status":"queued"}}},"exampleType":"examples"}},"exampleType":"examples"},"8410e540-8695-4056-a919-7ef5f7f42fd0":{"description":"The body is invalid — an id below `1`, a `dateFrom` / `dateTo` that is not strict ISO 8601, a missing `type` or `format`. No job is enqueued.","content":{"application/json":{"schema":{"type":"object","description":"Error envelope returned by every Dialer API endpoint. Note it differs from the legacy API's error format.","properties":{"statusCode":{"type":"integer","description":"HTTP status code","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"HTTP error name","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"correlationId":{"type":"string","description":"Request correlation ID — include it when contacting support","example":"YevPQs","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string"},"subErrors":{"type":"array","items":{"type":"string","uniqueKey":"subErrors.items.[INDEX]","typeLabel":"string"},"description":"Field-level validation messages, present on validation failures","example":["incorrect email"],"uniqueKey":"subErrors","typeLabel":"string[]"}},"required":["statusCode","message","error","correlationId"],"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":400,"message":"Validation error","error":"Bad Request","correlationId":"YevPQs","subErrors":["filters.contactId must not be less than 1"]},"examples":{"Example":{"title":"Example","value":{"statusCode":400,"message":"Validation error","error":"Bad Request","correlationId":"YevPQs","subErrors":["filters.contactId must not be less than 1"]}}},"exampleType":"examples"}},"exampleType":"examples"},"5db8c74b-f74a-44cd-b4c1-44f29eda0753":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","description":"Error envelope returned by the authentication layer in front of the `api.cloudtalk.io/v1` surface. It differs from the per-service error shapes used for other statuses.","properties":{"code":{"type":"string","description":"Error code","example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Error message","example":"You are not authorized to access this resource.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"UNAUTHORIZED","message":"You are not authorized to access this resource."},"examples":{"Example":{"title":"Example","value":{"code":"UNAUTHORIZED","message":"You are not authorized to access this resource."}}},"exampleType":"examples"}},"exampleType":"examples"},"257087e0-98a9-4649-a790-68c944df7adb":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","description":"Error envelope returned by every Dialer API endpoint. Note it differs from the legacy API's error format.","properties":{"statusCode":{"type":"integer","description":"HTTP status code","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"HTTP error name","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"correlationId":{"type":"string","description":"Request correlation ID — include it when contacting support","example":"YevPQs","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string"},"subErrors":{"type":"array","items":{"type":"string","uniqueKey":"subErrors.items.[INDEX]","typeLabel":"string"},"description":"Field-level validation messages, present on validation failures","example":["incorrect email"],"uniqueKey":"subErrors","typeLabel":"string[]"}},"required":["statusCode","message","error","correlationId"],"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":404,"message":"Not Found","error":"Not Found","correlationId":"YevPQs"},"examples":{"Example":{"title":"Example","value":{"statusCode":404,"message":"Not Found","error":"Not Found","correlationId":"YevPQs"}}},"exampleType":"examples"}},"exampleType":"examples"},"2e817861-eb93-4e62-8276-b896b8ed760c":{"description":"The date window cannot be served: `dateTo` is not after `dateFrom` (`dateTo must be after dateFrom`). No job is enqueued. The service also answers 422 for a bound that is valid strict ISO 8601 but lies outside the RFC 3339 `date-time` shape this schema declares and cannot be read as an instant — a week date such as `2026-W33` (`dateFrom must be a parseable ISO 8601 date-time`, or the `dateTo` equivalent). A client that validates against this schema never sends one.","content":{"application/json":{"schema":{"type":"object","description":"Error envelope returned by every Dialer API endpoint. Note it differs from the legacy API's error format.","properties":{"statusCode":{"type":"integer","description":"HTTP status code","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"HTTP error name","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"correlationId":{"type":"string","description":"Request correlation ID — include it when contacting support","example":"YevPQs","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string"},"subErrors":{"type":"array","items":{"type":"string","uniqueKey":"subErrors.items.[INDEX]","typeLabel":"string"},"description":"Field-level validation messages, present on validation failures","example":["incorrect email"],"uniqueKey":"subErrors","typeLabel":"string[]"}},"required":["statusCode","message","error","correlationId"],"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":422,"message":"dateTo must be after dateFrom","error":"Unprocessable Entity","correlationId":"YevPQs"},"examples":{"Example":{"title":"Example","value":{"statusCode":422,"message":"dateTo must be after dateFrom","error":"Unprocessable Entity","correlationId":"YevPQs"}}},"exampleType":"examples"}},"exampleType":"examples"},"b7a46432-f3b3-4c73-91ed-4f8e254aba5a":{"description":"Too many requests","headers":{"X-CloudTalkAPI-Limit":{"description":"Maximum number of API requests allowed in the current time window.","schema":{"type":"integer"}},"X-CloudTalkAPI-Remaining":{"description":"Number of API requests left in the current window.","schema":{"type":"integer"}},"X-CloudTalkAPI-ResetTime":{"description":"Time when the rate-limit window resets, as a Unix timestamp.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","description":"Error envelope returned by every Dialer API endpoint. Note it differs from the legacy API's error format.","properties":{"statusCode":{"type":"integer","description":"HTTP status code","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"HTTP error name","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"correlationId":{"type":"string","description":"Request correlation ID — include it when contacting support","example":"YevPQs","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string"},"subErrors":{"type":"array","items":{"type":"string","uniqueKey":"subErrors.items.[INDEX]","typeLabel":"string"},"description":"Field-level validation messages, present on validation failures","example":["incorrect email"],"uniqueKey":"subErrors","typeLabel":"string[]"}},"required":["statusCode","message","error","correlationId"],"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":429,"message":"Too Many Requests","error":"Too Many Requests","correlationId":"YevPQs"},"examples":{"Example":{"title":"Example","value":{"statusCode":429,"message":"Too Many Requests","error":"Too Many Requests","correlationId":"YevPQs"}}},"exampleType":"examples"}},"exampleType":"examples"},"77a6c767-1b4b-4ef6-885b-04f8235d0403":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","description":"Error envelope returned by every Dialer API endpoint. Note it differs from the legacy API's error format.","properties":{"statusCode":{"type":"integer","description":"HTTP status code","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"string","description":"HTTP error name","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"correlationId":{"type":"string","description":"Request correlation ID — include it when contacting support","example":"YevPQs","isRequired":true,"uniqueKey":"correlationId","typeLabel":"string"},"subErrors":{"type":"array","items":{"type":"string","uniqueKey":"subErrors.items.[INDEX]","typeLabel":"string"},"description":"Field-level validation messages, present on validation failures","example":["incorrect email"],"uniqueKey":"subErrors","typeLabel":"string[]"}},"required":["statusCode","message","error","correlationId"],"uniqueKey":"","typeLabel":"object"},"example":{"statusCode":500,"message":"Internal Server Error","error":"Internal Server Error","correlationId":"YevPQs"},"examples":{"Example":{"title":"Example","value":{"statusCode":500,"message":"Internal Server Error","error":"Internal Server Error","correlationId":"YevPQs"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"6d96e362-8e79-44bd-a2f9-bb735965af53":{"basicAuth":{"type":"http","scheme":"basic","description":"HTTP Basic Authentication. Use your API Access Key ID as the username and your API Access Key Secret as the password. Generate keys in the CloudTalk Dashboard under Account -> Settings -> API Keys (https://dashboard.cloudtalk.io/menu/account/settings/API-keys).","scopes":[],"schemeName":"basicAuth"}}},"servers":{"20cc6ae7-251c-4887-a09b-76a76d8dfc1c":{"url":"https://api.cloudtalk.io/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"basic","description":"HTTP Basic Authentication. Use your API Access Key ID as the username and your API Access Key Secret as the password. Generate keys in the CloudTalk Dashboard under Account -> Settings -> API Keys (https://dashboard.cloudtalk.io/menu/account/settings/API-keys).","scopes":[],"schemeName":"basicAuth"},"schema":{"title":"Basic Auth","type":"object","description":"HTTP Basic Authentication. Use your API Access Key ID as the username and your API Access Key Secret as the password. Generate keys in the CloudTalk Dashboard under Account -> Settings -> API Keys (https://dashboard.cloudtalk.io/menu/account/settings/API-keys).","isRequired":true,"properties":{"username":{"type":"string","uniqueKey":"username","isRequired":true,"typeLabel":"string","deprecated":false},"password":{"type":"string","uniqueKey":"password","isRequired":true,"typeLabel":"string","deprecated":false}},"additionalProperties":false,"deprecated":false},"schemeName":"basicAuth","name":"Authorization"}],"title":"basicAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"cloudtalk","siteName":"CloudTalk Help Center","title":"Request a campaign data export - CloudTalk Help Center","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/dialer/request-a-campaign-data-export","matchLevel":0},"de":{"href":"/de","matchLevel":4},"es":{"href":"/es","matchLevel":4},"fr":{"href":"/fr","matchLevel":4},"nl":{"href":"/nl","matchLevel":4},"pt":{"href":"/pt","matchLevel":4}}},"lastModified":"2026-11-04T13:03:46.234Z","originalFileLocation":"api-reference/dialer/request-a-campaign-data-export.mdx","locale":"en"},"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=\"Queues an asynchronous export of the campaign\u0026#x27;s call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call. When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional filters narrow the export by contact, agent or date range — omit them to export everything for the campaign. The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key. filters.contactId and filters.userId must be positive ids, and dateFrom / dateTo must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing dateTo resolves to the time the job runs, a missing dateFrom to the campaign\u0026#x27;s creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date 2026-W33 that cannot be read, and such a bound returns 422 (dateFrom must be a parseable ISO 8601 date-time, or the dateTo equivalent) whether or not the other bound is present. Supplying both with a dateTo that is not after dateFrom returns 422 (dateTo must be after dateFrom), and again nothing is enqueued.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CloudTalk Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_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/cloudtalk/VvADT62SW6ZfhiGL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Request a campaign data export - CloudTalk Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Queues an asynchronous export of the campaign\u0026#x27;s call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call. When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional filters narrow the export by contact, agent or date range — omit them to export everything for the campaign. The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key. filters.contactId and filters.userId must be positive ids, and dateFrom / dateTo must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing dateTo resolves to the time the job runs, a missing dateFrom to the campaign\u0026#x27;s creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date 2026-W33 that cannot be read, and such a bound returns 422 (dateFrom must be a parseable ISO 8601 date-time, or the dateTo equivalent) whether or not the other bound is present. Supplying both with a dateTo that is not after dateFrom returns 422 (dateTo must be after dateFrom), and again nothing is enqueued.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CloudTalk Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cloudtalk.mintlify.app/_mintlify/api/og/v2?division=Dialer\u0026amp;title=Request+a+campaign+data+export\u0026amp;description=Queues+an+asynchronous+export+of+the+campaign%27s+call+history+or+survey+responses+as+CSV+or+XLSX+and+returns+immediately+with+a+job+handle+%E2%80%94+nothing+is+generated\u0026amp;theme=1e2a8314c967ca8053f46579\u0026amp;signature=718cec8015eb0fe3b4d701fab8640f9bc345789277399d1d18e69145ad94e473\">\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=\"Request a campaign data export - CloudTalk Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Queues an asynchronous export of the campaign\u0026#x27;s call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call. When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional filters narrow the export by contact, agent or date range — omit them to export everything for the campaign. The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key. filters.contactId and filters.userId must be positive ids, and dateFrom / dateTo must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing dateTo resolves to the time the job runs, a missing dateFrom to the campaign\u0026#x27;s creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date 2026-W33 that cannot be read, and such a bound returns 422 (dateFrom must be a parseable ISO 8601 date-time, or the dateTo equivalent) whether or not the other bound is present. Supplying both with a dateTo that is not after dateFrom returns 422 (dateTo must be after dateFrom), and again nothing is enqueued.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cloudtalk.mintlify.app/_mintlify/api/og/v2?division=Dialer\u0026amp;title=Request+a+campaign+data+export\u0026amp;description=Queues+an+asynchronous+export+of+the+campaign%27s+call+history+or+survey+responses+as+CSV+or+XLSX+and+returns+immediately+with+a+job+handle+%E2%80%94+nothing+is+generated\u0026amp;theme=1e2a8314c967ca8053f46579\u0026amp;signature=718cec8015eb0fe3b4d701fab8640f9bc345789277399d1d18e69145ad94e473\">\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/cloudtalk/VvADT62SW6ZfhiGL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CloudTalk Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0527FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/dialer/request-a-campaign-data-export.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.cloudtalk.io/#organization\",\"name\":\"CloudTalk Help Center\",\"url\":\"https://help.cloudtalk.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cloudtalk/M_FX1uE099dO0_78/logo/light.svg?fit=max\u0026auto=format\u0026n=M_FX1uE099dO0_78\u0026q=85\u0026s=9efde0e0ef215d0b41a2f8f92056e144\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.cloudtalk.io#website\",\"name\":\"CloudTalk Help Center\",\"url\":\"https://help.cloudtalk.io\",\"publisher\":{\"@id\":\"https://help.cloudtalk.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export#webpage\",\"url\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export\",\"name\":\"Request a campaign data export\",\"description\":\"Queues an asynchronous export of the campaign's call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call. When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional filters narrow the export by contact, agent or date range — omit them to export everything for the campaign. The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key. filters.contactId and filters.userId must be positive ids, and dateFrom / dateTo must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing dateTo resolves to the time the job runs, a missing dateFrom to the campaign's creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date 2026-W33 that cannot be read, and such a bound returns 422 (dateFrom must be a parseable ISO 8601 date-time, or the dateTo equivalent) whether or not the other bound is present. Supplying both with a dateTo that is not after dateFrom returns 422 (dateTo must be after dateFrom), and again nothing is enqueued.\",\"dateModified\":\"2026-11-04T13:03:46.234Z\",\"isPartOf\":{\"@id\":\"https://help.cloudtalk.io#website\"},\"breadcrumb\":{\"@id\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://help.cloudtalk.io/api-reference/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dialer\",\"item\":\"https://help.cloudtalk.io/api-reference/dialer/list-dialer-campaigns\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Request a campaign data export\",\"item\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export#apireference\",\"headline\":\"Request a campaign data export\",\"name\":\"Request a campaign data export\",\"description\":\"Queues an asynchronous export of the campaign's call history or survey responses as CSV or XLSX and returns immediately with a job handle — nothing is generated during the request. Poll the job with the export-status call. When the job completes, fetch the file through the export-download call, which mints a pre-signed link; the same link is also emailed to the requester. Optional filters narrow the export by contact, agent or date range — omit them to export everything for the campaign. The call is not idempotent: every request enqueues a new job, so a retry after a timeout creates a second export and a second link. There is no deduplication window or idempotency key. filters.contactId and filters.userId must be positive ids, and dateFrom / dateTo must be strict ISO 8601 — anything else is a 400 and no job is enqueued. Supplying only one bound is valid: a missing dateTo resolves to the time the job runs, a missing dateFrom to the campaign's creation. Each bound you do supply must itself be parseable as a date-time — strict ISO 8601 admits forms such as the week date 2026-W33 that cannot be read, and such a bound returns 422 (dateFrom must be a parseable ISO 8601 date-time, or the dateTo equivalent) whether or not the other bound is present. Supplying both with a dateTo that is not after dateFrom returns 422 (dateTo must be after dateFrom), and again nothing is enqueued.\",\"url\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export\",\"mainEntityOfPage\":{\"@id\":\"https://help.cloudtalk.io/api-reference/dialer/request-a-campaign-data-export#webpage\"},\"dateModified\":\"2026-11-04T13:03:46.234Z\",\"publisher\":{\"@id\":\"https://help.cloudtalk.io/#organization\"},\"isPartOf\":{\"@id\":\"https://help.cloudtalk.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CloudTalk Help Center\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CloudTalk Help Center","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Help Center","pages":[{"title":"Help Center","href":"/en"}]},{"tab":"API","groups":[{"group":"Getting Started","pages":[{"title":"CloudTalk Developer Documentation","sidebarTitle":"Home","href":"/developers"},{"title":"CloudTalk REST API: Call Center Automation Platform","sidebarTitle":"Introduction","href":"/guides/introduction"},{"title":"How to Authenticate Requests to the CloudTalk REST API","sidebarTitle":"Authentication","href":"/guides/authentication"},{"title":"Quickstart: Make Your First CloudTalk REST API Call","sidebarTitle":"Quickstart","href":"/guides/quickstart"}]},{"group":"API Concepts","pages":[{"title":"CloudTalk API Response Envelope Formats and Schema","sidebarTitle":"Response Envelopes","href":"/guides/response-envelopes"},{"title":"How to Paginate CloudTalk API Collection Responses","sidebarTitle":"Pagination","href":"/guides/pagination"},{"title":"CloudTalk API Rate Limits, Headers, and Throttling","sidebarTitle":"Rate Limiting","href":"/guides/rate-limiting"},{"title":"CloudTalk API HTTP Error Codes: Causes and Resolutions","sidebarTitle":"Error Codes","href":"/guides/error-codes"}]},{"group":"API Reference","pages":[{"title":"CloudTalk REST API v1.7 — Complete Developer Reference","sidebarTitle":"Overview","href":"/api-reference/overview"},{"group":"CueCard","pages":[{"title":"Create CueCard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /cuecards","href":"/api-reference/cuecard/create-cuecard"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/index.json","href":"/api-reference/agents/list-agents"},{"title":"Add an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /agents/add.json","href":"/api-reference/agents/add-an-agent"},{"title":"Edit an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/edit/{agentId}.json","href":"/api-reference/agents/edit-an-agent"},{"title":"Delete an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/delete/{agentId}.json","href":"/api-reference/agents/delete-an-agent"}]},{"group":"Groups","pages":[{"title":"List groups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /groups/index.json","href":"/api-reference/groups/list-groups"},{"title":"Add agent to group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /groups/add.json","href":"/api-reference/groups/add-agent-to-group"},{"title":"Remove agent from group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /groups/delete/{agent_id}.json","href":"/api-reference/groups/remove-agent-from-group"}]},{"group":"Bulks","pages":[{"title":"Contact actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /bulk/contacts.json","href":"/api-reference/bulks/contact-actions"}]},{"group":"Campaigns","pages":[{"title":"List campaigns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /campaigns/index.json","href":"/api-reference/campaigns/list-campaigns"},{"title":"Add campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /campaigns/add.json","href":"/api-reference/campaigns/add-campaign"},{"title":"Edit campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /campaigns/edit/{id}.json","href":"/api-reference/campaigns/edit-campaign"},{"title":"Delete campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /campaigns/delete/{id}.json","href":"/api-reference/campaigns/delete-campaign"}]},{"group":"Contacts","pages":[{"title":"List contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contacts/index.json","href":"/api-reference/contacts/list-contacts"},{"title":"Add contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /contacts/add.json","href":"/api-reference/contacts/add-contact"},{"title":"Edit contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /contacts/edit/{contactId}.json","href":"/api-reference/contacts/edit-contact"},{"title":"Delete contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /contacts/delete/{contactId}.json","href":"/api-reference/contacts/delete-contact"},{"title":"Inspect a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contacts/show/{contactId}.json","href":"/api-reference/contacts/inspect-a-contact"},{"title":"Attributes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /contacts/attributes.json","href":"/api-reference/contacts/attributes"},{"title":"Assign contact tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /contacts/addTags/{contactId}.json","href":"/api-reference/contacts/assign-contact-tags"},{"title":"Unassign contact tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /contacts/removeTags/{contactId}.json","href":"/api-reference/contacts/unassign-contact-tags"},{"title":"List notes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /notes/index.json","href":"/api-reference/contacts/list-notes"},{"title":"Add note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /notes/add/{contactId}.json","href":"/api-reference/contacts/add-note"},{"title":"Edit note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /notes/edit/{noteId}.json","href":"/api-reference/contacts/edit-note"},{"title":"Delete note","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /notes/delete/{noteId}.json","href":"/api-reference/contacts/delete-note"},{"title":"List activities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /activity/index.json","href":"/api-reference/contacts/list-activities"},{"title":"Add activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /activity/add/{contactId}.json","href":"/api-reference/contacts/add-activity"},{"title":"Edit activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /activity/edit/{activityId}.json","href":"/api-reference/contacts/edit-activity"},{"title":"Delete activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /activity/delete/{activityId}.json","href":"/api-reference/contacts/delete-activity"}]},{"group":"Numbers","pages":[{"title":"List numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /numbers/index.json","href":"/api-reference/numbers/list-numbers"},{"title":"Edit a number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /numbers/edit/{id}.json","href":"/api-reference/numbers/edit-a-number"},{"title":"Unregister a number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /numbers/clear/{id}.json","href":"/api-reference/numbers/unregister-a-number"}]},{"group":"Utilities","pages":[{"title":"List countries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /countries/index.json","href":"/api-reference/utilities/list-countries"},{"title":"List blacklist","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /blacklist/index.json","href":"/api-reference/utilities/list-blacklist"},{"title":"Add number to blacklist","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /blacklist/add.json","href":"/api-reference/utilities/add-number-to-blacklist"},{"title":"Edit number on blacklist","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /blacklist/edit/{id}.json","href":"/api-reference/utilities/edit-number-on-blacklist"},{"title":"Delete number from blacklist","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /blacklist/delete/{id}.json","href":"/api-reference/utilities/delete-number-from-blacklist"}]},{"group":"Sms","pages":[{"title":"Send sms","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sms/send.json","href":"/api-reference/sms/send-sms"}]},{"group":"Calls","pages":[{"title":"Call history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/index.json","href":"/api-reference/calls/call-history"},{"title":"Get call details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/{callId}","href":"/api-reference/calls/get-call-details"},{"title":"Recording media","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /calls/recording/{callId}.json","href":"/api-reference/calls/recording-media"},{"title":"Delete call recording","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /recordings/delete/{callId}.json","href":"/api-reference/calls/delete-call-recording"},{"title":"Make a call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /calls/create.json","href":"/api-reference/calls/make-a-call"},{"title":"Group statistics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /statistics/realtime/groups.json","href":"/api-reference/calls/group-statistics"}]},{"group":"Contact tags","pages":[{"title":"List contact tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /tags/index.json","href":"/api-reference/contact-tags/list-contact-tags"},{"title":"Add a contact tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /tags/add.json","href":"/api-reference/contact-tags/add-a-contact-tag"},{"title":"Edit a contact tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /tags/edit/{id}.json","href":"/api-reference/contact-tags/edit-a-contact-tag"},{"title":"Delete a contact tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /tags/delete/{id}.json","href":"/api-reference/contact-tags/delete-a-contact-tag"}]},{"group":"Conversation Intelligence","pages":[{"title":"Summary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/summary","href":"/api-reference/conversation-intelligence/summary"},{"title":"Overall sentiment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/overall-sentiment","href":"/api-reference/conversation-intelligence/overall-sentiment"},{"title":"Talk-listen ratio","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/talk-listen-ratio","href":"/api-reference/conversation-intelligence/talk-listen-ratio"},{"title":"Topics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/topics","href":"/api-reference/conversation-intelligence/topics"},{"title":"Transcription","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/transcription","href":"/api-reference/conversation-intelligence/transcription"},{"title":"Smart notes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/smart-notes","href":"/api-reference/conversation-intelligence/smart-notes"},{"title":"Call details link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /ai/calls/{callId}/details-link","href":"/api-reference/conversation-intelligence/call-details-link"}]},{"group":"VoiceAgent","pages":[{"title":"Initiate VoiceAgent call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /voice-agent/calls","href":"/api-reference/voiceagent/initiate-voiceagent-call"},{"title":"Stop outbound VoiceAgent calls","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /voice-agent/outbound/kill","href":"/api-reference/voiceagent/stop-outbound-voiceagent-calls"},{"title":"List voice agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /voice-agents","href":"/api-reference/voiceagent/list-voice-agents"},{"title":"Create a voice agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /voice-agents","href":"/api-reference/voiceagent/create-a-voice-agent"},{"title":"Get a voice agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /voice-agents/{voiceAgentId}","href":"/api-reference/voiceagent/get-a-voice-agent"},{"title":"Replace a voice agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /voice-agents/{voiceAgentId}","href":"/api-reference/voiceagent/replace-a-voice-agent"},{"title":"Delete a voice agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /voice-agents/{voiceAgentId}","href":"/api-reference/voiceagent/delete-a-voice-agent"},{"title":"Attach a knowledge base to a voice agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /voice-agents/{voiceAgentId}/knowledge-bases/{knowledgeBaseId}","href":"/api-reference/voiceagent/attach-a-knowledge-base-to-a-voice-agent"},{"title":"Detach a knowledge base from a voice agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /voice-agents/{voiceAgentId}/knowledge-bases/{knowledgeBaseId}","href":"/api-reference/voiceagent/detach-a-knowledge-base-from-a-voice-agent"},{"title":"List knowledge bases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /knowledge-bases","href":"/api-reference/voiceagent/list-knowledge-bases"},{"title":"Create a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /knowledge-bases","href":"/api-reference/voiceagent/create-a-knowledge-base"},{"title":"Upload a knowledge base file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /knowledge-bases/files","href":"/api-reference/voiceagent/upload-a-knowledge-base-file"},{"title":"Delete a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /knowledge-bases/{knowledgeBaseId}","href":"/api-reference/voiceagent/delete-a-knowledge-base"}]},{"group":"Dialer","pages":[{"title":"List dialer campaigns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns","href":"/api-reference/dialer/list-dialer-campaigns"},{"title":"Create a dialer campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /dialer/campaigns","href":"/api-reference/dialer/create-a-dialer-campaign"},{"title":"Get a dialer campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}","href":"/api-reference/dialer/get-a-dialer-campaign"},{"title":"Delete a dialer campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /dialer/campaigns/{campaignId}","href":"/api-reference/dialer/delete-a-dialer-campaign"},{"title":"Update a dialer campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /dialer/campaigns/{campaignId}","href":"/api-reference/dialer/update-a-dialer-campaign"},{"title":"Get a campaign's associations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}/associations","href":"/api-reference/dialer/get-a-campaigns-associations"},{"title":"Replace a campaign's associations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /dialer/campaigns/{campaignId}/associations","href":"/api-reference/dialer/replace-a-campaigns-associations"},{"title":"Get a campaign's disposition buttons","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}/disposition-buttons","href":"/api-reference/dialer/get-a-campaigns-disposition-buttons"},{"title":"Replace a campaign's disposition buttons","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /dialer/campaigns/{campaignId}/disposition-buttons","href":"/api-reference/dialer/replace-a-campaigns-disposition-buttons"},{"title":"List disposition tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/disposition-tags","href":"/api-reference/dialer/list-disposition-tags"},{"title":"Get a campaign's statistics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}/statistics","href":"/api-reference/dialer/get-a-campaigns-statistics"},{"title":"List a campaign's contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}/contacts","href":"/api-reference/dialer/list-a-campaigns-contacts"},{"title":"Peek at the next contacts to be dialed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}/contacts/next","href":"/api-reference/dialer/peek-at-the-next-contacts-to-be-dialed"},{"title":"Get one campaign contact","description":"Returns one campaign membership row, enriched with the contact's current tag names from Contacts. The enrichment is best-effort and fails open: `tags: null` means the tag lookup was unavailable or the contact could not be resolved — it does NOT mean the contact has no tags. A contact that genuinely carries none answers `[]`. A membership belonging to another company or campaign reads as 404.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/campaigns/{campaignId}/contacts/{campaignContactId}","href":"/api-reference/dialer/get-one-campaign-contact"},{"title":"Request a campaign data export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /dialer/campaigns/{campaignId}/exports","href":"/api-reference/dialer/request-a-campaign-data-export"},{"title":"Get an export job's status","description":"Polls an export job by its id. `status` walks `queued` → `running` → `completed` | `failed`, and `progress` gives a coarse hint of how far the runner has got. A job belonging to another company reads as 404.\n\nA `completed` job does not expose the file here — fetch it through the export-download call (a pre-signed link is also emailed to the requester).\n\nA `jobId` that is not a UUID is rejected with 400 before the job is looked up.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/exports/{jobId}","href":"/api-reference/dialer/get-an-export-jobs-status"},{"title":"Get a download link for a completed export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/exports/{jobId}/download","href":"/api-reference/dialer/get-a-download-link-for-a-completed-export"},{"title":"List call scripts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/scripts","href":"/api-reference/dialer/list-call-scripts"},{"title":"Create a call script","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /dialer/scripts","href":"/api-reference/dialer/create-a-call-script"},{"title":"Get a call script","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/scripts/{scriptId}","href":"/api-reference/dialer/get-a-call-script"},{"title":"Archive a call script","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /dialer/scripts/{scriptId}","href":"/api-reference/dialer/archive-a-call-script"},{"title":"Update a call script","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /dialer/scripts/{scriptId}","href":"/api-reference/dialer/update-a-call-script"},{"title":"List surveys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/surveys","href":"/api-reference/dialer/list-surveys"},{"title":"Create a survey","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /dialer/surveys","href":"/api-reference/dialer/create-a-survey"},{"title":"Get a survey","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /dialer/surveys/{surveyId}","href":"/api-reference/dialer/get-a-survey"},{"title":"Rename or archive a survey","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /dialer/surveys/{surveyId}","href":"/api-reference/dialer/rename-or-archive-a-survey"},{"title":"Replace a survey's questions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /dialer/surveys/{surveyId}/questions","href":"/api-reference/dialer/replace-a-surveys-questions"}]},{"group":"Webhooks","pages":[{"title":"List webhook event types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/event-types","href":"/api-reference/webhooks/list-webhook-event-types"},{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/endpoints","href":"/api-reference/webhooks/list-webhook-endpoints"},{"title":"Create a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks/endpoints","href":"/api-reference/webhooks/create-a-webhook-endpoint"},{"title":"Get a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/endpoints/{endpointId}","href":"/api-reference/webhooks/get-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /webhooks/endpoints/{endpointId}","href":"/api-reference/webhooks/delete-a-webhook-endpoint"},{"title":"Update a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /webhooks/endpoints/{endpointId}","href":"/api-reference/webhooks/update-a-webhook-endpoint"},{"title":"Get the signing secret","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/endpoints/{endpointId}/secret","href":"/api-reference/webhooks/get-the-signing-secret"},{"title":"Rotate the signing secret","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks/endpoints/{endpointId}/secret/rotate","href":"/api-reference/webhooks/rotate-the-signing-secret"},{"title":"Send a test event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks/endpoints/{endpointId}/test","href":"/api-reference/webhooks/send-a-test-event"},{"title":"List deliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/endpoints/{endpointId}/deliveries","href":"/api-reference/webhooks/list-deliveries"},{"title":"Get a delivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /webhooks/endpoints/{endpointId}/deliveries/{deliveryId}","href":"/api-reference/webhooks/get-a-delivery"},{"title":"Retry a delivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /webhooks/endpoints/{endpointId}/deliveries/{deliveryId}/retry","href":"/api-reference/webhooks/retry-a-delivery"}]}]}]},{"tab":"Webhooks","pages":[{"title":"Webhooks","href":"/guides/webhooks/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/guides/mcp/overview"}]},{"tab":"What's new","pages":[{"title":"What's new","href":"/changelog"}]}]},{"language":"de","pages":[{"title":"de","href":"/de"}]},{"language":"es","pages":[{"title":"es","href":"/es"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr"}]},{"language":"nl","pages":[{"title":"nl","href":"/nl"}]},{"language":"pt","pages":[{"title":"pt","href":"/pt"}]}]},"basePath":"","title":"Request a campaign data export - CloudTalk Help Center","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}