POST /suno/v2/{action}, and every action is an asynchronous task: you get a task ID on submission, then fetch the result, or pass notify_hook and wait for us to push it.
Basics
Every endpoint page has a playground on the right: enter your API key and parameters to send a request. Playground requests are real and billed as usual.
Call flow
1
Submit a task
Call the endpoint for the action, for example Music Generation.
data.task_id in the response is the task ID.2
Get the result
Poll Get Task every 3 to 5 seconds until
status becomes SUCCESS or FAILURE; use Batch Get Tasks for several at once. Or pass notify_hook on submission and we POST the same content as the fetch result when the task ends.3
Keep creating
music_id in the result is how follow-up actions such as extend, cover, stems and export find the track. Store it with the task.Every endpoint
Each action lives atPOST /suno/v2/{action}; action names are in the first column of each table.
Create something new
Work on an existing track
Bring your own audio
Split and reassemble
Adjust and export
Voices and models
Analysis
Fetch
Pricing
Billing is per call, independent of length or how many results come back:- When an action returns several results and only some succeed, you are charged for the ones that succeeded
max_modedoubles the price and only applies in custom mode- Failed tasks are refunded
- Lyric timings (
aligned-lyrics) are free
Errors
When a request isn’t accepted, you get a non-2xx status code and a JSON error:error object:
If the task was accepted but failed, the fetch result has
status set to FAILURE with the reason in fail_reason.
Next steps
Suno Quickstart
Generate your first song, pick a model version, write your own lyrics
Suno Workflow Guide
Full songs, reworks, stems, reusable voices and other common flows