Create any audio content with a user provided script
Starts a background job to produce an audio file with the provided script segments. The response
contains a job_id that can be used to query with the /podcast/{job_id} to query for status.
Requires a valid X-API-TOKEN header.
Throws:
429 if the user has too many jobs in flight.
400 if any voice_id or music_id provided is invalid
POST
/
podcast
/
scripted
Create any audio content with a user provided script
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":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/user_scripted","slug":"/api-reference/endpoint/user_scripted","pageMetadata":{"title":"Create any audio content with a user provided script","openapi":"POST /podcast/scripted","description":"Starts a background job to produce an audio file with the provided script segments. 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 Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_id or music_id provided is invalid","href":"/api-reference/endpoint/user_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 ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Starts a background job to produce an audio file with the provided script segments. The response\\ncontains a \", _jsx(_components.code, {\n children: \"job_id\"\n }), \" that can be used to query with the \", _jsx(_components.code, {\n children: \"/podcast/{job_id}\"\n }), \" to query for status.\\nRequires a valid \", _jsx(_components.code, {\n children: \"X-API-TOKEN\"\n }), \" header.\"]\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_id or music_id provided is invalid\"\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":"Create any audio content with a user provided script","openapi":"POST /podcast/scripted","description":"Starts a background job to produce an audio file with the provided script segments. 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 Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_id or music_id provided is invalid","href":"/api-reference/endpoint/user_scripted"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Podcasts"],"summary":"Create any audio content with a user provided script","description":"Starts a background job to produce an audio file with the provided script segments. 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 Throws:\n - 429 if the user has too many jobs in flight.\n - 400 if any voice_id or music_id provided is invalid","operationId":"generate_user_scripted_episode_podcast_scripted_post","requestBody":"b5eb8a5f-dd4f-48a8-b166-7a4b6e366e1d","responses":{"200":"d4d8d096-2d49-4663-8396-2eda81938836","422":"540a9285-6084-4b97-a221-90854d01c85e"},"security":["1fd65b9f-9fee-4fb0-9331-607f74d44d98"],"method":"post","type":"path","servers":["e51d48c1-29f5-4ac3-b269-4794aaebd6c7"],"path":"/podcast/scripted","baseUrlOptions":["https://api.wondercraft.ai/v1"],"title":"Create any audio content with a user provided script","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"script":{"items":{"properties":{"text":{"type":"string","title":"Text","description":"The text to be spoken for this part of the dialogue","isRequired":true,"uniqueKey":"script.items.[INDEX].text","typeLabel":"string"},"voice_id":{"type":"string","title":"Voice Id","description":"A unique identifier for the voice copied from the Wondercraft Platform to use for the speaker of this segment.","isRequired":true,"uniqueKey":"script.items.[INDEX].voice_id","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["text","voice_id"],"title":"ScriptSegment","description":"A single unit of speech in the script defined by the user.","uniqueKey":"script.items.[INDEX]","typeLabel":"ScriptSegment · object"},"type":"array","title":"Script","description":"The segments forming the script for the episode","isRequired":true,"uniqueKey":"script","typeLabel":"ScriptSegment · object[]"},"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":["script"],"title":"GenerateUserScriptedEpisodeRequest","description":"A request to start a job to generate audio content with a provided script.","uniqueKey":"","typeLabel":"GenerateUserScriptedEpisodeRequest · object"},"examples":{"Example":{"title":"Example","value":{"script":[{"text":"\u003cstring>","voice_id":"\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":{"d4d8d096-2d49-4663-8396-2eda81938836":{"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"},"540a9285-6084-4b97-a221-90854d01c85e":{"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":{"1fd65b9f-9fee-4fb0-9331-607f74d44d98":{"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":"Create any audio content with a user provided script - Documentation | Wondercraft","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-11-21T12:26:28.903Z","originalFileLocation":"api-reference/endpoint/user_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 to produce an audio file with the provided script segments. The response contains a job_id that can be used to query with the /podcast/{job_id} to query for status. Requires a valid X-API-TOKEN header. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_id or music_id provided is invalid\">\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=\"Create any audio content with a user provided script - Documentation | Wondercraft\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts a background job to produce an audio file with the provided script segments. The response contains a job_id that can be used to query with the /podcast/{job_id} to query for status. Requires a valid X-API-TOKEN header. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_id or music_id provided is invalid\">\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/user_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=Create+any+audio+content+with+a+user+provided+script\u0026amp;description=Starts+a+background+job+to+produce+an+audio+file+with+the+provided+script+segments.+The+response%0A++++contains+a+%60job_id%60+that+can+be+used+to+query+with+the+%60%2Fpo\u0026amp;theme=e2dc0bb4abee71691e3c8508\u0026amp;signature=fadab6f636a91778d2f9796492ba3da524fb67f948799863006a66ff401d8bf2\">\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=\"Create any audio content with a user provided script - Documentation | Wondercraft\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts a background job to produce an audio file with the provided script segments. The response contains a job_id that can be used to query with the /podcast/{job_id} to query for status. Requires a valid X-API-TOKEN header. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_id or music_id provided is invalid\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://wondercraft.mintlify.site/_mintlify/api/og/v2?division=Endpoint+Examples\u0026amp;title=Create+any+audio+content+with+a+user+provided+script\u0026amp;description=Starts+a+background+job+to+produce+an+audio+file+with+the+provided+script+segments.+The+response%0A++++contains+a+%60job_id%60+that+can+be+used+to+query+with+the+%60%2Fpo\u0026amp;theme=e2dc0bb4abee71691e3c8508\u0026amp;signature=fadab6f636a91778d2f9796492ba3da524fb67f948799863006a66ff401d8bf2\">\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/user_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/user_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/user_scripted#webpage\",\"url\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted\",\"name\":\"Create any audio content with a user provided script\",\"description\":\"Starts a background job to produce an audio file with the provided script segments. The response contains a job_id that can be used to query with the /podcast/{job_id} to query for status. Requires a valid X-API-TOKEN header. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_id or music_id provided is invalid\",\"dateModified\":\"2025-11-21T12:26:28.903Z\",\"isPartOf\":{\"@id\":\"https://docs.wondercraft.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoint Examples\",\"item\":\"https://docs.wondercraft.ai/api-reference/endpoint/convo_mode_ai_scripted\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create any audio content with a user provided script\",\"item\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted#apireference\",\"headline\":\"Create any audio content with a user provided script\",\"name\":\"Create any audio content with a user provided script\",\"description\":\"Starts a background job to produce an audio file with the provided script segments. The response contains a job_id that can be used to query with the /podcast/{job_id} to query for status. Requires a valid X-API-TOKEN header. Throws: - 429 if the user has too many jobs in flight. - 400 if any voice_id or music_id provided is invalid\",\"url\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted\",\"mainEntityOfPage\":{\"@id\":\"https://docs.wondercraft.ai/api-reference/endpoint/user_scripted#webpage\"},\"dateModified\":\"2025-11-21T12:26:28.903Z\",\"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","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","href":"/api-reference/endpoint/convo_mode_user_scripted"},{"title":"Create any audio content with an AI-generated script","openapi":"POST /podcast","description":"Starts a background job that creates an AI generated script and produces an audio file.\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 Throws:\n - 429 if the user has too many jobs in flight.\n - 422 if provided voice_ids are not unique\n - 400 if any voice_ids or music_ids provided are invalid","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}","description":"Gets the status of podcast generation job, including a link to download it if the job was\n successful. Requires a valid `X-API-TOKEN` header.\n\n\n The link returned expires after 24 hours.\n Feel free to call this endpoint again to get a fresh link, no need to regenerate the podcast\n and waste credits.\n\n Throws\n - 404 if job_id is invalid","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":"Create any audio content with a user provided script - 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"]}