# ElevenLabs Music v2.5 > ElevenLabs Music v2.5 via fal.ai. Composes a song from a text prompt with a target length of 3 seconds to 10 minutes, optional vocals, and MP3 / PCM / Opus output formats. Billed per output minute, rounded up. - **Provider**: fal - **Model ID**: elevenlabs/music/v2.5 - **Category**: music_generation - **Credits**: from 1,400 for the default configuration — varies by input, see Pricing - **Pricing Type**: formula ## API Endpoint Base URL: https://api.core.today/v1 ### Create Prediction POST /predictions ### Get Status GET /predictions/{job_id} ### Cancel DELETE /predictions/{job_id} ## Authentication Header: `X-API-Key: YOUR_API_KEY` ## Input Parameters - `prompt` (string, **required**): The text prompt describing the music to generate (genre, mood, instruments, tempo, vocals). - `music_length_ms` (integer, optional): Length of the song in milliseconds (3,000-600,000). Billed per started minute of this value. (Default: `60000`; Range: min: 3,000, max: 600,000) - `force_instrumental` (boolean, optional): If true, guarantees the song is instrumental. If false, the model decides based on the prompt. (Default: `false`) - `output_format` (string, optional): Output format as codec_samplerate_bitrate, e.g. mp3_44100_128. (Default: `mp3_48000_192`; Options: `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`, `opus_48000_32`, `opus_48000_64`, `opus_48000_96`, `opus_48000_128`, `opus_48000_192`) ## Example Request ```json { "model": "elevenlabs/music/v2.5", "input": { "music_length_ms": 60000, "output_format": "mp3_48000_192", "prompt": "Mysterious original soundtrack, themes of jungle, rainforest, nature, woodwinds, busy rhythmic tribal percussion." } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending", "provider": "fal", "model": "elevenlabs/music/v2.5", "created_at": "2026-01-01T00:00:00Z", "result": null, "error": null, "credits_used": null } ``` Status values: `pending`, `processing`, `completed`, `failed`, `cancelled` When the job is `completed`, `result` holds the output URL(s) or data and `credits_used` the net credits charged. When it is `failed`, `error` and `error_code` say why and the charge is refunded. ## Usage Flow 1. POST /predictions with model and input → receive job_id 2. Poll GET /predictions/{job_id} until status is `completed` or `failed` 3. Result contains output URL(s) or data ## Pricing - Formula: `rate * ceil(music_length_ms / 60000)` credits - `music_length_ms`: the `music_length_ms` input (default 60,000) - `rate`: 1,395 Default configuration: 1,400 credits. These are list prices. The amount charged is rounded, and large charges are discounted progressively. `POST /predictions/estimate` with the same `model` and `input` returns the charge for that input without creating a job (an estimate when the price depends on the output). ## Output Type json ## Tags music-generation, text-to-music, vocals, elevenlabs ## Documentation https://fal.ai/models/elevenlabs/music/v2.5