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

# Studio-Projekt erstellen

POST https://api.elevenlabs.io/v1/studio/projects
Content-Type: multipart/form-data

Erstellt ein neues Studio-Projekt. Es kann leer, aus einem Dokument oder aus einer URL initialisiert werden.

Reference: https://elevenlabs.io/docs/api-reference/studio/add-project

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

### Body (multipart/form-data)

This endpoint expects a multipart form containing an optional file.

- `name` (string, required) — Der Name des Studio-Projekts, nur zur Identifizierung.
- `default_title_voice_id` (string, optional) — Die voice_id der Standardstimme für neue Titel.
- `default_paragraph_voice_id` (string, optional) — Die voice_id der Standardstimme für neue Absätze.
- `default_model_id` (string, optional) — Die ID des für dieses Studio-Projekt zu verwendenden Modells. Über GET /v1/models können Sie alle verfügbaren Modelle auflisten.
- `from_url` (string, optional) — Eine optionale URL, aus der wir Inhalte extrahieren, um das Studio-Projekt zu initialisieren. Wenn dies festgelegt ist, müssen 'from_url' und 'from_content' null sein. Wenn weder 'from_url', 'from_document' noch 'from_content' angegeben sind, initialisieren wir das Studio-Projekt leer.
- `from_document` (file, optional) — Optional kann eine .epub-, .pdf-, .txt- oder ähnliche Datei bereitgestellt werden. Wenn sie bereitgestellt wird, initialisieren wir das Studio-Projekt mit ihrem Inhalt. Wenn dies festgelegt ist, müssen 'from_url' und 'from_content' null sein. Wenn weder 'from_url', 'from_document' noch 'from_content' angegeben sind, initialisieren wir das Studio-Projekt leer.
- `from_content_json` (string, optional) — Optionaler Inhalt zur Initialisierung des Studio-Projekts. Wenn dieser festgelegt ist, müssen 'from\_url' und 'from\_document' null sein. Wenn 'from\_url', 'from\_document' und 'from\_content' nicht angegeben werden, initialisieren wir das Studio-Projekt leer. Beispiel: \[\{"name": "Chapter A", "blocks": \[\{"sub\_type": "p", "nodes": \[\{"voice\_id": "6lCwbsX1yVjD49QmpkT0", "text": "A", "type": "tts\_node"}, \{"voice\_id": "6lCwbsX1yVjD49QmpkT1", "text": "B", "type": "tts\_node"}]}, \{"sub\_type": "h1", "nodes": \[\{"voice\_id": "6lCwbsX1yVjD49QmpkT0", "text": "C", "type": "tts\_node"}, \{"voice\_id": "6lCwbsX1yVjD49QmpkT1", "text": "D", "type": "tts\_node"}]}]}, \{"name": "Chapter B", "blocks": \[\{"sub\_type": "p", "nodes": \[\{"voice\_id": "6lCwbsX1yVjD49QmpkT0", "text": "E", "type": "tts\_node"}, \{"voice\_id": "6lCwbsX1yVjD49QmpkT1", "text": "F", "type": "tts\_node"}]}, \{"sub\_type": "h2", "nodes": \[\{"voice\_id": "6lCwbsX1yVjD49QmpkT0", "text": "G", "type": "tts\_node"}, \{"voice\_id": "6lCwbsX1yVjD49QmpkT1", "text": "H", "type": "tts\_node"}]}]}]
- `quality_preset` (enum, optional) — 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.
- `title` (string, optional) — Ein optionaler Name des Autors des Studio-Projekts. Er wird beim Download des Studio-Projekts oder Kapitels als Metadaten zur MP3-Datei hinzugefügt.
- `author` (string, optional) — Ein optionaler Name des Autors des Studio-Projekts. Er wird beim Download des Studio-Projekts oder Kapitels als Metadaten zur MP3-Datei hinzugefügt.
- `description` (string, optional) — Eine optionale Beschreibung des Studio-Projekts.
- `genres` (list of string, optional) — Eine optionale Liste von Genres, die dem Studio-Projekt zugeordnet sind.
- `target_audience` (enum, optional) — Eine optionale Zielgruppe des Studio-Projekts.
- `language` (string, optional) — Eine optionale Sprache des Studio-Projekts. Zweistelliger Sprachcode (ISO 639-1).
- `content_type` (string, optional) — Ein optionaler Inhaltstyp des Studio-Projekts.
- `original_publication_date` (string, optional) — Ein optionales ursprüngliches Veröffentlichungsdatum des Studio-Projekts im Format YYYY-MM-DD oder YYYY.
- `mature_content` (boolean, optional) — Eine optionale Angabe, ob dieses Studio-Projekt Inhalte für Erwachsene enthält.
- `isbn_number` (string, optional) — Eine optionale ISBN-Nummer des zu erstellenden Studio-Projekts. Sie wird beim Download des Studio-Projekts oder Kapitels als Metadaten zur MP3-Datei hinzugefügt.
- `acx_volume_normalization` (boolean, optional) — [Deprecated] Ob das zurückgegebene Audio beim Herunterladen des Studio-Projekts nachbearbeitet werden soll, damit es die Anforderungen an die normalisierte Lautstärke von Hörbüchern erfüllt.
- `volume_normalization` (boolean, optional) — Gibt an, ob das zurückgegebene Audio beim Herunterladen des Studio-Projekts nachbearbeitet werden soll, damit es die Anforderungen an die Lautstärkenormalisierung für Hörbücher erfüllt.
- `pronunciation_dictionary_locators` (list of string, optional) — Eine als Liste von JSON-Strings codierte Liste von Aussprachewörterbuch-Referenzen (pronunciation\_dictionary\_id, version\_id), die auf den Text angewendet werden. Eine Liste JSON-codierter Strings ist erforderlich, da Projekte über formData statt über jsonBody hinzugefügt werden können. Um mehrere Wörterbücher anzugeben, verwenden Sie mehrere --form-Zeilen in Ihrem curl, etwa --form 'pronunciation\_dictionary\_locators="\{"pronunciation\_dictionary\_id":"Vmd4Zor6fplcA7WrINey","version\_id":"hRPaxjlTdR7wFMhV4w0b"}"' --form 'pronunciation\_dictionary\_locators="\{"pronunciation\_dictionary\_id":"JzWtcGQMJ6bnlWwyMo7e","version\_id":"lbmwxiLu4q6txYxgdZqn"}"'.
- `callback_url` (string, optional) — Eine URL, die von unserem Dienst aufgerufen wird, wenn das Studio-Projekt konvertiert wird. Die Anfrage enthält ein JSON-Objekt mit dem Status der Konvertierung. Nachrichten: 1. Wenn das Projekt erfolgreich konvertiert wurde: \{ 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. Wenn die Projektkonvertierung fehlgeschlagen ist: \{ type: "project\_conversion\_status", event\_timestamp: 1234567890, data: \{ request\_id: "1234567890", project\_id: "21m00Tcm4TlvDq8ikWAM", conversion\_status: "error", project\_snapshot\_id: None, error\_details: "Fehlerdetails bei fehlgeschlagener Konvertierung" } } 3. Wenn das Kapitel erfolgreich konvertiert wurde: \{ 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. Wenn die Kapitelkonvertierung fehlgeschlagen ist: \{ 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: "Fehlerdetails bei fehlgeschlagener Konvertierung" } }
- `fiction` (enum, optional) — Eine optionale Angabe, ob der Inhalt dieses Studio-Projekts fiktional ist.
- `apply_text_normalization` (enum, optional) — Dieser Parameter steuert die Textnormalisierung mit vier Modi: 'auto', 'on', 'apply_english' und 'off'. Bei 'auto' entscheidet das System automatisch, ob die Textnormalisierung angewendet wird (z. B. das Ausschreiben von Zahlen). Mit 'on' wird die Textnormalisierung immer angewendet, mit 'off' wird sie übersprungen. 'apply_english' entspricht 'on', setzt jedoch englischen Text voraus.
- `auto_convert` (boolean, optional) — Ob das Studio-Projekt automatisch in Audio konvertiert werden soll.
- `auto_assign_voices` (boolean, optional) — [Alpha Feature] Ob Phrasen beim Erstellen eines Projekts automatisch Stimmen zugewiesen werden sollen.
- `source_type` (enum, optional) — Der Typ des zu erstellenden Studio-Projekts.
- `voice_settings` (list of string, optional) — Optionale Überschreibungen der Stimmeinstellungen für das Projekt, kodiert als Liste von JSON-Strings. Beispiel: \["\{"voice\_id": "21m00Tcm4TlvDq8ikWAM", "stability": 0.7, "similarity\_boost": 0.8, "style": 0.5, "speed": 1.0, "use\_speaker\_boost": true}"]
- `create_publishing_read` (boolean, optional) — Wenn true, wird ein entsprechender Beitrag zur direkten Veröffentlichung im Entwurfsstatus erstellt.

## Response

### 200

Erfolgreiche Antwort

- `project` (ProjectResponseModel, required)

## Errors

### 422 Unprocessable Entity Error

Validierungsfehler

- `detail` (list of ValidationError, optional)

## Types

### ProjectResponseModel

- `project_id` (string, required) — Die ID des Projekts.
- `name` (string, required) — Der Name des Projekts.
- `create_date_unix` (integer, required) — Das Erstellungsdatum des Projekts.
- `created_by_user_id` (string, required, nullable) — Die Nutzer-ID der Person, die das Projekt erstellt hat.
- `default_title_voice_ref_id` (string, required) — Die Standard-Referenz-ID der Projektstimme für Titel.
- `default_paragraph_voice_ref_id` (string, required) — Die Standard-Referenz-ID der Projektstimme für Absätze.
- `default_model_id` (string, required) — Die Standard-Modell-ID.
- `can_be_downloaded` (boolean, required) — Gibt an, ob das Projekt heruntergeladen werden kann.
- `volume_normalization` (boolean, required) — Gibt an, ob das Projekt Lautstärkenormalisierung verwendet.
- `state` (enum, required) — Der Status des Projekts.
  - Allowed values: `creating`, `default`, `converting`, `in_queue`
- `access_level` (enum, required) — Die Zugriffsebene des Projekts.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `quality_check_on` (boolean, required, deprecated) — Gibt an, ob die Qualitätsprüfung für dieses Projekt aktiviert ist.
- `quality_check_on_when_bulk_convert` (boolean, required, deprecated) — Gibt an, ob die Qualitätsprüfung beim Projekt während der Massenkonvertierung aktiviert ist.
- `default_title_voice_id` (string, required, deprecated) — Die Standard-Stimm-ID für Titel.
- `default_paragraph_voice_id` (string, required, deprecated) — Die Standard-Stimm-ID für Absätze.
- `last_conversion_date_unix` (integer, optional, nullable) — Das Datum der letzten Konvertierung des Projekts.
- `title` (string, optional, nullable) — Der Titel des Projekts.
- `author` (string, optional, nullable) — Der Autor des Projekts.
- `description` (string, optional, nullable) — Die Beschreibung des Projekts.
- `genres` (list of string, optional, nullable) — Liste der Genres des Projekts.
- `cover_image_url` (string, optional, nullable) — Die URL des Titelbilds des Projekts.
- `target_audience` (enum, optional, nullable) — Die Zielgruppe des Projekts.
  - Allowed values: `children`, `young adult`, `adult`, `all ages`
- `language` (string, optional, nullable) — Zweibuchstabiger Sprachcode (ISO 639-1) der Projektsprache.
- `content_type` (string, optional, nullable) — Der Inhaltstyp des Projekts, z. B. „Roman“ oder „Kurzgeschichte“
- `original_publication_date` (string, optional, nullable) — Das ursprüngliche Veröffentlichungsdatum des Projekts.
- `mature_content` (boolean, optional, nullable) — Gibt an, ob das Projekt Inhalte für Erwachsene enthält.
- `isbn_number` (string, optional, nullable) — Die ISBN-Nummer des Projekts.
- `fiction` (enum, optional, nullable) — Gibt an, ob das Projekt fiktional ist.
  - Allowed values: `fiction`, `non-fiction`
- `creation_meta` (ProjectCreationMetaResponseModel, optional, nullable) — Die Erstellungsmetadaten des Projekts.
- `source_type` (enum, optional, nullable) — Der Quelltyp des Projekts.
  - Allowed values: `blank`, `book`, `article`, `genfm`, `video`, `screenplay`
- `chapters_enabled` (boolean, optional, nullable, default: true) — Gibt an, ob Kapitel für das Projekt aktiviert sind.
- `captions_enabled` (boolean, optional, nullable, default: true) — Gibt an, ob Untertitel für das Projekt aktiviert sind.
- `caption_style` (CaptionStyleModel, optional, nullable) — Globales Styling für alle Untertitel
- `caption_style_template_overrides` (map from string to CaptionStyleModel, optional, nullable) — Stiländerungen an den bereitgestellten Vorlagen
- `public_share_id` (string, optional, nullable) — Die öffentliche Freigabe-ID des Projekts.
- `aspect_ratio` (enum, optional, nullable) — Das Seitenverhältnis des Projekts.
  - Allowed values: `16:9`, `9:16`, `4:5`, `1:1`
- `agent_settings` (StudioAgentSettingsModel, optional, nullable) — Agent-bezogene Einstellungen für das Projekt

### ValidationError

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

### ProjectCreationMetaResponseModel

- `creation_progress` (double, required) — Der Fortschritt der Projekterstellung.
- `status` (enum, required) — Der Status der Projekterstellung.
  - Allowed values: `draft`, `pending`, `creating`, `finished`, `failed`
- `type` (enum, required) — Der Typ der Aktion zur Projekterstellung.
  - 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

### 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
{
  "from_document": "<file: <file1>>",
  "name": "Project 1"
}
```

**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/projects"

files = { "from_document": "open('<file1>', 'rb')" }
payload = {
    "acx_volume_normalization": ,
    "apply_text_normalization": ,
    "author": ,
    "auto_assign_voices": ,
    "auto_convert": ,
    "callback_url": ,
    "content_type": ,
    "create_publishing_read": ,
    "default_model_id": ,
    "default_paragraph_voice_id": ,
    "default_title_voice_id": ,
    "description": ,
    "fiction": ,
    "from_content_json": ,
    "from_url": ,
    "genres": ,
    "isbn_number": ,
    "language": ,
    "mature_content": ,
    "name": "Project 1",
    "original_publication_date": ,
    "pronunciation_dictionary_locators": ,
    "quality_preset": ,
    "source_type": ,
    "target_audience": ,
    "title": ,
    "voice_settings": ,
    "volume_normalization": 
}

response = requests.post(url, data=payload, files=files)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/studio/projects';
const form = new FormData();
form.append('acx_volume_normalization', '');
form.append('apply_text_normalization', '');
form.append('author', '');
form.append('auto_assign_voices', '');
form.append('auto_convert', '');
form.append('callback_url', '');
form.append('content_type', '');
form.append('create_publishing_read', '');
form.append('default_model_id', '');
form.append('default_paragraph_voice_id', '');
form.append('default_title_voice_id', '');
form.append('description', '');
form.append('fiction', '');
form.append('from_content_json', '');
form.append('from_document', '<file1>');
form.append('from_url', '');
form.append('genres', '');
form.append('isbn_number', '');
form.append('language', '');
form.append('mature_content', '');
form.append('name', 'Project 1');
form.append('original_publication_date', '');
form.append('pronunciation_dictionary_locators', '');
form.append('quality_preset', '');
form.append('source_type', '');
form.append('target_audience', '');
form.append('title', '');
form.append('voice_settings', '');
form.append('volume_normalization', '');

const options = {method: 'POST'};

options.body = form;

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/projects"

	payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"acx_volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"apply_text_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"author\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_assign_voices\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_convert\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"callback_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"content_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"create_publishing_read\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_model_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_paragraph_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_title_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiction\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_content_json\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_document\"; filename=\"<file1>\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"genres\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"isbn_number\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mature_content\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nProject 1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"original_publication_date\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pronunciation_dictionary_locators\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality_preset\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"source_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"target_audience\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"voice_settings\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001--\r\n")

	req, _ := http.NewRequest("POST", url, payload)

	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/projects")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"acx_volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"apply_text_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"author\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_assign_voices\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_convert\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"callback_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"content_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"create_publishing_read\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_model_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_paragraph_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_title_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiction\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_content_json\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_document\"; filename=\"<file1>\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"genres\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"isbn_number\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mature_content\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nProject 1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"original_publication_date\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pronunciation_dictionary_locators\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality_preset\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"source_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"target_audience\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"voice_settings\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001--\r\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/projects")
  .body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"acx_volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"apply_text_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"author\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_assign_voices\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_convert\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"callback_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"content_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"create_publishing_read\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_model_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_paragraph_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_title_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiction\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_content_json\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_document\"; filename=\"<file1>\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"genres\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"isbn_number\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mature_content\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nProject 1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"original_publication_date\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pronunciation_dictionary_locators\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality_preset\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"source_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"target_audience\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"voice_settings\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001--\r\n")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/studio/projects', [
  'multipart' => [
    [
        'name' => 'from_document',
        'filename' => '<file1>',
        'contents' => null
    ],
    [
        'name' => 'name',
        'contents' => 'Project 1'
    ]
  ]
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/studio/projects");
var request = new RestRequest(Method.POST);
request.AddParameter("undefined", "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"acx_volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"apply_text_normalization\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"author\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_assign_voices\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"auto_convert\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"callback_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"content_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"create_publishing_read\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_model_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_paragraph_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"default_title_voice_id\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fiction\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_content_json\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_document\"; filename=\"<file1>\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"from_url\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"genres\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"isbn_number\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"mature_content\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nProject 1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"original_publication_date\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pronunciation_dictionary_locators\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quality_preset\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"source_type\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"target_audience\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"voice_settings\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"volume_normalization\"\r\n\r\n\r\n-----011000010111000001101001--\r\n", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation
let parameters = [
  [
    "name": "acx_volume_normalization",
    "value": 
  ],
  [
    "name": "apply_text_normalization",
    "value": 
  ],
  [
    "name": "author",
    "value": 
  ],
  [
    "name": "auto_assign_voices",
    "value": 
  ],
  [
    "name": "auto_convert",
    "value": 
  ],
  [
    "name": "callback_url",
    "value": 
  ],
  [
    "name": "content_type",
    "value": 
  ],
  [
    "name": "create_publishing_read",
    "value": 
  ],
  [
    "name": "default_model_id",
    "value": 
  ],
  [
    "name": "default_paragraph_voice_id",
    "value": 
  ],
  [
    "name": "default_title_voice_id",
    "value": 
  ],
  [
    "name": "description",
    "value": 
  ],
  [
    "name": "fiction",
    "value": 
  ],
  [
    "name": "from_content_json",
    "value": 
  ],
  [
    "name": "from_document",
    "fileName": "<file1>"
  ],
  [
    "name": "from_url",
    "value": 
  ],
  [
    "name": "genres",
    "value": 
  ],
  [
    "name": "isbn_number",
    "value": 
  ],
  [
    "name": "language",
    "value": 
  ],
  [
    "name": "mature_content",
    "value": 
  ],
  [
    "name": "name",
    "value": "Project 1"
  ],
  [
    "name": "original_publication_date",
    "value": 
  ],
  [
    "name": "pronunciation_dictionary_locators",
    "value": 
  ],
  [
    "name": "quality_preset",
    "value": 
  ],
  [
    "name": "source_type",
    "value": 
  ],
  [
    "name": "target_audience",
    "value": 
  ],
  [
    "name": "title",
    "value": 
  ],
  [
    "name": "voice_settings",
    "value": 
  ],
  [
    "name": "volume_normalization",
    "value": 
  ]
]

let boundary = "---011000010111000001101001"

var body = ""
var error: NSError? = nil
for param in parameters {
  let paramName = param["name"]!
  body += "--\(boundary)\r\n"
  body += "Content-Disposition:form-data; name=\"\(paramName)\""
  if let filename = param["fileName"] {
    let contentType = param["content-type"]!
    let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)
    if (error != nil) {
      print(error as Any)
    }
    body += "; filename=\"\(filename)\"\r\n"
    body += "Content-Type: \(contentType)\r\n\r\n"
    body += fileContent
  } else if let paramValue = param["value"] {
    body += "\r\n\r\n\(paramValue)"
  }
}

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/studio/projects")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```