Generate AI-scripted podcast with 2 hosts using Convo Mode
Starts a background job that creates an AI generated script and produces an audio file in convo mode.
The response contains a job_id that can be used with the /podcast/{job_id} endpoint
to query for status.
Requires a valid X-API-TOKEN header.
Note that generating via Convo Mode yields more natural results but takes longer.
Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure.
Throws:
429 if the user has too many jobs in flight.
400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.
POST
/
podcast
/
convo-mode
/
ai-scripted
Generate AI-scripted podcast with 2 hosts using Convo Mode
A request to start a job that generates an audio file for a podcast in convo mode
with a script generated by AI using the provided prompt.
An optional list of Voice IDs can be provided to control the audio generation output. If no voice_ids are provided,
defaults of up to 2 convo-mode voices will be chosen.
The prompt to instruct the AI to generate the script. You can specify the duration, and include links. Sometimes, the AI hallucinates, so it helps to mention that this podcast has two hosts.
A list of voice_ids to use for the generated audio. Must provide exactly 2 voices for this endpoint. If the script has multiple speakers, we will use the voices from this list in the order they appear in. All ids in this list must be unique. If no IDs are provided, 2 defaults will be used.
An optional spec for adding background music to the generated script. Note that if the chosenmusic track is longer than the duration of the generated script, it will be cut off.
The job ID for the episode generation. The status of this job can be queried using the/podcast/{job_id} endpoint.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Documentation | Wondercraft","colors":{"primary":"#00CF9E","light":"#07C983","dark":"#000423"},"favicon":"https://mintcdn.com/wondercraft/R3Y6ItIGZRaKaLpi/favicon.svg?fit=max\u0026auto=format\u0026n=R3Y6ItIGZRaKaLpi\u0026q=85\u0026s=2398234a8a03e544e54f9c7a8e3d287d","logo":{"light":"https://mintcdn.com/wondercraft/R3Y6ItIGZRaKaLpi/logo/Logo-official.svg?fit=max\u0026auto=format\u0026n=R3Y6ItIGZRaKaLpi\u0026q=85\u0026s=067d1389eb5fb9e5ebab9846b1aa6d38","dark":"https://mintcdn.com/wondercraft/R3Y6ItIGZRaKaLpi/logo/Wondercraft%20white.png?fit=max\u0026auto=format\u0026n=R3Y6ItIGZRaKaLpi\u0026q=85\u0026s=f2d26018bfb7fb1d43e7afc12066925c"},"navbar":{"links":[{"label":"Support","href":"mailto:support@wondercraft.ai"}],"primary":{"type":"button","label":"Go to studio","href":"https://wondercraft.ai/studio"}},"footer":{"socials":{"x":"https://x.com/wondercraft_ai","linkedin":"https://www.linkedin.com/company/wondercraftai"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Help center","href":"https://support.wondercraft.ai/","icon":"book-open-cover"},{"anchor":"Community","href":"https://join.slack.com/t/wondercraft-creatives/shared_invite/zt-2olnne8d3-drRCF_LPGsbmNan6PibNgQ","icon":"slack"},{"anchor":"Blog","href":"https://www.wondercraft.ai/blog","icon":"newspaper"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"wondercraft","hasAudioNarration":false,"actualSubdomain":"wondercraft","customDomains":["docs.wondercraft.ai"],"gitSource":{"type":"github","owner":"wondercraft-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad0d99babbc62bf742c57e1","collectionId":"cdefa226-f24e-4c9c-939a-1a54a619d661","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad0d99babbc62bf742c57e1"},"entitlements":{},"buildId":"6ad0d99babbc62bf742c57e1","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":14},{"language":"default","tag":"Documentation","count":5},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"Endpoint Examples","count":5},{"language":"default","tag":"Image Generation","count":4},{"language":"default","tag":"Video Generation","count":4},{"language":"default","tag":"API Documentation","count":1}]},"assistantConfig":{},"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":"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/endpoint/convo_mode_ai_scripted","slug":"/api-reference/endpoint/convo_mode_ai_scripted","pageMetadata":{"title":"Generate AI-scripted podcast with 2 hosts using Convo Mode","openapi":"POST /podcast/convo-mode/ai-scripted","description":"Starts a background job that creates an AI generated script and produces an audio file in convo mode.\n The response contains a `job_id` that can be used with the `/podcast/{job_id}` endpoint\n to query for status.\n Requires a valid `X-API-TOKEN` header.\n\n\n **Note that generating via Convo Mode yields more natural results but takes longer.\n Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure.**\n\n Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.","href":"/api-reference/endpoint/convo_mode_ai_scripted"},"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 li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Starts a background job that creates an AI generated script and produces an audio file in convo mode.\\nThe response contains a \", _jsx(_components.code, {\n children: \"job_id\"\n }), \" that can be used with the \", _jsx(_components.code, {\n children: \"/podcast/{job_id}\"\n }), \" endpoint\\nto query for status.\\nRequires a valid \", _jsx(_components.code, {\n children: \"X-API-TOKEN\"\n }), \" header.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Note that generating via Convo Mode yields more natural results but takes longer.\\nExpect at least 1 minute of processing per minute duration of audio before investigating a potential failure.\"\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Throws:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"429 if the user has too many jobs in flight.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.\"\n }), \"\\n\"]\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{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":"Generate AI-scripted podcast with 2 hosts using Convo Mode","openapi":"POST /podcast/convo-mode/ai-scripted","description":"Starts a background job that creates an AI generated script and produces an audio file in convo mode.\n The response contains a `job_id` that can be used with the `/podcast/{job_id}` endpoint\n to query for status.\n Requires a valid `X-API-TOKEN` header.\n\n\n **Note that generating via Convo Mode yields more natural results but takes longer.\n Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure.**\n\n Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.","href":"/api-reference/endpoint/convo_mode_ai_scripted"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Podcasts"],"summary":"Generate AI-scripted podcast with 2 hosts using Convo Mode","description":"Starts a background job that creates an AI generated script and produces an audio file in convo mode.\n The response contains a `job_id` that can be used with the `/podcast/{job_id}` endpoint\n to query for status.\n Requires a valid `X-API-TOKEN` header.\n\n\n **Note that generating via Convo Mode yields more natural results but takes longer.\n Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure.**\n\n Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.","operationId":"generate_ai_scripted_convo_mode_episode_podcast_convo_mode_ai_scripted_post","requestBody":"b852ccfb-cc0d-4ed8-a7f2-300aea0bb962","responses":{"200":"88609caa-beba-4bbe-898b-ead9c5ac4f50","422":"972783d8-573d-490b-9189-32fab9850c1f"},"security":["bbf5c227-788e-4856-b518-c1dc3c503360"],"method":"post","type":"path","servers":["e51d48c1-29f5-4ac3-b269-4794aaebd6c7"],"path":"/podcast/convo-mode/ai-scripted","baseUrlOptions":["https://api.wondercraft.ai/v1"],"title":"Generate AI-scripted podcast with 2 hosts using Convo Mode","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"prompt":{"type":"string","title":"Prompt","description":"The prompt to instruct the AI to generate the script. You can specify the duration, and include links. Sometimes, the AI hallucinates, so it helps to mention that this podcast has two hosts.","isRequired":true,"uniqueKey":"prompt","typeLabel":"string"},"voice_ids":{"items":{"type":"string","uniqueKey":"voice_ids.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Voice Ids","description":"A list of voice_ids to use for the generated audio. **Must provide exactly 2 voices for this endpoint.** If the script has multiple speakers, we will use the voices from this list in the order they appear in. All ids in this list must be unique. If no IDs are provided, 2 defaults will be used.","uniqueKey":"voice_ids","typeLabel":"string[]"},"delivery_instructions":{"oneOf":[{"type":"string","title":"Delivery Instructions","description":"An optional delivery instructions for the generated audio. This will be used to guide the generation of the audio.","uniqueKey":"delivery_instructions.oneOf.0","typeLabel":"string"},{"type":"null","title":"Delivery Instructions","description":"An optional delivery instructions for the generated audio. This will be used to guide the generation of the audio.","uniqueKey":"delivery_instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery_instructions","typeLabel":"string | null"},"music_spec":{"oneOf":[{"type":"object","title":"MusicTrackSpec","description":"An optional spec for adding background music to the generated script. Note that if the chosenmusic track is longer than the duration of the generated script, it will be cut off.","required":["music_id"],"properties":{"music_id":{"type":"string","title":"Music Id","description":"The ID of the music track to used in the background. This can be copied from theWondercraft platform","isRequired":true,"uniqueKey":"music_spec.oneOf.0.music_id","typeLabel":"string"},"fade_in_ms":{"type":"integer","title":"Fade In Ms","description":"The number of milliseconds to fade in from the start of the music track","default":0,"uniqueKey":"music_spec.oneOf.0.fade_in_ms","typeLabel":"integer"},"fade_out_ms":{"type":"integer","title":"Fade Out Ms","description":"The number of milliseconds to fade out from the end of the music track","default":0,"uniqueKey":"music_spec.oneOf.0.fade_out_ms","typeLabel":"integer"},"playback_start":{"type":"integer","title":"Playback Start","description":"A millisecond into the music track at which we start playing. Equivalent to trimming thebeginning of the music track. Defaults to 0 (i.e. no trimming)","default":0,"uniqueKey":"music_spec.oneOf.0.playback_start","typeLabel":"integer"},"playback_end":{"oneOf":[{"type":"integer","title":"Playback End","description":"How many milliseconds into the music should we playback. Equivalent to trimming up to this numberof milliseconds from the music track. Defaults to the entire music track.","uniqueKey":"music_spec.oneOf.0.playback_end.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Playback End","description":"How many milliseconds into the music should we playback. Equivalent to trimming up to this numberof milliseconds from the music track. Defaults to the entire music track.","uniqueKey":"music_spec.oneOf.0.playback_end.oneOf.1","typeLabel":"null"}],"uniqueKey":"music_spec.oneOf.0.playback_end","typeLabel":"integer | null"},"volume":{"type":"number","title":"Volume","description":"The volume to apply to the music track. Defaults to 0.05. Must be between 0.0 and 1.0","default":0.05,"uniqueKey":"music_spec.oneOf.0.volume","typeLabel":"number"},"loop":{"type":"boolean","title":"Loop","description":"Whether to loop the music track. Defaults to False.","default":false,"uniqueKey":"music_spec.oneOf.0.loop","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"music_spec.oneOf.0","typeLabel":"MusicTrackSpec · object"},{"type":"null","description":"An optional spec for adding background music to the generated script. Note that if the chosenmusic track is longer than the duration of the generated script, it will be cut off.","uniqueKey":"music_spec.oneOf.1","typeLabel":"null"}],"uniqueKey":"music_spec","typeLabel":"MusicTrackSpec · object | null"}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"GenerateAiScriptedConvoModeEpisodeRequest","description":"A request to start a job that generates an audio file for a podcast in convo mode\nwith a script generated by AI using the provided prompt.\nAn optional list of Voice IDs can be provided to control the audio generation output. If no voice_ids are provided,\ndefaults of up to 2 convo-mode voices will be chosen.","uniqueKey":"","typeLabel":"GenerateAiScriptedConvoModeEpisodeRequest · object"},"examples":{"Example":{"title":"Example","value":{"prompt":"\u003cstring>","voice_ids":["\u003cstring>"],"delivery_instructions":"\u003cstring>","music_spec":{"music_id":"\u003cstring>","fade_in_ms":0,"fade_out_ms":0,"playback_start":0,"playback_end":123,"volume":0.05,"loop":false}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"88609caa-beba-4bbe-898b-ead9c5ac4f50":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"job_id":{"type":"string","format":"uuid","title":"Job Id","description":"The job ID for the episode generation. The status of this job can be queried using the`/podcast/{job_id}` endpoint.","isRequired":true,"uniqueKey":"job_id","typeLabel":"string\u003cuuid>"}},"additionalProperties":false,"type":"object","required":["job_id"],"title":"GenerateEpisodeResponse","uniqueKey":"","typeLabel":"GenerateEpisodeResponse · object"},"examples":{"Example":{"title":"Example","value":{"job_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}}},"exampleType":"generated"}},"exampleType":"generated"},"972783d8-573d-490b-9189-32fab9850c1f":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"bbf5c227-788e-4856-b518-c1dc3c503360":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-KEY","scopes":[],"schemeName":"APIKeyHeader"}}},"servers":{"e51d48c1-29f5-4ac3-b269-4794aaebd6c7":{"url":"https://api.wondercraft.ai/v1","description":"Base Wondercraft API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-KEY","scopes":[],"schemeName":"APIKeyHeader"},"schema":{"title":"X-API-KEY","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyHeader","name":"X-API-KEY"}],"title":"APIKeyHeader"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"wondercraft","siteName":"Documentation | Wondercraft","title":"Generate AI-scripted podcast with 2 hosts using Convo Mode - Documentation | Wondercraft","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-11-21T12:26:28.900Z","originalFileLocation":"api-reference/endpoint/convo_mode_ai_scripted.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=\"Starts a background job that creates an AI generated script and produces an audio file in convo mode. The response contains a job_id that can be used with the /podcast/{job_id} endpoint to query for status. Requires a valid X-API-TOKEN header. Note that generating via Convo Mode yields more natural results but takes longer. Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Documentation | Wondercraft\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_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/wondercraft/C1jolUO84br26PTb/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Generate AI-scripted podcast with 2 hosts using Convo Mode - Documentation | Wondercraft\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts a background job that creates an AI generated script and produces an audio file in convo mode. The response contains a job_id that can be used with the /podcast/{job_id} endpoint to query for status. Requires a valid X-API-TOKEN header. Note that generating via Convo Mode yields more natural results but takes longer. Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Documentation | Wondercraft\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://wondercraft.mintlify.site/_mintlify/api/og/v2?division=Endpoint+Examples\u0026amp;title=Generate+AI-scripted+podcast+with+2+hosts+using+Convo+Mode\u0026amp;description=Starts+a+background+job+that+creates+an+AI+generated+script+and+produces+an+audio+file+in+convo+mode.%0A++++The+response+contains+a+%60job_id%60+that+can+be+used+with\u0026amp;theme=e2dc0bb4abee71691e3c8508\u0026amp;signature=41b098c44458a097d6fb070e0ae3adfacb1599b69fe85fea0bb13a6df9312736\">\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=\"Generate AI-scripted podcast with 2 hosts using Convo Mode - Documentation | Wondercraft\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts a background job that creates an AI generated script and produces an audio file in convo mode. The response contains a job_id that can be used with the /podcast/{job_id} endpoint to query for status. Requires a valid X-API-TOKEN header. Note that generating via Convo Mode yields more natural results but takes longer. Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://wondercraft.mintlify.site/_mintlify/api/og/v2?division=Endpoint+Examples\u0026amp;title=Generate+AI-scripted+podcast+with+2+hosts+using+Convo+Mode\u0026amp;description=Starts+a+background+job+that+creates+an+AI+generated+script+and+produces+an+audio+file+in+convo+mode.%0A++++The+response+contains+a+%60job_id%60+that+can+be+used+with\u0026amp;theme=e2dc0bb4abee71691e3c8508\u0026amp;signature=41b098c44458a097d6fb070e0ae3adfacb1599b69fe85fea0bb13a6df9312736\">\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/wondercraft/C1jolUO84br26PTb/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Documentation | Wondercraft\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00CF9E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/convo_mode_ai_scripted.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.wondercraft.ai/#organization\",\"name\":\"Documentation | Wondercraft\",\"url\":\"https://docs.wondercraft.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/wondercraft/R3Y6ItIGZRaKaLpi/logo/Logo-official.svg?fit=max\u0026auto=format\u0026n=R3Y6ItIGZRaKaLpi\u0026q=85\u0026s=067d1389eb5fb9e5ebab9846b1aa6d38\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.wondercraft.ai#website\",\"name\":\"Documentation | Wondercraft\",\"url\":\"https://docs.wondercraft.ai\",\"publisher\":{\"@id\":\"https://docs.wondercraft.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted#webpage\",\"url\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted\",\"name\":\"Generate AI-scripted podcast with 2 hosts using Convo Mode\",\"description\":\"Starts a background job that creates an AI generated script and produces an audio file in convo mode. The response contains a job_id that can be used with the /podcast/{job_id} endpoint to query for status. Requires a valid X-API-TOKEN header. Note that generating via Convo Mode yields more natural results but takes longer. Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.\",\"dateModified\":\"2025-11-21T12:26:28.900Z\",\"isPartOf\":{\"@id\":\"https://docs.wondercraft.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation | Wondercraft\",\"item\":\"https://docs.wondercraft.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generate AI-scripted podcast with 2 hosts using Convo Mode\",\"item\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted#apireference\",\"headline\":\"Generate AI-scripted podcast with 2 hosts using Convo Mode\",\"name\":\"Generate AI-scripted podcast with 2 hosts using Convo Mode\",\"description\":\"Starts a background job that creates an AI generated script and produces an audio file in convo mode. The response contains a job_id that can be used with the /podcast/{job_id} endpoint to query for status. Requires a valid X-API-TOKEN header. Note that generating via Convo Mode yields more natural results but takes longer. Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.\",\"url\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted\",\"mainEntityOfPage\":{\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted#webpage\"},\"dateModified\":\"2025-11-21T12:26:28.900Z\",\"publisher\":{\"@id\":\"https://docs.wondercraft.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.wondercraft.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Documentation | Wondercraft\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Documentation | Wondercraft","nav":{"global":{"anchors":[{"anchor":"Help center","href":"https://support.wondercraft.ai/","icon":"book-open-cover"},{"anchor":"Community","href":"https://join.slack.com/t/wondercraft-creatives/shared_invite/zt-2olnne8d3-drRCF_LPGsbmNan6PibNgQ","icon":"slack"},{"anchor":"Blog","href":"https://www.wondercraft.ai/blog","icon":"newspaper"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Documentation","pages":[{"title":"Introduction","description":null,"href":"/api-reference/introduction"}]},{"group":"Endpoint Examples","pages":[{"title":"Generate AI-scripted podcast with 2 hosts using Convo Mode","openapi":"POST /podcast/convo-mode/ai-scripted","href":"/api-reference/endpoint/convo_mode_ai_scripted"},{"title":"Generate podcast with 2 hosts using Convo Mode, with a user provided script","openapi":"POST /podcast/convo-mode/user-scripted","description":"Starts a background job to produce an audio file with the provided script segments in convo mode. The response\n contains a `job_id` that can be used to query with the `/podcast/{job_id}` to query for status.\n Requires a valid `X-API-TOKEN` header.\n\n\n **Note that generating via Convo Mode yields more natural results but takes longer.\n Expect at least 1 minute of processing per minute duration of audio before investigating a potential failure.**\n\n\n Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_ids provided are invalid or if the length of voice_ids is not 2.","href":"/api-reference/endpoint/convo_mode_user_scripted"},{"title":"Create any audio content with an AI-generated script","openapi":"POST /podcast","href":"/api-reference/endpoint/generate_podcast"},{"title":"Create any audio content with a user provided script","openapi":"POST /podcast/scripted","href":"/api-reference/endpoint/user_scripted"},{"title":"Get audio content result and status","openapi":"GET /podcast/{job_id}","href":"/api-reference/endpoint/get_job_status"}]},{"group":"Image Generation","pages":[{"title":"List image models","openapi":"GET /image/models","href":"/api-reference/endpoint/list_image_models"},{"title":"Upload a reference image","openapi":"POST /image/upload","href":"/api-reference/endpoint/upload_image"},{"title":"Generate images","openapi":"POST /image","href":"/api-reference/endpoint/generate_image"},{"title":"Get image job status and results","openapi":"GET /image/{job_id}","href":"/api-reference/endpoint/get_image_job"}]},{"group":"Video Generation","pages":[{"title":"List video models","openapi":"GET /video/models","href":"/api-reference/endpoint/list_video_models"},{"title":"Upload a reference or source video","openapi":"POST /video/upload","href":"/api-reference/endpoint/upload_video"},{"title":"Generate a video","openapi":"POST /video","href":"/api-reference/endpoint/generate_video"},{"title":"Get video job status and result","openapi":"GET /video/{job_id}","href":"/api-reference/endpoint/get_video_job"}]}]}]},"basePath":"","title":"Generate AI-scripted podcast with 2 hosts using Convo Mode - Documentation | Wondercraft","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}