Skip to main content
POST
Referencing a source track: Operations based on an existing song require no extra ids—just pass task_id (task_id of the job that produced the source track) + audio_index (which track in the result music[], 1-based, defaults to 1).
custom is neither required nor inferred for extend — omit it and the extension works fine; if passed, it is forwarded as-is. custom=true extends following the prompt lyrics; with custom=false or omitted you can pass gpt_description (inspiration prompt) to guide the direction.

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"
Which track in the source job’s result data.music[] (1-based; defaults to 1; a single generation usually produces 2 tracks: indexes 1 and 2).
integer
required
The second from which to continue.
string
default:"v5.5"
Generation version: v3.5 / v4 / v4.5 / v4.5+ / v4.5-all / v5 / v5.5, affects audio quality and billing; defaults to v5.5 if omitted, and an invalid value returns 400 directly at submission time.
boolean
No need to pass it (not enforced for extend). true=extend following the prompt lyrics; false=inspiration-guided extension.
string
Lyrics for the extension. Takes effect when custom=true.
string
Inspiration prompt. Takes effect when custom=false or when custom is omitted (guides the direction of the extension).
string
Title. Only takes effect when custom=true.
string
Style tags. Only takes effect when custom=true.
string
Style tags to exclude. Only takes effect when custom=true.
string
Vocal gender: Male / Female. Works in both modes.
number
Style weight, 0.001.00 (out-of-range values return 400 directly at submission time). Only takes effect when custom=true.
number
Creativity weight, 0.001.00 (alias weirdness). Only takes effect when custom=true.
number
Audio weight, 0.001.00. Only takes effect when custom=true.
boolean
true=rewrite the provided lyrics creatively. Only takes effect when custom=true.
string
Persona style id. Only takes effect when custom=true.
Getting the result: This endpoint is an async task. After submitting you get a task_id; poll GET /v1/music/tasks/{task_id} at 3–5s intervals until status is completed or failed (music generation typically takes 30–120s; while generating, status is pending and progress goes queued 10 → ready 50 → done 100). On completion take the extended audio_url from data.result.music[]. On failure data.error.message gives the reason and the pre-deducted quota is automatically refunded.

Response

integer
Response status code
array
Returned data array