# Elevenlabs Music v2.5 API

> Diwygiad v2.5 mwy newydd o'r cyfansoddwr cerddoriaeth, wedi'i yrru gan anogiad testun neu gynllun cyfansoddi wedi'i seilio ar ddarnau

Yn cynhyrchu cerddoriaeth o `prompt` o hyd at 4100 nod neu o `composition_plan`. Gydag anogiad, gall `music_length_ms` amrywio o 3000 i 600000 ms, ac mae `force_instrumental` yn gwarantu dim lleisiau. Dim ond ochr yn ochr â chynllun cyfansoddi y mae `seed` yn berthnasol. Mae `output_format` yn cynnig sawl amrywiad MP3 a PCM, gyda mp3_48000_192 fel y rhagosodiad.

- 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/cy/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 | Disgrifiad testun o'r gerddoriaeth a ddymunir. |
| `composition_plan` |  | object {chunks} \| null | no |  |  | Cynllun cyfansoddi cerddoriaeth wedi'i drefnu'n ddarnau. |
| `composition_plan.chunks` |  | array of object {text, duration_ms, positive_styles, negative_styles, context_adherence, audio_reference} | yes |  | 1 – 30 items | Darnau trefnus a ddefnyddir ar gyfer cynhyrchu, wedi'u cyfyngu i 30 darn â hyd cyfunol o 3000 ms i 600000 ms. |
| `composition_plan.chunks[].text` |  | string | yes |  |  | Testun cynhyrchu darn, wedi'i gyfyngu i 30 llinell o hyd at 200 nod yr un. Gall geiriau'r gân gynnwys cyfarwyddiadau mewnol mewn braces cyrliog, megis {scratching}, a gallant ddilyn enw adran agoriadol dewisol mewn cromfachau sgwâr, megis [Verse 1]. Rhaid i'r enw adran hwnnw gynnwys 1–100 nod. |
| `composition_plan.chunks[].duration_ms` |  | integer | yes |  | 3,000 – 120,000 | Hyd darn mewn milieiliadau, yn amrywio o 3000 ms i 120000 ms. |
| `composition_plan.chunks[].positive_styles` |  | array of string | yes |  |  | Arddulliau a chyfarwyddiadau cerddorol dymunol ar gyfer y darn hwn, gyda'r dylanwad mwyaf yn dod o ddewisiadau'r darn cyntaf: mae'r rhain yn sefydlu genre a naws gyffredinol y gân. Gall darnau diweddarach ddatblygu'r gerddoriaeth, ychwanegu naws, neu newid cyfeiriad; mae disgrifiadau Saesneg yn gweithio orau. |
| `composition_plan.chunks[].negative_styles` |  | array of string \| null | no |  |  | Arddulliau a chyfarwyddiadau cerddorol i'w hosgoi yn y darn hwn; nodwch gofnodion dim ond ar gyfer eithriadau penodol, fel arall mae gadael y rhestr yn wag yn rhagosodiad da. |
| `composition_plan.chunks[].context_adherence` |  | enum (string) \| null | no |  | `low`, `medium`, `high` | Mae glynu wrth y cyd-destun yn cydbwyso rhyddid creadigol yn erbyn cysondeb â darnau cyfagos: dewiswch uchel ar gyfer cysondeb, neu isel i ganiatáu mwy o wyriadau creadigol. |
| `composition_plan.chunks[].audio_reference` |  | object {audio_url, start_ms, end_ms, strength} \| null | no |  |  | Clip sain cyflyru arddull ar gyfer y darn hwn; i siapio'r gân gyfan, cyflenwch ef ar y darn cyntaf. Y lleoliad hwnnw sy'n cael y dylanwad mwyaf oherwydd bod ei gyfeirnod yn effeithio ar bob darn dilynol. |
| `music_length_ms` |  | integer \| null | no |  | 3,000 – 600,000 | Hyd cân dewisol mewn milieiliadau, yn amrywio o 3000 ms i 600000 ms, sy'n berthnasol dim ond wrth ddefnyddio anogiad. Pan gaiff ei hepgor, mae'r model yn pennu'r hyd o'r anogiad. |
| `force_instrumental` |  | boolean | no | `false` |  | Rheolaeth offerynnol yn unig, ar gael dim ond wrth ddefnyddio anogiad. Mae ei osod i true yn gwarantu allbwn offerynnol; mae false yn caniatáu cerddoriaeth offerynnol neu anofferynnol yn ôl yr anogiad. |
| `seed` |  | integer \| null | no |  |  | Hadau cychwyn cynhyrchu cerddoriaeth, y gellir eu defnyddio dim ond ochr yn ochr â `composition_plan`, ar gyfer gwell cysondeb ar draws rhediadau â pharamedrau a hadau unfath. Ni warentir atgynhyrchu'r canlyniadau'n union. |
| `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` | Dewiswch fformat y sain a gynhyrchir gan ddefnyddio'r patrwm codec_sample_rate_bitrate. Mae mewnbynnau sain Twilio yn defnyddio μ-law yn gyffredin, a ysgrifennir hefyd fel mu-law neu a frasamcenir fel u-law; enghraifft MP3 yw mp3_22050_32, sy'n pennu cyfradd samplu 22.05 kHz a chyfradd didau o 32 kbs. |

## 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} | Ffeil gerddoriaeth a gynhyrchwyd, wedi'i hamgodio fel sain MP3. |

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