# Mureka Song > Mureka song generation via fal.ai. Lyrics-to-song (provide lyrics, prompt steers the style) or prompt-to-song (prompt plus genre styles, lyrics written by the model). Choose the Mureka model version (7.6 / 8 / 9 / o2 / 9.5). Returns an MP3 with timed lyric sections. - **Provider**: fal - **Model ID**: mureka/api/generate/song - **Category**: music_generation - **Credits**: from 1,740 for the default configuration — varies by input, see Pricing - **Pricing Type**: input_based ## 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**): Describe the desired song, mood, instrumentation, and vocals. Required when lyrics is omitted; with lyrics, it acts as a music-style control. - `model` (string, optional): The Mureka model version to use. (Default: `mureka-9.5`; Options: `mureka-9.5`, `mureka-9`, `mureka-8`, `mureka-o2`, `mureka-7.6`) - `styles` (array, optional): One or more musical genres for prompt-to-song generation. Cannot be used together with lyrics. - `gender` (string, optional): Preferred vocal gender for lyrics-to-song generation. (Options: `female`, `male`) - `lyrics` (string, optional): Lyrics to sing, up to 5,000 characters. Provide this for lyrics-to-song generation (cheaper); omit for prompt-to-song where the model writes the lyrics. ## Example Request ```json { "model": "mureka/api/generate/song", "input": { "prompt": "A bright summer love song with a catchy chorus", "model": "mureka-9.5", "styles": [ "pop", "rock" ] } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending", "provider": "fal", "model": "mureka/api/generate/song", "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 Charged by input. Rules are checked top to bottom and the first match applies: - When `lyrics` is set and `model` = `mureka-9.5`: 523.125 credits per request - When `lyrics` is set and `model` in `["mureka-9", "mureka-8", "mureka-o2"]`: 156.9375 credits per request - When `lyrics` is set and `model` = `mureka-7.6`: 104.625 credits per request - When `lyrics` is set: 523.125 credits per request - When `model` = `mureka-9.5`: 1,743.75 credits per request - When `model` in `["mureka-9", "mureka-8", "mureka-o2", "mureka-7.6"]`: 1,046.25 credits per request - Otherwise: 1,743.75 credits per request Default configuration: 1,740 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, lyrics-to-song, vocals, mureka ## Documentation https://fal.ai/models/mureka/api/generate/song