Create Podcast
POST https://api.elevenlabs.io/v1/studio/podcasts Content-Type: application/json
Create and auto-convert a podcast project. Currently, the LLM cost is covered by us but you will still be charged for the audio generation. In the future, you will be charged for both the LLM and audio generation costs.
Reference: https://elevenlabs.io/docs/api-reference/studio/create-podcast
Servers
Section titled “Servers”https://api.elevenlabs.io(Production, default)https://api.us.elevenlabs.io(Production US)https://api.eu.residency.elevenlabs.io(Production EU)https://api.in.residency.elevenlabs.io(Production India)https://api.sg.residency.elevenlabs.io(Production Singapore)
Request
Section titled “Request”Headers
Section titled “Headers”safety-identifier(string, optional, nullable) — Used for moderation. Your workspace must be allowlisted to use this feature.
Body (application/json)
Section titled “Body (application/json)”This endpoint expects a Body_Create_podcast_v1_studio_podcasts_post.
model_id(string, required) — The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models.mode(BodyCreatePodcastV1StudioPodcastsPostMode, required) — The type of podcast to generate. Can be 'conversation', an interaction between two voices, or 'bulletin', a monologue.source(BodyCreatePodcastV1StudioPodcastsPostSource, required) — The source content for the Podcast.quality_preset(enum, optional, nullable) — 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.- Allowed values:
standard,high,ultra,ultra_lossless
- Allowed values:
duration_scale(enum, optional, default: default) — 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.- Allowed values:
short,default,long
- Allowed values:
language(string, optional, nullable) — An optional language of the Studio project. Two-letter language code (ISO 639-1).intro(string, optional, nullable) — The intro text that will always be added to the beginning of the podcast.outro(string, optional, nullable) — The outro text that will always be added to the end of the podcast.instructions_prompt(string, optional, nullable) — Additional instructions prompt for the podcast generation used to adjust the podcast's style and tone.highlights(list of string, optional, nullable) — 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(string, optional, nullable) — 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(enum, optional, nullable) — 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.- Allowed values:
auto,on,off,apply_english
- Allowed values:
Response
Section titled “Response”Successful Response
project(ProjectResponseModel, required) — The project associated with the created podcast.
Errors
Section titled “Errors”422 Unprocessable Entity Error
Section titled “422 Unprocessable Entity Error”Validation Error
detail(list of ValidationError, optional)
BodyCreatePodcastV1StudioPodcastsPostMode
Section titled “BodyCreatePodcastV1StudioPodcastsPostMode”The type of podcast to generate. Can be 'conversation', an interaction between two voices, or 'bulletin', a monologue.
BodyCreatePodcastV1StudioPodcastsPostSource
Section titled “BodyCreatePodcastV1StudioPodcastsPostSource”The source content for the Podcast.
ProjectResponseModel
Section titled “ProjectResponseModel”project_id(string, required) — The ID of the project.name(string, required) — The name of the project.create_date_unix(integer, required) — The creation date of the project.created_by_user_id(string, required, nullable) — The user ID who created the project.default_title_voice_ref_id(string, required) — The default title project voice reference ID.default_paragraph_voice_ref_id(string, required) — The default paragraph project voice reference ID.default_model_id(string, required) — The default model ID.can_be_downloaded(boolean, required) — Whether the project can be downloaded.volume_normalization(boolean, required) — Whether the project uses volume normalization.state(enum, required) — The state of the project.- Allowed values:
creating,default,converting,in_queue
- Allowed values:
access_level(enum, required) — The access level of the project.- Allowed values:
admin,editor,commenter,viewer
- Allowed values:
quality_check_on(boolean, required, deprecated) — Whether quality check is enabled for this project.quality_check_on_when_bulk_convert(boolean, required, deprecated) — Whether quality check is enabled on the project when bulk converting.default_title_voice_id(string, required, deprecated) — The default title voice ID.default_paragraph_voice_id(string, required, deprecated) — The default paragraph voice ID.last_conversion_date_unix(integer, optional, nullable) — The last conversion date of the project.title(string, optional, nullable) — The title of the project.author(string, optional, nullable) — The author of the project.description(string, optional, nullable) — The description of the project.genres(list of string, optional, nullable) — List of genres of the project.cover_image_url(string, optional, nullable) — The cover image URL of the project.target_audience(enum, optional, nullable) — The target audience of the project.- Allowed values:
children,young adult,adult,all ages
- Allowed values:
language(string, optional, nullable) — Two-letter language code (ISO 639-1) of the language of the project.content_type(string, optional, nullable) — The content type of the project, e.g. 'Novel' or 'Short Story'original_publication_date(string, optional, nullable) — The original publication date of the project.mature_content(boolean, optional, nullable) — Whether the project contains mature content.isbn_number(string, optional, nullable) — The ISBN number of the project.fiction(enum, optional, nullable) — Whether the project is fiction.- Allowed values:
fiction,non-fiction
- Allowed values:
creation_meta(ProjectCreationMetaResponseModel, optional, nullable) — The creation meta of the project.source_type(enum, optional, nullable) — The source type of the project.- Allowed values:
blank,book,article,genfm,video,screenplay
- Allowed values:
chapters_enabled(boolean, optional, nullable, default: true) — Whether chapters are enabled for the project.captions_enabled(boolean, optional, nullable, default: true) — Whether captions are enabled for the project.caption_style(CaptionStyleModel, optional, nullable) — Global styling to be applied to all captionscaption_style_template_overrides(map from string to CaptionStyleModel, optional, nullable) — Styling changes that have been made to the provided templatespublic_share_id(string, optional, nullable) — The public share ID of the project.aspect_ratio(enum, optional, nullable) — The aspect ratio of the project.- Allowed values:
16:9,9:16,4:5,1:1
- Allowed values:
agent_settings(StudioAgentSettingsModel, optional, nullable) — Agent-related settings for the project
ValidationError
Section titled “ValidationError”loc(list of ValidationErrorLocItems, required)msg(string, required)type(string, required)
PodcastConversationMode
Section titled “PodcastConversationMode”type("conversation", required) — The type of podcast to create.conversation(PodcastConversationModeData, required) — The voice settings for the conversation.
PodcastBulletinMode
Section titled “PodcastBulletinMode”type("bulletin", required) — The type of podcast to create.bulletin(PodcastBulletinModeData, required) — The voice settings for the bulletin.
PodcastTextSource
Section titled “PodcastTextSource”type("text", required) — The type of source to create.text(string, required) — The text to create the podcast from.
PodcastURLSource
Section titled “PodcastURLSource”type("url", required) — The type of source to create.url(string, required) — The URL to create the podcast from.
ProjectCreationMetaResponseModel
Section titled “ProjectCreationMetaResponseModel”creation_progress(double, required) — The progress of the project creation.status(enum, required) — The status of the project creation action.- Allowed values:
draft,pending,creating,finished,failed
- Allowed values:
type(enum, required) — The type of the project creation action.- Allowed values:
blank,generate_podcast,auto_assign_voices,dub_video,import_speech
- Allowed values:
CaptionStyleModel
Section titled “CaptionStyleModel”template(CaptionStyleTemplateModel, optional, nullable)text_font(string, optional, nullable)text_scale(double, optional, nullable)text_color(string, optional, nullable)text_align(enum, optional, nullable)- Allowed values:
start,center,end
- Allowed values:
text_style(enum, optional, nullable)- Allowed values:
normal,italic
- Allowed values:
text_weight(enum, optional, nullable)- Allowed values:
normal,bold,900
- Allowed values:
text_transform(enum, optional, nullable)- Allowed values:
none,uppercase
- Allowed values:
text_blend_mode(enum, optional, nullable)- Allowed values:
normal,difference,multiply
- Allowed values:
text_shadow(StudioTextStyleShadowModel, optional, nullable)text_outline(StudioTextStyleOutlineModel, optional, nullable)background_enabled(boolean, optional, nullable)background_color(string, optional, nullable)background_opacity(double, optional, nullable)background_blur(double, optional, nullable)background_border_radius(double, optional, nullable)word_highlights_enabled(boolean, optional, nullable)word_highlights_color(string, optional, nullable)word_highlights_background_color(string, optional, nullable)word_highlights_opacity(double, optional, nullable)word_highlights_border_radius(double, optional, nullable)word_highlights_blur(double, optional, nullable)section_animation(CaptionStyleSectionAnimationModel, optional, nullable)word_animation(CaptionStyleWordAnimationModel, optional, nullable)character_animation(CaptionStyleCharacterAnimationModel, optional, nullable)cursor_enabled(boolean, optional, nullable)width_pct(double, optional, nullable)horizontal_placement(CaptionStyleHorizontalPlacementModel, optional, nullable)vertical_placement(CaptionStyleVerticalPlacementModel, optional, nullable)auto_break_enabled(boolean, optional, nullable)max_lines_per_section(integer, optional, nullable)max_words_per_line(integer, optional, nullable)
StudioAgentSettingsModel
Section titled “StudioAgentSettingsModel”tool_settings(map from string to StudioAgentToolSettingsModel, optional)
ValidationErrorLocItems
Section titled “ValidationErrorLocItems”PodcastConversationModeData
Section titled “PodcastConversationModeData”host_voice_id(string, required) — The ID of the host voice.guest_voice_id(string, required) — The ID of the guest voice.
PodcastBulletinModeData
Section titled “PodcastBulletinModeData”host_voice_id(string, required) — The ID of the host voice.
CaptionStyleTemplateModel
Section titled “CaptionStyleTemplateModel”key(string, required)label(string, required)requires_high_fps(boolean, optional, default: false)
StudioTextStyleShadowModel
Section titled “StudioTextStyleShadowModel”enabled(boolean, required)color(string, required)opacity(double, required)blur(double, required)offset_x(double, required)offset_y(double, required)
StudioTextStyleOutlineModel
Section titled “StudioTextStyleOutlineModel”enabled(boolean, required)color(string, required)opacity(double, required)width(double, required)
CaptionStyleSectionAnimationModel
Section titled “CaptionStyleSectionAnimationModel”enter_type(enum, required)- Allowed values:
none,fade,scale,pop,slide_up,slide_down,slam,scale_down,slide_in
- Allowed values:
exit_type(enum, required)- Allowed values:
none,fade,scale,pop,slide_up,slide_down,slam,scale_down,slide_in
- Allowed values:
CaptionStyleWordAnimationModel
Section titled “CaptionStyleWordAnimationModel”enter_type(enum, required)- Allowed values:
none,fade,scale,pop,slide_up,slide_down,slam,scale_down,slide_in
- Allowed values:
exit_type(enum, required)- Allowed values:
none,fade,scale,pop,slide_up,slide_down,slam,scale_down,slide_in
- Allowed values:
CaptionStyleCharacterAnimationModel
Section titled “CaptionStyleCharacterAnimationModel”enter_type(enum, required)- Allowed values:
none,fade,typewriter
- Allowed values:
exit_type(enum, required)- Allowed values:
none,fade
- Allowed values:
CaptionStyleHorizontalPlacementModel
Section titled “CaptionStyleHorizontalPlacementModel”align(enum, required)- Allowed values:
left,center,right
- Allowed values:
translate_pct(double, required)
CaptionStyleVerticalPlacementModel
Section titled “CaptionStyleVerticalPlacementModel”align(enum, required)- Allowed values:
top,center,bottom
- Allowed values:
translate_pct(double, required)
StudioAgentToolSettingsModel
Section titled “StudioAgentToolSettingsModel”skip_confirmation(boolean, optional, default: false)
Examples
Section titled “Examples”Request
{
"model_id": "eleven_multilingual_v2",
"mode": {
"conversation": {
"guest_voice_id": "bYTqZQo3Jz7LQtmGTgwi",
"host_voice_id": "6lCwbsX1yVjD49QmpkTR"
},
"type": "conversation"
},
"source": {
"type": "url",
"url": "https://en.wikipedia.org/wiki/Cognitive_science"
}
}Response
{
"project": {
"project_id": "aw1NgEzBg83R7vgmiJt6",
"name": "My Project",
"create_date_unix": 1714204800,
"created_by_user_id": "Vbtgl3bRdj6lk79rYAgx",
"default_title_voice_ref_id": "JBFqnCBsd6RMkjVDRZzb",
"default_paragraph_voice_ref_id": "JBFqnCBsd6RMkjVDRZzb",
"default_model_id": "eleven_multilingual_v2",
"can_be_downloaded": true,
"volume_normalization": true,
"state": "default",
"access_level": "viewer",
"quality_check_on": false,
"quality_check_on_when_bulk_convert": false,
"default_title_voice_id": "JBFqnCBsd6RMkjVDRZzb",
"default_paragraph_voice_id": "JBFqnCBsd6RMkjVDRZzb",
"last_conversion_date_unix": 1714204800,
"title": "My Project",
"author": "John Doe",
"description": "This is a description of my project.",
"genres": [
"Novel",
"Short Story"
],
"cover_image_url": "https://example.com/cover.jpg",
"target_audience": "young adult",
"language": "en",
"content_type": "Novel",
"original_publication_date": "2025-01-01",
"mature_content": false,
"isbn_number": "978-90-274-3964-2",
"fiction": "fiction",
"creation_meta": {
"creation_progress": 0.5,
"status": "pending",
"type": "blank"
},
"public_share_id": "abc123def456789"
}
}SDK Code
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
async function main() {
const client = new ElevenLabsClient();
await client.studio.createPodcast({
modelId: "eleven_multilingual_v2",
mode: {
type: "conversation",
conversation: {
hostVoiceId: "6lCwbsX1yVjD49QmpkTR",
guestVoiceId: "bYTqZQo3Jz7LQtmGTgwi",
},
},
source: {
type: "url",
url: "https://en.wikipedia.org/wiki/Cognitive_science",
},
});
}
main();
from elevenlabs import ElevenLabs, PodcastConversationModeData, PodcastUrlSource
from elevenlabs.studio import BodyCreatePodcastV1StudioPodcastsPostMode_Conversation
client = ElevenLabs()
client.studio.create_podcast(
model_id="eleven_multilingual_v2",
mode=BodyCreatePodcastV1StudioPodcastsPostMode_Conversation(
conversation=PodcastConversationModeData(
host_voice_id="6lCwbsX1yVjD49QmpkTR",
guest_voice_id="bYTqZQo3Jz7LQtmGTgwi",
),
),
source=PodcastUrlSource(
type="url",
url="https://en.wikipedia.org/wiki/Cognitive_science",
),
)
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.elevenlabs.io/v1/studio/podcasts"
payload := strings.NewReader("{\n \"model_id\": \"eleven_multilingual_v2\",\n \"mode\": {\n \"conversation\": {\n \"guest_voice_id\": \"bYTqZQo3Jz7LQtmGTgwi\",\n \"host_voice_id\": \"6lCwbsX1yVjD49QmpkTR\"\n },\n \"type\": \"conversation\"\n },\n \"source\": {\n \"type\": \"url\",\n \"url\": \"https://en.wikipedia.org/wiki/Cognitive_science\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.elevenlabs.io/v1/studio/podcasts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"model_id\": \"eleven_multilingual_v2\",\n \"mode\": {\n \"conversation\": {\n \"guest_voice_id\": \"bYTqZQo3Jz7LQtmGTgwi\",\n \"host_voice_id\": \"6lCwbsX1yVjD49QmpkTR\"\n },\n \"type\": \"conversation\"\n },\n \"source\": {\n \"type\": \"url\",\n \"url\": \"https://en.wikipedia.org/wiki/Cognitive_science\"\n }\n}"
response = http.request(request)
puts response.read_bodyimport com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/studio/podcasts")
.header("Content-Type", "application/json")
.body("{\n \"model_id\": \"eleven_multilingual_v2\",\n \"mode\": {\n \"conversation\": {\n \"guest_voice_id\": \"bYTqZQo3Jz7LQtmGTgwi\",\n \"host_voice_id\": \"6lCwbsX1yVjD49QmpkTR\"\n },\n \"type\": \"conversation\"\n },\n \"source\": {\n \"type\": \"url\",\n \"url\": \"https://en.wikipedia.org/wiki/Cognitive_science\"\n }\n}")
.asString();<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.elevenlabs.io/v1/studio/podcasts', [
'body' => '{
"model_id": "eleven_multilingual_v2",
"mode": {
"conversation": {
"guest_voice_id": "bYTqZQo3Jz7LQtmGTgwi",
"host_voice_id": "6lCwbsX1yVjD49QmpkTR"
},
"type": "conversation"
},
"source": {
"type": "url",
"url": "https://en.wikipedia.org/wiki/Cognitive_science"
}
}',
'headers' => [
'Content-Type' => 'application/json',
],
]);
echo $response->getBody();using RestSharp;
var client = new RestClient("https://api.elevenlabs.io/v1/studio/podcasts");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n \"model_id\": \"eleven_multilingual_v2\",\n \"mode\": {\n \"conversation\": {\n \"guest_voice_id\": \"bYTqZQo3Jz7LQtmGTgwi\",\n \"host_voice_id\": \"6lCwbsX1yVjD49QmpkTR\"\n },\n \"type\": \"conversation\"\n },\n \"source\": {\n \"type\": \"url\",\n \"url\": \"https://en.wikipedia.org/wiki/Cognitive_science\"\n }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);import Foundation
let headers = ["Content-Type": "application/json"]
let parameters = [
"model_id": "eleven_multilingual_v2",
"mode": [
"conversation": [
"guest_voice_id": "bYTqZQo3Jz7LQtmGTgwi",
"host_voice_id": "6lCwbsX1yVjD49QmpkTR"
],
"type": "conversation"
],
"source": [
"type": "url",
"url": "https://en.wikipedia.org/wiki/Cognitive_science"
]
] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/studio/podcasts")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()