# CassetteAI Music Generator > CassetteAI's fast, low-cost music generator via fal.ai. Produces 10 to 180 seconds of music from a text prompt. Returns a WAV file. - **Provider**: fal - **Model ID**: cassetteai/music-generator - **Category**: music_generation - **Credits**: from 47 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 - `duration` (integer, **required**): Duration of the generated music in seconds (10-180). Billed per second. (Default: `60`; Range: min: 10, max: 180) - `prompt` (string, **required**): The prompt to generate music from (genre, mood, instruments, tempo). ## Example Request ```json { "model": "cassetteai/music-generator", "input": { "duration": 60, "prompt": "Chill lo-fi hip hop beat with warm piano chords, vinyl crackle and a laid-back drum groove" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending", "provider": "fal", "model": "cassetteai/music-generator", "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 * duration` credits - `duration`: the `duration` input (default 60) - `rate`: 0.775 Default configuration: 47 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, instrumental, low-cost, cassetteai ## Documentation https://fal.ai/models/cassetteai/music-generator