POST
/v1/studio/podcasts
ElevenLabs APICreate Podcast
- Base URL
- https://api.elevenlabs.io
- Auth
- xi-api-key: <ELEVENLABS_API_KEY>
- Last verified
- 2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 223 tokens · Vary: Accept
→ 223 tokens · Vary: Accept
Critical gotchas
Authentication uses the non-standard xi-api-key header, not Authorization: Bearer. Sending a Bearer token returns HTTP 401.
Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (--output speech.mp3) rather than parsing it.
cURL
curl -X POST 'https://api.elevenlabs.io/v1/studio/podcasts' \ -H "xi-api-key: $ELEVENLABS_API_KEY" \ -H 'Content-Type: application/json' \ -H 'safety-identifier: string' \ -d '{ "model_id": "string", "mode": { "conversation": { "guest_voice_id": "aw1NgEzBg83R7vgmiJt7", "host_voice_id": "aw1NgEzBg83R7vgmiJt6" }, "type": "conversation" }, "source": { "text": "This is a test podcast.", "type": "text" }, "quality_preset": "standard", "duration_scale": "default", "language": "string", "intro": "string", "outro": "string", "instructions_prompt": "string", "highlights": [ "string" ], "callback_url": "string", "apply_text_normalization": "auto"}'Get a free ElevenLabs API key → sponsored
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| model_id | body | string | Yes | The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models. |
| mode | body | object | Yes | The type of podcast to generate. Can be 'conversation', an interaction between two voices, or 'bulletin', a monologue. |
| source | body | object | Yes | The source content for the Podcast. |
| quality_preset | body | string | No | Output quality of the generated audio. Must be one of: 'standard' - standard output format, 128kbps with 44.1kHz sample rate. 'high' - high quality output format, 192kbps with 44.1kHz sample rate and major improvements on our side. 'ultra' - ultra quality output format, 192kbps with 44.1kHz sample rate and highest improvements on our side. 'ultra_lossless' - ultra quality output format, 705.6kbps with 44.1kHz sample rate and highest improvements on our side in a fully lossless format. If not provided, defaults to the highest quality preset available on your subscription tier. |
| duration_scale | body | string | No | Duration of the generated podcast. Must be one of: short - produces podcasts shorter than 3 minutes. default - produces podcasts roughly between 3-7 minutes. long - produces podcasts longer than 7 minutes. |
| language | body | string | No | An optional language of the Studio project. Two-letter language code (ISO 639-1). |
| intro | body | string | No | The intro text that will always be added to the beginning of the podcast. |
| outro | body | string | No | The outro text that will always be added to the end of the podcast. |
| instructions_prompt | body | string | No | Additional instructions prompt for the podcast generation used to adjust the podcast's style and tone. |
| highlights | body | string[] | No | A brief summary or highlights of the Studio project's content, providing key points or themes. This should be between 10 and 70 characters. |
| callback_url | body | string | No | A url that will be called by our service when the Studio project is converted. Request will contain a json blob containing the status of the conversion Messages: 1. When project was converted successfully: { type: "project_conversion_status", event_timestamp: 1234567890, data: { request_id: "1234567890", project_id: "21m00Tcm4TlvDq8ikWAM", conversion_status: "success", project_snapshot_id: "22m00Tcm4TlvDq8ikMAT", error_details: None, } } 2. When project conversion failed: { type: "project_conversion_status", event_timestamp: 1234567890, data: { request_id: "1234567890", project_id: "21m00Tcm4TlvDq8ikWAM", conversion_status: "error", project_snapshot_id: None, error_details: "Error details if conversion failed" } } 3. When chapter was converted successfully: { type: "chapter_conversion_status", event_timestamp: 1234567890, data: { request_id: "1234567890", project_id: "21m00Tcm4TlvDq8ikWAM", chapter_id: "22m00Tcm4TlvDq8ikMAT", conversion_status: "success", chapter_snapshot_id: "23m00Tcm4TlvDq8ikMAV", error_details: None, } } 4. When chapter conversion failed: { type: "chapter_conversion_status", event_timestamp: 1234567890, data: { request_id: "1234567890", project_id: "21m00Tcm4TlvDq8ikWAM", chapter_id: "22m00Tcm4TlvDq8ikMAT", conversion_status: "error", chapter_snapshot_id: None, error_details: "Error details if conversion failed" } } |
| apply_text_normalization | body | string | No | This parameter controls text normalization with four modes: 'auto', 'on', 'apply_english' and 'off'. When set to 'auto', the system will automatically decide whether to apply text normalization (e.g., spelling out numbers). With 'on', text normalization will always be applied, while with 'off', it will be skipped. 'apply_english' is the same as 'on' but will assume that text is in English. |
Response 200 OK
{
"project": {
"access_level": "viewer",
"author": "John Doe",
"can_be_downloaded": true,
"content_type": "Novel",
"cover_image_url": "https://example.com/cover.jpg",
"create_date_unix": 1714204800,
"created_by_user_id": "Vbtgl3bRdj6lk79rYAgx",
"creation_meta": {
"creation_progress": 0.5,
"status": "pending",
"type": "blank"
},
"default_model_id": "eleven_multilingual_v2",
"default_paragraph_voice_id": "JBFqnCBsd6RMkjVDRZzb",
"default_paragraph_voice_ref_id": "JBFqnCBsd6RMkjVDRZzb",
"default_title_voice_id": "JBFqnCBsd6RMkjVDRZzb",
"default_title_voice_ref_id": "JBFqnCBsd6RMkjVDRZzb",
"description": "This is a description of my project.",
"fiction": "fiction",
"genres": [
"Novel",
"Short Story"
],
"isbn_number": "978-90-274-3964-2",
"language": "en",
"last_conversion_date_unix": 1714204800,
"mature_content": false,
"name": "My Project",
"original_publication_date": "2025-01-01",
"project_id": "aw1NgEzBg83R7vgmiJt6",
"public_share_id": "abc123def456789",
"quality_check_on": false,
"quality_check_on_when_bulk_convert": false,
"state": "default",
"target_audience": "young adult",
"title": "My Project",
"volume_normalization": true
}
}