Documentation Navigation
Getting Started
API Reference
Resources
Music API
Generate songs, instrumentals, and BGM. 19 models including Suno V4.5.
Async API. Music generation is asynchronous. Submit a job and poll
GET /v1/jobs/:id, or register a webhook with POST /v1/webhooks. POST /v1/generations/music
Submit a music generation job. Supports text prompts, lyrics, genre tags, and instrumental mode.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model key (e.g. "suno-generate", "mureka-v9", "mureka-bgm"). |
input | object | Yes | The fields below go inside input. |
input.prompt | string | Yes | Style and mood description of the track. |
input.lyrics | string | No | Lyrics. Supports [Verse], [Chorus] section markers. |
input.duration_sec | number | No | Target duration in seconds. Max varies by model; some models follow the lyric length instead. |
confirm | boolean | No | Set to false for cost estimate only. Default: true. |
Response fields
| Field | Type | Description |
|---|---|---|
id | string | Job ID (job_ prefix). |
status | string | "queued", "processing", "completed", or "failed". |
url | string | CDN URL of the generated audio (MP3). |
cost.credits_used | integer | Actual cost charged, in microdollars. |
cost.estimated_credits | integer | Estimated cost, in microdollars. |
cost.currency | string | Always "microdollars". |
metadata.duration | number | Track duration in seconds. |
metadata.title | string | AI-generated track title (if applicable). |
Code examples
curl
curl -X POST https://api.fairstack.ai/v1/generations/music \
-H "Authorization: Bearer $FAIRSTACK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mureka-bgm",
"input": {
"prompt": "An upbeat jazz track with walking bass and brushed drums"
}
}' Python
from fairstack import FairStack
client = FairStack(api_key="fs_live_YOUR_KEY")
# Submit async music generation
job = client.generate.music(
model="mureka-bgm",
prompt="An upbeat jazz track with walking bass and brushed drums"
)
# Poll for result
result = job.wait()
print(result.url) # https://media.fairstack.ai/music/...
print(result.cost) # $0.036 Node.js
import { FairStack } from "fairstack";
const client = new FairStack({ apiKey: "fs_live_YOUR_KEY" });
const job = await client.generate.music({
model: "mureka-bgm",
prompt: "An upbeat jazz track with walking bass and brushed drums",
});
const result = await job.wait();
console.log(result.url); // https://media.fairstack.ai/music/...
console.log(result.cost); // { credits_used: 36000, estimated_credits: 36000, currency: "microdollars" } Completed response
{
"id": "job_music_abc",
"status": "completed",
"url": "https://media.fairstack.ai/music/.../output.mp3",
"model": "mureka-bgm",
"modality": "music",
"cost": {
"credits_used": 36000,
"estimated_credits": 36000,
"currency": "microdollars"
},
"metadata": {
"duration": 120,
"sample_rate": 44100,
"title": "Midnight Jazz Walk"
}
} Cost units. Every value inside cost is an integer in microdollars, as flagged by currency: "microdollars". The conversion is 1 USD = 1,000,000 microdollars. So credits_used: 30000 = $0.03, and the example above (36000) = $0.036. The field is named credits_used for backward compatibility with existing SDKs — always read it as microdollars and convert as needed.
Cost estimation
Set confirm: false to get the exact cost before generating.
curl -X POST https://api.fairstack.ai/v1/generations/music \
-H "Authorization: Bearer $FAIRSTACK_API_KEY" \
-d '{ "model": "mureka-bgm", "input": { "prompt": "test" }, "confirm": false }'
# Response: { "cost": { "credits_used": 0, "estimated_credits": 36000, "currency": "microdollars" } } Lyrics mode
Pass lyrics with section markers for structured song generation:
{
"model": "suno-generate",
"input": {
"prompt": "Indie pop, bright guitars, warm female vocal",
"lyrics": "[Verse 1]\nWalking through the city lights\nEvery shadow feels just right\n\n[Chorus]\nWe are the dreamers tonight"
}
} Instrumental mode
For background music, film scores, and BGM, use an instrumental model such as Mureka BGM:
{
"model": "mureka-bgm",
"input": {
"prompt": "Epic orchestral score for a fantasy film trailer"
}
} Quality tiers
| Tier | Example Model | Price | Max Duration | Best For |
|---|---|---|---|---|
| Standard | Suno Generate Music | $0.072/track | 120s | Content creators, podcasts |
| Premium | Mureka V9.5 (Song) | $0.18/track | 480s | Professional tracks, full songs |
| Low-cost | Mureka BGM | $0.036/track | 60s | BGM, prototyping, short clips |
Next steps
- Jobs API -- poll async music generation jobs
- Model Catalog -- browse all 19 music models
- Error Handling -- retries and idempotency