# Elevenlabs Music v2.5 API

> A zeneszerző újabb, v2.5-ös változata, amely szöveges prompt vagy szakaszalapú kompozíciós terv alapján működik

Zenét generál legfeljebb 4100 karakteres `prompt` vagy `composition_plan` alapján. Prompt használatakor a `music_length_ms` 3000 és 600000 ms közötti lehet, a `force_instrumental` pedig garantálja az ének hiányát. A `seed` csak `composition_plan` mellett érvényes. Az `output_format` több MP3- és PCM-változatot kínál, alapértelmezés szerint mp3_48000_192 értékkel.

- Model id: `elevenlabs/music/v2.5`
- 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.5`
- Quote: `POST https://api.doitong.ru/v1/quote/elevenlabs/music/v2.5`
- Docs page: https://doitong.com/hu/developers/models/elevenlabs/music/v2.5

## 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.5` 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 | A kívánt zenét leíró szöveg. |
| `composition_plan` |  | object {chunks} \| null | no |  |  | Darabokba rendezett zenei kompozíciós terv. |
| `composition_plan.chunks` |  | array of object {text, duration_ms, positive_styles, negative_styles, context_adherence, audio_reference} | yes |  | 1 – 30 items | A generáláshoz használt sorrendben megadott darabok; legfeljebb 30 darab, összesen 3000 ms és 600000 ms közötti időtartammal. |
| `composition_plan.chunks[].text` |  | string | yes |  |  | A darab generálási szövege, legfeljebb 30, egyenként legfeljebb 200 karakteres sorral. A dalszöveg tartalmazhat kapcsos zárójelek közötti beágyazott utasításokat, például {scratching}, és opcionális, szögletes zárójelek közötti nyitó szakasznévvel kezdődhet, például [Verse 1]. A szakasznévnek 1–100 karaktert kell tartalmaznia. |
| `composition_plan.chunks[].duration_ms` |  | integer | yes |  | 3,000 – 120,000 | A darab hossza milliszekundumban, 3000 ms és 120000 ms között. |
| `composition_plan.chunks[].positive_styles` |  | array of string | yes |  |  | A darab kívánt stílusai és zenei irányai; a legnagyobb hatást az első darab választásai gyakorolják, amelyek meghatározzák a dal általános műfaját és hangulatát. A későbbi darabok továbbfejleszthetik a zenét, árnyalhatják vagy módosíthatják az irányt; az angol leírások működnek a legjobban. |
| `composition_plan.chunks[].negative_styles` |  | array of string \| null | no |  |  | A darabban kerülendő zenei stílusok és irányok; csak explicit kizárásokhoz adjon meg elemeket, egyébként a lista üresen hagyása jó alapértelmezett. |
| `composition_plan.chunks[].context_adherence` |  | enum (string) \| null | no |  | `low`, `medium`, `high` | A kontextushoz való illeszkedés a kreatív szabadságot a szomszédos darabokkal való következetességgel egyensúlyozza: a következetességhez válasszon magas, nagyobb kreatív eltérésekhez alacsony értéket. |
| `composition_plan.chunks[].audio_reference` |  | object {audio_url, start_ms, end_ms, strength} \| null | no |  |  | A darab stílusfeltételező hangklipje; a teljes dal formálásához adja meg az első darabnál. Ez a pozíció gyakorolja a legnagyobb hatást, mert a referencia minden későbbi darabra hatással van. |
| `music_length_ms` |  | integer \| null | no |  | 3,000 – 600,000 | Opcionális dalhossz milliszekundumban, 3000 ms és 600000 ms között, csak prompt használatakor. Ha nincs megadva, a modell a prompt alapján határozza meg a hosszt. |
| `force_instrumental` |  | boolean | no | `false` |  | Csak instrumentális kimenetet szabályozó beállítás, csak prompt használatakor érhető el. A true garantálja az instrumentális kimenetet; a false a prompt alapján instrumentális vagy nem instrumentális zenét is engedélyez. |
| `seed` |  | integer \| null | no |  |  | A zenegenerálás inicializálási seedje, csak a `composition_plan` mellett használható az azonos paraméterekkel és seeddel futtatások közötti jobb következetesség érdekében. Az eredmények pontos reprodukálása nem garantált. |
| `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` | A generált hang formátumának kiválasztása a codec_sample_rate_bitrate minta alapján. A Twilio-hangbemenetek gyakran μ-law formátumot használnak, amelyet mu-law néven is írnak, illetve u-law-ként közelítenek; az MP3-példa az mp3_22050_32, amely 22.05 kHz-es mintavételi frekvenciát és 32 kbs bitrátát jelent. |

## 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.5?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.5?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.5", 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.5",
      "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.5",
  "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} | MP3-hangként kódolt generált zenefájl. |

## Related models

- [Elevenlabs Music v2](https://doitong.com/developers/models/elevenlabs/music/v2.md) (`elevenlabs/music/v2`): $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.5
- 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.5
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.ru/v1/models/elevenlabs/music/v2.5
