# Elevenlabs Music v2 API

> Komponē mūziku no teksta uzvednes vai uz fragmentiem balstīta kompozīcijas plāna, ar neobligātu tikai instrumentālas mūzikas režīmu

Izveido mūziku no teksta `prompt` līdz 4100 rakstzīmēm vai strukturēta `composition_plan`. Izmantojot uzvedni, `music_length_ms` nosaka ilgumu no 3000 līdz 600000 ms, bet `force_instrumental` noņem vokālu. `output_format` izvēlas kodeku, iztveršanas frekvenci un bitu pārraides ātrumu, tostarp MP3 un PCM opcijas. `seed` darbojas tikai ar kompozīcijas plānu.

- Model id: `elevenlabs/music/v2`
- Made by: ElevenLabs
- Category: Text to Music
- Output: audio
- Price per minute of your output audio: $0.60 / minute of output audio (cheapest run $0.60 (600 API credits))
- Run: `POST https://api.doitong.ru/v1/run/elevenlabs/music/v2`
- Quote: `POST https://api.doitong.ru/v1/quote/elevenlabs/music/v2`
- Docs page: https://doitong.com/lv/developers/models/elevenlabs/music/v2

## Pricing

Price: **$0.60 / minute of output audio**. Price per minute of your output audio: the input files are measured before the run (length, resolution, frame rate). The quote measures the same files and is exactly what the run charges.

The full example input below costs $1.20 = 1200 API credits (2 min output audio × $0.60).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.ru/v1/quote/elevenlabs/music/v2` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `prompt` |  | string \| null | no |  | ≤ 4100 characters | Vēlamās mūzikas teksta apraksts. |
| `composition_plan` |  | object {chunks} \| null | no |  |  | Mūzikas kompozīcijas plāns, kas sakārtots segmentos. |
| `composition_plan.chunks` |  | array of object {text, duration_ms, positive_styles, negative_styles, context_adherence, audio_reference} | yes |  | 1 – 30 items | Ģenerēšanai izmantotie sakārtotie segmenti, ne vairāk kā 30 segmenti ar kopējo ilgumu no 3000 ms līdz 600000 ms. |
| `composition_plan.chunks[].text` |  | string | yes |  |  | Segmenta ģenerēšanas teksts, ne vairāk kā 30 rindas, katrā līdz 200 rakstzīmēm. Dziesmas vārdi var ietvert iekļautas norādes figūriekavās, piemēram, {scratching}, un var sekot neobligātam sākuma sadaļas nosaukumam kvadrātiekavās, piemēram, [Verse 1]. Šīs sadaļas nosaukumā jābūt 1–100 rakstzīmēm. |
| `composition_plan.chunks[].duration_ms` |  | integer | yes |  | 3,000 – 120,000 | Segmenta garums milisekundēs no 3000 ms līdz 120000 ms. |
| `composition_plan.chunks[].positive_styles` |  | array of string | yes |  |  | Vēlamie stili un muzikālās norādes šim segmentam; vislielākā ietekme ir pirmā segmenta izvēlēm, kas nosaka dziesmas kopējo žanru un noskaņu. Vēlākie segmenti var attīstīt mūziku, pievienot nianses vai mainīt virzienu; vislabāk darbojas apraksti angļu valodā. |
| `composition_plan.chunks[].negative_styles` |  | array of string \| null | no |  |  | No šī segmenta izvairāmie muzikālie stili un norādes; norādiet ierakstus tikai nepārprotamiem izņēmumiem, citādi sarakstu ieteicams atstāt tukšu. |
| `composition_plan.chunks[].context_adherence` |  | enum (string) \| null | no |  | `low`, `medium`, `high` | Konteksta ievērošana līdzsvaro radošo brīvību un saskaņotību ar blakus segmentiem: izvēlieties augstu vērtību saskaņotībai vai zemu, lai pieļautu radošākas novirzes. |
| `composition_plan.chunks[].audio_reference` |  | object {audio_url, start_ms, end_ms, strength} \| null | no |  |  | Stila nosacīšanas audio klips šim segmentam; lai veidotu visu dziesmu, norādiet to pirmajā segmentā. Šai atrašanās vietai ir vislielākā ietekme, jo atsauce ietekmē visus nākamos segmentus. |
| `music_length_ms` |  | integer \| null | no |  | 3,000 – 600,000 | Neobligātais dziesmas ilgums milisekundēs no 3000 ms līdz 600000 ms; attiecas tikai uz izmantošanu ar uzvedni. Ja nav norādīts, modelis nosaka ilgumu pēc uzvednes. |
| `force_instrumental` |  | boolean | no | `false` |  | Tikai instrumentāla skaņdarba vadīkla, pieejama tikai ar uzvedni. Iestatot true, tiek garantēta instrumentāla izvade; false ļauj atbilstoši uzvednei ģenerēt instrumentālu vai nein­strumentālu mūziku. |
| `seed` |  | integer \| null | no |  |  | Mūzikas ģenerēšanas inicializācijas sēkla, izmantojama tikai kopā ar `composition_plan`, lai uzlabotu konsekvenci izpildēs ar identiskiem parametriem un sēklu. Nav garantēts, ka rezultāti tiks precīzi atkārtoti. |
| `output_format` |  | enum (string) | no | `mp3_48000_192` | `mp3_22050_32`, `mp3_24000_48`, `mp3_44100_32`, `mp3_44100_64`, `mp3_44100_96`, `mp3_44100_128`, `mp3_44100_192`, `mp3_48000_128`, `mp3_48000_192`, `mp3_48000_240`, `mp3_48000_320`, `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_32000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`, `alaw_8000`, `opus_48000_32`, `opus_48000_64`, `opus_48000_96`, `opus_48000_128`, `opus_48000_192` | Izvēlieties ģenerētā audio formātu, izmantojot shēmu codec_sample_rate_bitrate. Twilio audio ievadē parasti izmanto μ-law, ko raksta arī kā mu-law vai aptuveni kā u-law; MP3 piemērs ir mp3_22050_32, kas norāda 22.05 kHz iztveršanas frekvenci un 32 kbs bitu pārraides ātrumu. |

## Example input

Required parameters only:

```json
{}
```

A fuller example:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/elevenlabs/music/v2?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.ru/v1";
const headers = {
  "Authorization": "Bearer " + process.env.DOITONG_API_KEY,
  "Content-Type": "application/json",
};

// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/elevenlabs/music/v2?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);

// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
  res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
  request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
```

### Python

```python
import os
import requests

API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/elevenlabs/music/v2", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
    raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])

# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
    request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
    raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
```

### MCP

The MCP server at `https://api.doitong.ru/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "elevenlabs/music/v2",
      "input": {
        "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "elevenlabs/music/v2",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 1200,
    "usd": "1.20",
    "charged": 1200,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "audio": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
      "content_type": "audio/mpeg",
      "file_name": "0-output.mp3",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "audio",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
      "content_type": "audio/mpeg",
      "file_size": 1843200,
      "duration": 12,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `audio` | object {url, content_type, file_name, file_size} | Ģenerētais mūzikas fails, kodēts MP3 audio formātā. |

## Related models

- [Elevenlabs Music v2.5](https://doitong.com/developers/models/elevenlabs/music/v2.5.md) (`elevenlabs/music/v2.5`): $0.60 / minute of output audio
- [MiniMax Music 3](https://doitong.com/developers/models/minimax/music-3.md) (`minimax/music-3`): $0.002 / second
- [Elevenlabs Music](https://doitong.com/developers/models/elevenlabs/music.md) (`elevenlabs/music`): $0.60 / minute of output audio
- [ACE Step](https://doitong.com/developers/models/ace-step.md) (`ace-step`): $0.0002 / second
- [ACE Step Audio Inpaint](https://doitong.com/developers/models/ace-step/audio-inpaint.md) (`ace-step/audio-inpaint`): $0.0002 / second of input audio
- [ACE Step Audio Outpaint](https://doitong.com/developers/models/ace-step/audio-outpaint.md) (`ace-step/audio-outpaint`): $0.0002 / second of output audio
- [ACE Step Audio To Audio](https://doitong.com/developers/models/ace-step/audio-to-audio.md) (`ace-step/audio-to-audio`): $0.0002 / second of input audio
- [ACE Step Prompt To Audio](https://doitong.com/developers/models/ace-step/prompt-to-audio.md) (`ace-step/prompt-to-audio`): $0.0002 / second

## Links

- HTML page: https://doitong.com/developers/models/elevenlabs/music/v2
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=elevenlabs/music/v2
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/elevenlabs/music/v2
