Audio
Suno Music Generation
32 music actions on one task endpoint: write, extend, cover, split stems, edit and export
POST
Suno Music Generation
suno is an action-based model: the model ID is fixed and the action field decides what a call does. Start a song from scratch with generate, then keep working on the same track — extend it, cover it, split its stems, edit it, export it — across 32 actions in total. Every action is submitted through the unified task endpoint POST /v1/tasks.
Quick start
task_id. Retrieve the result with GET /v1/tasks/{task_id}, wait inline with Prefer: wait, or configure a webhook.
Request parameters
Actions
Create from scratch — no source track involved.
Work on an existing track — the source is given by
ref_task_id.
Vocals and stems
Audio editing
Export and analysis
Common parameters
string
required
Always
suno.string
default:"generate"
What this call does; see Actions for the full set.
string
A content description in inspiration mode, the lyrics themselves when
custom: true, and the subject to write about for lyrics and sounds.string[]
Reference audio URLs, publicly reachable. Accepted only by the
inspo action, where it is required and takes 1–4 entries.string
Completion callback URL; see Submit Task.
Creative parameters
These apply to the creative actions:generate, inspo, extend, cover, remaster, mashup, sample, replace_section, add_vocals, add_instrumental, add_stem, sounds. Parameters with a narrower range say so in the description.
style and tags are two field names for the same thing: generate uses style, every other action uses tags.Referencing a source track
string
The
task_id of the task that produced the source track.integer
default:"1"
Which track from the source task’s result to use, starting at
1.create_voice takes a publicly reachable audio_url, and upload takes audioFilePath for the file being imported.
Action-specific parameters
Parameters are validated per action: sending an action-specific parameter with a different action, or sending anything beyond the fields above, returns
400 and is not billed.
Limits
This model produces one result per task;n is not supported.
The inspo action takes 1 to 4 reference audio URLs.
Pricing
Billed per call, with a different price per action. Each action has its own flat rate, and that rate does not change withversion, track length or prompt length. Full-generation actions (generate, extend, cover, remaster and similar) and full stem separation (stems_all) sit at the top; light actions such as lyrics, bpm and wav cost far less.
Rates are in price_config.audio_prices on GET /v1/models, keyed by action, and in the console’s Model Market. What a single call actually cost is the cost field on the task response — an integer quota at 500,000 quota = 1 USD, not dollars.
Only a successful result is billed. Failed and cancelled tasks, and tasks that return nothing deliverable, are refunded in full.
Response
result.audios[]: url is an array of audio links and expires_at is when those links stop working. generate returns two candidate tracks, addressed later as audio_index 1 or 2.
The lyrics action returns no audio: the lyric text sits in the prompt field of each result.audios.lyrics[] entry, alongside title and tags.
Examples
To keep working on the same song, take thetask_id from generate and pass it as ref_task_id to the next action. Each follow-up action produces a new task_id of its own, which can be chained further.