Suno Common Conventions & Task Query
Suno
Suno Common Conventions & Task Query
- Common notes for the Suno music API: authentication, async task lifecycle, model / version, source track references
- Task query: GET /v1/music/tasks/:task_id, poll until completed / failed
GET
Suno Common Conventions & Task Query
This page covers the common conventions shared by all Suno music APIs and is meant to be used alongside the individual documentation for each endpoint. All generation / editing APIs are asynchronous tasks: submit to get a
task_id, then poll the query API on this page to retrieve results.Authentication
All requests must include the following in the request headers:Task Lifecycle (all APIs are asynchronous)
1
Submit
POST /v1/music/generations/<operation> → immediately returns our task_id:2
Poll
GET /v1/music/tasks/:task_id until status is completed or failed. While generating, status is pending and progress goes queued 10 → ready 50 → done 100. A polling interval of 3–5s is recommended; music generation usually takes 30–120s.3
Retrieve results
On completion, take
audio_url / image_url / video_url, etc. from data.result.music[].submitted → pending → completed / failed. On failure, data.error.message gives the reason and the pre-deducted quota is automatically refunded.
Version
v3.5 / v4 / v4.5 / v4.5+ / v4.5-all / v5 / v5.5, affecting audio quality and billing; the default is used if omitted. Availability and defaults vary per endpoint — some support only a subset, and some have no version dimension at all; see each endpoint’s own documentation.
Referencing a Source Track: task_id + audio_index
Operations based on an existing song (extend / cover / stem separation / add vocals / trim…) do not require you to remember any upstream id; you only pass:task_id: ourtask_idfor the task that produced the source trackaudio_index: which track in that task’s resultmusic[](1-based, defaults to1; a single generation usually produces 2 tracks: 1 and 2)
Query Task: GET /v1/music/tasks/:task_id
Our
task_id returned by the submit API.status is completed or failed. Once completed, retrieve the products from data.result.music[].
Response
Unique task identifier
Task status:
submitted / pending / completed / failedProgress: queued
10 → ready 50 → done 100Result data