> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Skapa podcast

POST https://api.elevenlabs.io/v1/studio/podcasts
Content-Type: application/json

Skapa och autokonvertera ett podcastprojekt. För närvarande står vi för LLM-kostnaden, men du debiteras fortfarande för ljudgenereringen. I framtiden kommer du att debiteras för både LLM- och ljudgenereringskostnaderna.

Reference: https://elevenlabs.io/docs/api-reference/studio/create-podcast

## 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

### Headers

- `safety-identifier` (string, optional, nullable) — Används för moderering. Din arbetsyta måste vara godkänd för att använda den här funktionen.

### Body (application/json)

This endpoint expects a Body_Create_podcast_v1_studio_podcasts_post.

- `model_id` (string, required) — ID:t för modellen som ska användas för detta Studio-projekt. Du kan anropa GET /v1/models för att lista alla tillgängliga modeller.
- `mode` (BodyCreatePodcastV1StudioPodcastsPostMode, required) — Typen av podcast som ska genereras. Kan vara 'conversation', en interaktion mellan två röster, eller 'bulletin', en monolog.
- `source` (BodyCreatePodcastV1StudioPodcastsPostSource, required) — Källinnehållet för podcasten.
- `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`
- `duration_scale` (enum, optional, default: default) — Längd på den genererade podcasten. Måste vara ett av följande: short – ger podcaster kortare än 3 minuter. default – ger podcaster på ungefär 3–7 minuter. long – ger podcaster längre än 7 minuter.
  - Allowed values: `short`, `default`, `long`
- `language` (string, optional, nullable) — Ett valfritt språk för Studio-projektet. Språkkod med två bokstäver (ISO 639-1).
- `intro` (string, optional, nullable) — Introduktionstexten som alltid läggs till i början av podcasten.
- `outro` (string, optional, nullable) — Avslutningstexten som alltid läggs till i slutet av podcasten.
- `instructions_prompt` (string, optional, nullable) — Ytterligare instruktionsprompt för podcastgenereringen som används för att justera podcastens stil och ton.
- `highlights` (list of string, optional, nullable) — En kort sammanfattning av eller höjdpunkter från Studio-projektets innehåll, med viktiga punkter eller teman. Den ska vara mellan 10 och 70 tecken.
- `callback_url` (string, optional, nullable) — En URL som vår tjänst anropar när Studio-projektet har konverterats. Begäran innehåller ett JSON-objekt med konverteringens status. Meddelanden: 1. När projektet har konverterats: \{ 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. När projektkonverteringen misslyckades: \{ 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. När kapitlet har konverterats: \{ 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. När kapitelkonverteringen misslyckades: \{ 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) — Den här parametern styr textnormalisering med fyra lägen: 'auto', 'on', 'apply_english' och 'off'. När den är inställd på 'auto' avgör systemet automatiskt om textnormalisering ska tillämpas (t.ex. att skriva ut tal). Med 'on' tillämpas textnormalisering alltid, medan den hoppas över med 'off'. 'apply_english' är samma som 'on', men förutsätter att texten är på engelska.
  - Allowed values: `auto`, `on`, `off`, `apply_english`

## Response

### 200

Lyckat svar

- `project` (ProjectResponseModel, required) — Projektet som är kopplat till den skapade podcasten.

## Errors

### 422 Unprocessable Entity Error

Valideringsfel

- `detail` (list of ValidationError, optional)

## Types

### BodyCreatePodcastV1StudioPodcastsPostMode

Typen av podcast som ska genereras. Kan vara 'conversation', en interaktion mellan två röster, eller 'bulletin', en monolog.

### BodyCreatePodcastV1StudioPodcastsPostSource

Källinnehållet för podcasten.

### ProjectResponseModel

- `project_id` (string, required) — ID:t för projektet.
- `name` (string, required) — Projektets namn.
- `create_date_unix` (integer, required) — Projektets skapandedatum.
- `created_by_user_id` (string, required, nullable) — Användar-ID:t för personen som skapade projektet.
- `default_title_voice_ref_id` (string, required) — Standardreferens-ID:t för projektrösten i titlar.
- `default_paragraph_voice_ref_id` (string, required) — Standardreferens-ID:t för projektrösten i stycken.
- `default_model_id` (string, required) — Standardmodellens ID.
- `can_be_downloaded` (boolean, required) — Om projektet kan laddas ned.
- `volume_normalization` (boolean, required) — Om projektet använder volymnormalisering.
- `state` (enum, required) — Projektets tillstånd.
  - Allowed values: `creating`, `default`, `converting`, `in_queue`
- `access_level` (enum, required) — Projektets åtkomstnivå.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `quality_check_on` (boolean, required, deprecated) — Om kvalitetskontroll är aktiverad för det här projektet.
- `quality_check_on_when_bulk_convert` (boolean, required, deprecated) — Om kvalitetskontroll är aktiverad för projektet vid masskonvertering.
- `default_title_voice_id` (string, required, deprecated) — Standardröst-ID:t för titlar.
- `default_paragraph_voice_id` (string, required, deprecated) — Standardröst-ID:t för stycken.
- `last_conversion_date_unix` (integer, optional, nullable) — Datumet för den senaste konverteringen av projektet.
- `title` (string, optional, nullable) — Projektets titel.
- `author` (string, optional, nullable) — Projektets författare.
- `description` (string, optional, nullable) — Beskrivningen av projektet.
- `genres` (list of string, optional, nullable) — Lista över projektets genrer.
- `cover_image_url` (string, optional, nullable) — URL:en till projektets omslagsbild.
- `target_audience` (enum, optional, nullable) — Projektets målgrupp.
  - Allowed values: `children`, `young adult`, `adult`, `all ages`
- `language` (string, optional, nullable) — Tvåställig språkkod (ISO 639-1) för projektets språk.
- `content_type` (string, optional, nullable) — Projektets innehållstyp, till exempel 'Novel' eller 'Short Story'
- `original_publication_date` (string, optional, nullable) — Projektets ursprungliga publiceringsdatum.
- `mature_content` (boolean, optional, nullable) — Om projektet innehåller vuxeninnehåll.
- `isbn_number` (string, optional, nullable) — Projektets ISBN-nummer.
- `fiction` (enum, optional, nullable) — Om projektet är fiktion.
  - Allowed values: `fiction`, `non-fiction`
- `creation_meta` (ProjectCreationMetaResponseModel, optional, nullable) — Projektets metadata för skapande.
- `source_type` (enum, optional, nullable) — Projektets källtyp.
  - Allowed values: `blank`, `book`, `article`, `genfm`, `video`, `screenplay`
- `chapters_enabled` (boolean, optional, nullable, default: true) — Om kapitel är aktiverade för projektet.
- `captions_enabled` (boolean, optional, nullable, default: true) — Om bildtexter är aktiverade för projektet.
- `caption_style` (CaptionStyleModel, optional, nullable) — Global formatering som ska tillämpas på alla undertexter
- `caption_style_template_overrides` (map from string to CaptionStyleModel, optional, nullable) — Stiländringar som har gjorts i de angivna mallarna
- `public_share_id` (string, optional, nullable) — Projektets offentliga delnings-ID.
- `aspect_ratio` (enum, optional, nullable) — Projektets bildförhållande.
  - Allowed values: `16:9`, `9:16`, `4:5`, `1:1`
- `agent_settings` (StudioAgentSettingsModel, optional, nullable) — Agentrelaterade inställningar för projektet

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### PodcastConversationMode

- `type` ("conversation", required) — Typen av podcast som ska skapas.
- `conversation` (PodcastConversationModeData, required) — Röstinställningarna för samtalet.

### PodcastBulletinMode

- `type` ("bulletin", required) — Typen av podcast som ska skapas.
- `bulletin` (PodcastBulletinModeData, required) — Röstinställningarna för bulletinen.

### PodcastTextSource

- `type` ("text", required) — Typen av källa som ska skapas.
- `text` (string, required) — Texten som podcasten ska skapas från.

### PodcastURLSource

- `type` ("url", required) — Typen av källa som ska skapas.
- `url` (string, required) — Webbadressen som podcasten ska skapas från.

### ProjectCreationMetaResponseModel

- `creation_progress` (double, required) — Förloppet för att skapa projektet.
- `status` (enum, required) — Statusen för åtgärden att skapa projektet.
  - Allowed values: `draft`, `pending`, `creating`, `finished`, `failed`
- `type` (enum, required) — Typen av åtgärd för att skapa projekt.
  - Allowed values: `blank`, `generate_podcast`, `auto_assign_voices`, `dub_video`, `import_speech`

### 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`
- `text_style` (enum, optional, nullable)
  - Allowed values: `normal`, `italic`
- `text_weight` (enum, optional, nullable)
  - Allowed values: `normal`, `bold`, `900`
- `text_transform` (enum, optional, nullable)
  - Allowed values: `none`, `uppercase`
- `text_blend_mode` (enum, optional, nullable)
  - Allowed values: `normal`, `difference`, `multiply`
- `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

- `tool_settings` (map from string to StudioAgentToolSettingsModel, optional)

### ValidationErrorLocItems

### PodcastConversationModeData

- `host_voice_id` (string, required) — ID:t för värdrösten.
- `guest_voice_id` (string, required) — ID:t för gästrollen.

### PodcastBulletinModeData

- `host_voice_id` (string, required) — ID:t för värdrösten.

### CaptionStyleTemplateModel

- `key` (string, required)
- `label` (string, required)
- `requires_high_fps` (boolean, optional, default: false)

### StudioTextStyleShadowModel

- `enabled` (boolean, required)
- `color` (string, required)
- `opacity` (double, required)
- `blur` (double, required)
- `offset_x` (double, required)
- `offset_y` (double, required)

### StudioTextStyleOutlineModel

- `enabled` (boolean, required)
- `color` (string, required)
- `opacity` (double, required)
- `width` (double, required)

### CaptionStyleSectionAnimationModel

- `enter_type` (enum, required)
  - Allowed values: `none`, `fade`, `scale`, `pop`, `slide_up`, `slide_down`, `slam`, `scale_down`, `slide_in`
- `exit_type` (enum, required)
  - Allowed values: `none`, `fade`, `scale`, `pop`, `slide_up`, `slide_down`, `slam`, `scale_down`, `slide_in`

### CaptionStyleWordAnimationModel

- `enter_type` (enum, required)
  - Allowed values: `none`, `fade`, `scale`, `pop`, `slide_up`, `slide_down`, `slam`, `scale_down`, `slide_in`
- `exit_type` (enum, required)
  - Allowed values: `none`, `fade`, `scale`, `pop`, `slide_up`, `slide_down`, `slam`, `scale_down`, `slide_in`

### CaptionStyleCharacterAnimationModel

- `enter_type` (enum, required)
  - Allowed values: `none`, `fade`, `typewriter`
- `exit_type` (enum, required)
  - Allowed values: `none`, `fade`

### CaptionStyleHorizontalPlacementModel

- `align` (enum, required)
  - Allowed values: `left`, `center`, `right`
- `translate_pct` (double, required)

### CaptionStyleVerticalPlacementModel

- `align` (enum, required)
  - Allowed values: `top`, `center`, `bottom`
- `translate_pct` (double, required)

### StudioAgentToolSettingsModel

- `skip_confirmation` (boolean, optional, default: false)

## Examples

**Request**

```json
{
  "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**

```json
{
  "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**

```python
import requests

url = "https://api.elevenlabs.io/v1/studio/podcasts"

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

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/studio/podcasts';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  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"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
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))

}
```

```ruby
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_body
```

```java
import 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
<?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();
```

```csharp
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);
```

```swift
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()
```