v5

OpenAPI 3.1.02026-08-043621,4011.8 MB
studio

Create Podcast

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.

post/v1/studio/podcasts

Headers

safety-identifierstring nullable

Used for moderation. Your workspace must be allowlisted to use this feature.

Used for moderation. Your workspace must be allowlisted to use this feature.

xi-api-keystring nullable

Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

Request body

model_idstring required

The ID of the model to be used for this Studio project, you can query GET /v1/models to list all available models.

quality_preset'standard' | 'high' | 'ultra' | 'ultra_lossless'
duration_scale'short' | 'default' | 'long'

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.

languagestring nullable

An optional language of the Studio project. Two-letter language code (ISO 639-1).

introstring nullable

The intro text that will always be added to the beginning of the podcast.

outrostring nullable

The outro text that will always be added to the end of the podcast.

instructions_promptstring nullable

Additional instructions prompt for the podcast generation used to adjust the podcast's style and tone.

highlightsstring[] 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_urlstring 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'auto' | 'on' | 'off' | 'apply_english' 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.

Example request

{
  "model_id": "eleven_multilingual_v2",
  "mode": {
    "conversation": {
      "guest_voice_id": "aw1NgEzBg83R7vgmiJt7",
      "host_voice_id": "aw1NgEzBg83R7vgmiJt6"
    },
    "type": "conversation"
  },
  "source": {
    "text": "This is a test podcast.",
    "type": "text"
  },
  "duration_scale": "short",
  "language": "en",
  "intro": "Welcome to the podcast.",
  "outro": "Thank you for listening!",
  "instructions_prompt": "Ensure the podcast remains factual, accurate and appropriate for all audiences.",
  "highlights": [
    "Emphasize the importance of AI on education"
  ]
}

Response

Successful Response

Example response

{
  "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
  }
}