Skip to main content
POST
Referencing a source track: Operations based on an existing song require no upstream ids—just pass task_id (our task_id of the job that produced the source track) + audio_index (which track in the result music[], 1-based, defaults to 1).
This endpoint has no version dimension: do not pass version — if passed, it is discarded and does not affect billing.

Authorizations

Authorization
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

model
string
default:"suno"
Audio model. Currently pass suno (defaults to suno if omitted).
task_id
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.
audio_index
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).
name
string
required
Persona name. If missing, returns 400 immediately without hitting the upstream.
describe
string
Description.
styles
string
Style.
vox_audio_id
string
The id obtained from “Extract Vox”.
vocal_start_s
integer
Vocal clip start (seconds). When referencing vox_audio_id, this must match the clip range used when that Vox was extracted.
vocal_end_s
integer
Vocal clip end (seconds). When referencing vox_audio_id, this must match the clip range used when that Vox was extracted.
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 (typically takes 30–120s; while generating, status is pending and progress goes queued 10 → ready 50 → done 100). The result contains persona information. On failure data.error.message gives the reason and the pre-deducted quota is automatically refunded.

Response

code
integer
Response status code
data
array
Returned data array