Skip to main content
POST
Source Audio Reference: No additional IDs are needed for tracks based on existing songs. Just pass task_id (the task ID from the previous run of this task) + audio_index (which result track in the data.result.music[] list, 1-based, default is 1).

Authorizations

string
required
All endpoints require authentication using a Bearer TokenGet an API Key:Visit the API Key management page to get your API KeyAdd the following to the request headers when using it:

Body

string
default:"suno"
Audio model. Currently pass suno (defaults to suno if omitted).
string
required
Our task_id of the job that produced the source track. If missing or the source cannot be resolved, a 400 is returned at submission time.
integer
default:"1"
Selects a track from the source task’s data.result.music[] array (1-based; default 1).
string
Lyrics for the replacement section.
number
required
Replacement start point (seconds). If missing, returns 400 immediately.
number
required
end time (in seconds). Must satisfy 0 ≤ start_s < end_s; the source duration is known and cannot exceed it.
string
default:"v6"
Public version: v6 / v6-wild / v6-mini. Defaults to v6; omit this field when using custom_model_id.
string
The full UUID returned by the model-creation task. Mutually exclusive with version.
string
Context lyrics.
string
Title.
string
Style tags.
string
Style tags to exclude.
string
Style variation: off / normal / high / extra / max. Optional.
boolean
default:"false"
Enables Max mode and is billed at twice the standard price.
string
Output audio format: mp3 / m4a / wav. This endpoint does not support a target-duration field.
prompt is the original lyrics context, infill_lyrics is the new lyrics after replacement. Do not send custom, instrumental, auto_lyrics or the old edit session fields.
Get Result: This is an asynchronous task. After submission, you will receive task_id and then poll GET /v1/music/tasks/{task_id} every 3–5 seconds until status becomes completed or failed (music generation usually takes 30–120 seconds; while generation is in progress, status may be pending or processing, and progress is an integer from 0 to 100 and is not guaranteed to change at fixed intervals). Once completed, read the replaced track’s audio_url from data.result.music[]. In case of failure, data.error.message provides the reason and the deducted amount will be automatically refunded.

Response

integer
Response status code
array
Returned data array