# ElevenLabs — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orth.sh/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

AI-powered voice, speech, music, and audio generation platform. Text-to-speech, speech-to-text, voice cloning, sound effects, music composition, audio isolation, dubbing, and more.

**Verified:** no

## Access

**Run API:** `POST https://api.orth.sh/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Audio Isolation

Isolate vocals/speech from background audio in an audio file.

`POST /v1/audio-isolation`

**Estimated cost:** $0.15

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `audio` | string | Yes | Audio file to isolate vocals from (multipart) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/audio-isolation","body":{"audio":"<string>"}}'
```

### Audio Isolation Stream

Isolate vocals/speech from background audio and stream the result.

`POST /v1/audio-isolation/stream`

**Estimated cost:** $0.15

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `audio` | string | Yes | Audio file to isolate vocals from (multipart) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/audio-isolation/stream","body":{"audio":"<string>"}}'
```

### List Voices

List all available voices for the authenticated account.

`GET /v1/voices`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `show_legacy` | boolean | No | Include legacy voices in the response |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/voices","method":"GET","query":{"show_legacy":"<boolean>"}}'
```

### Get Voice

Get detailed information about a specific voice by ID.

`GET /v1/voices/{voice_id}`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `with_settings` | boolean | No | Include voice settings in the response |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/voices/{voice_id}","method":"GET","query":{"with_settings":"<boolean>"}}'
```

### Get Models

List all available ElevenLabs models and their capabilities.

`GET /v1/models`

**Cost:** Free

_No parameters required._

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/models","method":"GET"}'
```

### Text To Dialogue

Generate multi-voice dialogue audio from text inputs with different voice IDs.

`POST /v1/text-to-dialogue`

**Estimated cost:** $0.1

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `inputs` | array | Yes | List of dialogue inputs, each with text and voice_id |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `settings` | object | No | Settings controlling dialogue generation |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-dialogue","query":{"output_format":"<string>"},"body":{"inputs":"<array>","model_id":"<string>","language_code":"<string>","settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

### Text To Dialogue Streaming

Stream multi-voice dialogue audio in real-time.

`POST /v1/text-to-dialogue/stream`

**Estimated cost:** $0.1

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `inputs` | array | Yes | List of dialogue inputs, each with text and voice_id |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `settings` | object | No | Settings controlling dialogue generation |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-dialogue/stream","query":{"output_format":"<string>"},"body":{"inputs":"<array>","model_id":"<string>","language_code":"<string>","settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

### Find Similar Voices

Search the voice library for voices similar to a provided audio sample.

`POST /v1/similar-voices`

**Estimated cost:** $0.02

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `audio_file` | string | No | Audio file for similarity matching (multipart) |
| `similarity_threshold` | number | No | Similarity threshold (0-2, higher = stricter) |
| `top_k` | integer | No | Number of similar voices to return |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/similar-voices","body":{"audio_file":"<string>","similarity_threshold":"<number>","top_k":"<integer>"}}'
```

### Sound Generation

Generate sound effects from a text description.

`POST /v1/sound-generation`

**Estimated cost:** $0.15

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `text` | string | Yes | Text description of the sound effect to generate |
| `loop` | boolean | No | Create a smoothly looping sound effect |
| `duration_seconds` | number | No | Duration in seconds (minimum 0.5) |
| `prompt_influence` | number | No | How closely generation follows the prompt (higher = closer) |
| `model_id` | string | No | Model ID for sound generation |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/sound-generation","query":{"output_format":"<string>"},"body":{"text":"<string>","loop":"<boolean>","duration_seconds":"<number>","prompt_influence":"<number>","model_id":"<string>"}}'
```

### Text To Speech Streaming

Convert text to speech and stream the audio back in real-time.

`POST /v1/text-to-speech/{voice_id}/stream`

**Estimated cost:** $0.08

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `text` | string | Yes | The text to convert into speech |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `voice_settings` | object | No | Voice settings overrides |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format (mp3_44100_128, pcm_16000, etc.) |
| `enable_logging` | boolean | No | Enable request logging |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-speech/{voice_id}/stream","query":{"output_format":"<string>","enable_logging":"<boolean>"},"body":{"text":"<string>","model_id":"<string>","language_code":"<string>","voice_settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

### Text To Speech With Timestamps

Convert text to speech and receive audio with word-level timestamps.

`POST /v1/text-to-speech/{voice_id}/with-timestamps`

**Estimated cost:** $0.08

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `text` | string | Yes | The text to convert into speech |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `voice_settings` | object | No | Voice settings overrides |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format |
| `enable_logging` | boolean | No | Enable request logging |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-speech/{voice_id}/with-timestamps","query":{"output_format":"<string>","enable_logging":"<boolean>"},"body":{"text":"<string>","model_id":"<string>","language_code":"<string>","voice_settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

### Text To Dialogue Streaming With Timestamps

Stream multi-voice dialogue audio in real-time with word-level timestamps.

`POST /v1/text-to-dialogue/stream/with-timestamps`

**Estimated cost:** $0.1

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `inputs` | array | Yes | List of dialogue inputs, each with text and voice_id |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `settings` | object | No | Settings controlling dialogue generation |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-dialogue/stream/with-timestamps","query":{"output_format":"<string>"},"body":{"inputs":"<array>","model_id":"<string>","language_code":"<string>","settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

### Compose Music Detailed

Generate a music track with a detailed response including metadata.

`POST /v1/music/detailed`

**Estimated cost:** $0.5

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `prompt` | string | No | Simple text prompt to generate a song from |
| `lyrics_text` | string | No | Lyrics text for the generation |
| `composition_plan` | object | No | Detailed composition plan |
| `music_length_ms` | integer | No | Length of song in milliseconds |
| `model_id` | string | No | Model for generation |
| `seed` | integer | No | Random seed |
| `force_instrumental` | boolean | No | Guarantee instrumental output |
| `with_timestamps` | boolean | No | Return word timestamps in generated song |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/music/detailed","query":{"output_format":"<string>"},"body":{"prompt":"<string>","lyrics_text":"<string>","composition_plan":"<object>","music_length_ms":"<integer>","model_id":"<string>","seed":"<integer>","force_instrumental":"<boolean>","with_timestamps":"<boolean>"}}'
```

### Generate Composition Plan

Generate a detailed composition plan from a text prompt for music generation.

`POST /v1/music/plan`

**Estimated cost:** $0.1

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `prompt` | string | Yes | Text prompt to compose a plan from |
| `music_length_ms` | integer | No | Length of composition plan in milliseconds |
| `source_composition_plan` | object | No | Optional source plan to base the new plan on |
| `model_id` | string | No | Model for generation |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/music/plan","body":{"prompt":"<string>","music_length_ms":"<integer>","source_composition_plan":"<object>","model_id":"<string>"}}'
```

### Stream Composed Music

Generate and stream a music track in real-time.

`POST /v1/music/stream`

**Estimated cost:** $0.5

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `prompt` | string | No | Text prompt to generate a song from |
| `lyrics_text` | string | No | Lyrics text |
| `composition_plan` | object | No | Detailed composition plan |
| `music_length_ms` | integer | No | Length of song in milliseconds |
| `model_id` | string | No | Model for generation |
| `seed` | integer | No | Random seed |
| `force_instrumental` | boolean | No | Guarantee instrumental output |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/music/stream","query":{"output_format":"<string>"},"body":{"prompt":"<string>","lyrics_text":"<string>","composition_plan":"<object>","music_length_ms":"<integer>","model_id":"<string>","seed":"<integer>","force_instrumental":"<boolean>"}}'
```

### Stem Separation

Separate an audio file into individual stems (vocals, drums, bass, etc.).

`POST /v1/music/stem-separation`

**Estimated cost:** $0.2

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `file` | string | Yes | Audio file to separate into stems (multipart) |
| `stem_variation_id` | string | No | Stem variation ID to use |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/music/stem-separation","query":{"output_format":"<string>"},"body":{"file":"<string>","stem_variation_id":"<string>"}}'
```

### Video To Music

Generate music to match the mood and content of a video.

`POST /v1/music/video-to-music`

**Estimated cost:** $0.5

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `videos` | array | Yes | Video files to generate music for (multipart) |
| `description` | string | No | Text description of desired music (max 1000 chars) |
| `tags` | array | No | Style tags e.g. ['upbeat', 'cinematic'] (max 10) |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/music/video-to-music","query":{"output_format":"<string>"},"body":{"videos":"<array>","description":"<string>","tags":"<array>"}}'
```

### Get Dubbing Status

Get the status and details of a dubbing project.

`GET /v1/dubbing/{dubbing_id}`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `dubbing_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {dubbing_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/dubbing/{dubbing_id}","method":"GET"}'
```

### Forced Alignment

Align text to audio, producing precise word-level timestamps.

`POST /v1/forced-alignment`

**Estimated cost:** $0.03

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `file` | string | Yes | Audio file to align (multipart) |
| `text` | string | Yes | Text to align with the audio |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/forced-alignment","body":{"file":"<string>","text":"<string>"}}'
```

### Get Dubbed Audio

Download the dubbed audio file for a specific language.

`GET /v1/dubbing/{dubbing_id}/audio/{language_code}`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `dubbing_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `language_code` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {dubbing_id}, {language_code} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/dubbing/{dubbing_id}/audio/{language_code}","method":"GET"}'
```

### Speech To Speech

Transform speech audio to match a target voice while preserving content and emotion.

`POST /v1/speech-to-speech/{voice_id}`

**Estimated cost:** $0.15

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `audio` | string | Yes | Audio file with content and emotion to transform |
| `model_id` | string | No | Model identifier |
| `voice_settings` | object | No | Voice settings overrides |
| `seed` | integer | No | Seed for deterministic sampling |
| `remove_background_noise` | boolean | No | Remove background noise from input audio |
| `output_format` | string | No | Output format |
| `enable_logging` | boolean | No | Enable request logging |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/speech-to-speech/{voice_id}","query":{"output_format":"<string>","enable_logging":"<boolean>"},"body":{"audio":"<string>","model_id":"<string>","voice_settings":"<object>","seed":"<integer>","remove_background_noise":"<boolean>"}}'
```

### Get Dubbed Transcript

Get the transcript for a dubbed file in a specific language.

`GET /v1/dubbing/{dubbing_id}/transcript/{language_code}`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `dubbing_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `language_code` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `format_type` | string | No | Transcript format type |

```bash
# Replace {dubbing_id}, {language_code} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/dubbing/{dubbing_id}/transcript/{language_code}","method":"GET","query":{"format_type":"<string>"}}'
```

### Search Shared Voices

Search the shared voice library with filters for gender, age, accent, language, and more.

`GET /v1/shared-voices`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page_size` | integer | No | Number of results per page |
| `category` | string | No | Voice category filter |
| `gender` | string | No | Gender filter |
| `age` | string | No | Age filter |
| `accent` | string | No | Accent filter |
| `language` | string | No | Language filter |
| `search` | string | No | Search query |
| `use_cases` | string | No | Use cases filter |
| `sort` | string | No | Sort order |
| `page` | integer | No | Page number |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/shared-voices","method":"GET","query":{"page_size":"<integer>","category":"<string>","gender":"<string>","age":"<string>","accent":"<string>","language":"<string>","search":"<string>","use_cases":"<string>","sort":"<string>","page":"<integer>"}}'
```

### Speech To Speech Streaming

Transform speech to a target voice and stream the result in real-time.

`POST /v1/speech-to-speech/{voice_id}/stream`

**Estimated cost:** $0.15

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `audio` | string | Yes | Audio file with content and emotion to transform |
| `model_id` | string | No | Model identifier |
| `voice_settings` | object | No | Voice settings overrides |
| `seed` | integer | No | Seed for deterministic sampling |
| `remove_background_noise` | boolean | No | Remove background noise from input audio |
| `output_format` | string | No | Output format |
| `enable_logging` | boolean | No | Enable request logging |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/speech-to-speech/{voice_id}/stream","query":{"output_format":"<string>","enable_logging":"<boolean>"},"body":{"audio":"<string>","model_id":"<string>","voice_settings":"<object>","seed":"<integer>","remove_background_noise":"<boolean>"}}'
```

### Dub Video Or Audio

Dub a video or audio file into another language, preserving speaker voices.

`POST /v1/dubbing`

**Estimated cost:** $0.8

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `file` | string | No | Audio/video file to dub (multipart) |
| `source_url` | string | No | URL of the source video/audio file |
| `source_lang` | string | No | Source language (ISO 639-1 or 639-3) |
| `target_lang` | string | No | Target language to dub into |
| `num_speakers` | integer | No | Number of speakers (0 = auto-detect) |
| `watermark` | boolean | No | Apply watermark to output video |
| `name` | string | No | Name of the dubbing project |
| `highest_resolution` | boolean | No | Use highest resolution available |
| `drop_background_audio` | boolean | No | Drop background audio from final dub |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/dubbing","body":{"file":"<string>","source_url":"<string>","source_lang":"<string>","target_lang":"<string>","num_speakers":"<integer>","watermark":"<boolean>","name":"<string>","highest_resolution":"<boolean>","drop_background_audio":"<boolean>"}}'
```

### Text To Dialogue With Timestamps

Generate multi-voice dialogue audio with word-level timestamps.

`POST /v1/text-to-dialogue/with-timestamps`

**Estimated cost:** $0.1

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `inputs` | array | Yes | List of dialogue inputs, each with text and voice_id |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `settings` | object | No | Settings controlling dialogue generation |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-dialogue/with-timestamps","query":{"output_format":"<string>"},"body":{"inputs":"<array>","model_id":"<string>","language_code":"<string>","settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

### Compose Music

Generate a complete music track from a text prompt or composition plan.

`POST /v1/music`

**Estimated cost:** $0.5

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `prompt` | string | No | Simple text prompt to generate a song from |
| `lyrics_text` | string | No | Lyrics text for the generation |
| `composition_plan` | object | No | Detailed composition plan for guided generation |
| `music_length_ms` | integer | No | Length of song to generate in milliseconds |
| `model_id` | string | No | Model for generation |
| `seed` | integer | No | Random seed for reproducibility |
| `force_instrumental` | boolean | No | If true, guarantees instrumental output (no vocals) |
| `output_format` | string | No | Output format |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/music","query":{"output_format":"<string>"},"body":{"prompt":"<string>","lyrics_text":"<string>","composition_plan":"<object>","music_length_ms":"<integer>","model_id":"<string>","seed":"<integer>","force_instrumental":"<boolean>"}}'
```

### Text To Speech

Convert text into natural-sounding speech audio using a specified voice.

`POST /v1/text-to-speech/{voice_id}`

**Estimated cost:** $0.08

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `text` | string | Yes | The text to convert into speech |
| `model_id` | string | No | Model identifier (e.g. eleven_multilingual_v2, eleven_turbo_v2_5) |
| `language_code` | string | No | ISO 639-1 language code to enforce for the model |
| `voice_settings` | object | No | Voice settings: stability, similarity_boost, style, use_speaker_boost |
| `seed` | integer | No | Seed for deterministic sampling |
| `previous_text` | string | No | Text before the current request for context continuity |
| `next_text` | string | No | Text after the current request for context continuity |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format. Options: mp3_44100_128, pcm_16000, pcm_22050, pcm_24000, pcm_44100, ulaw_8000 |
| `enable_logging` | boolean | No | Enable request logging for debugging |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-speech/{voice_id}","query":{"output_format":"<string>","enable_logging":"<boolean>"},"body":{"text":"<string>","model_id":"<string>","language_code":"<string>","voice_settings":"<object>","seed":"<integer>","previous_text":"<string>","next_text":"<string>","apply_text_normalization":"<string>"}}'
```

### Speech To Text

Transcribe audio to text with optional speaker diarization and timestamps.

`POST /v1/speech-to-text`

**Estimated cost:** $0.03

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `model_id` | string | Yes | Model ID for transcription (e.g. scribe_v1) |
| `file` | string | No | Audio file to transcribe (multipart). 100ms minimum. |
| `language_code` | string | No | ISO-639-1 or ISO-639-3 language code |
| `tag_audio_events` | boolean | No | Tag audio events like (laughter), (footsteps) in transcript |
| `num_speakers` | integer | No | Max number of speakers for diarization |
| `timestamps_granularity` | string | No | Timestamp granularity: word or character |
| `diarize` | boolean | No | Annotate which speaker is talking |
| `source_url` | string | No | URL of audio/video file to transcribe |
| `cloud_storage_url` | string | No | HTTPS URL of file to transcribe |
| `enable_logging` | boolean | No | Enable request logging |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/speech-to-text","query":{"enable_logging":"<boolean>"},"body":{"model_id":"<string>","file":"<string>","language_code":"<string>","tag_audio_events":"<boolean>","num_speakers":"<integer>","timestamps_granularity":"<string>","diarize":"<boolean>","source_url":"<string>","cloud_storage_url":"<string>"}}'
```

### Text To Speech Streaming With Timestamps

Stream text-to-speech audio in real-time with word-level timestamps.

`POST /v1/text-to-speech/{voice_id}/stream/with-timestamps`

**Estimated cost:** $0.08

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `voice_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `text` | string | Yes | The text to convert into speech |
| `model_id` | string | No | Model identifier |
| `language_code` | string | No | ISO 639-1 language code |
| `voice_settings` | object | No | Voice settings overrides |
| `seed` | integer | No | Seed for deterministic sampling |
| `apply_text_normalization` | string | No | Text normalization mode: auto, on, or off |
| `output_format` | string | No | Output format |
| `enable_logging` | boolean | No | Enable request logging |

```bash
# Replace {voice_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"elevenlabs","path":"/v1/text-to-speech/{voice_id}/stream/with-timestamps","query":{"output_format":"<string>","enable_logging":"<boolean>"},"body":{"text":"<string>","model_id":"<string>","language_code":"<string>","voice_settings":"<object>","seed":"<integer>","apply_text_normalization":"<string>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/elevenlabs
