Suno Tasks API Integration and Usage
The main function of the Suno Tasks API is to query the execution status of a task by entering the task ID generated by the Suno Audios Generation API or Suno Lyrics Generation API.
This document will introduce the integration instructions for the Suno Tasks API in detail, helping you easily integrate and fully leverage the powerful features of this API. Through the Suno Tasks API, you can easily query the task execution status of the Suno Lyrics Generation API or Suno Audios Generation API.
¶ Application Process
To use the Suno Audios Generation API, first go to the qiyaov Console to obtain your API Token and keep it for later use.

If you have not yet logged in or registered, you will be automatically redirected to the login page to be invited to register and log in. After completion, you will automatically return to the current page.
One API Token can call all platform services, without needing to apply separately for each service. Your first application will be given free credits for a free trial; when credits are insufficient, you can recharge your general balance in the Console.
📘 Full documentation: Suno Audios Generation API →
¶ Request Example
The Suno Tasks API can be used to query the results of both the Suno Audios Generation API and the Suno Lyrics Generation API. For how to use the Suno Audios Generation API, please refer to the documentation Suno Audios Generation API . For how to use the Suno Lyrics Generation API, please refer to Suno Lyrics Generation API .
We take one task ID returned by the Suno Audios Generation API service as an example to demonstrate how to use this API. Suppose we have a task ID: eae26f89-b64b-404d-a80c-761996660b1c, next we demonstrate how to by passing in a task ID.
¶ Task Example Image

¶ Set Request Headers and Request Body
Request Headers include:
accept: Specifies that the response result is received in JSON format. Enterapplication/jsonhere.authorization: The key for calling the API, which can be directly selected from the dropdown after application.
Request Body includes:
id: The uploaded task ID.action: The method of operation on the task.
Set as shown in the figure below:

¶ Code Example
It can be seen that code in various languages has already been automatically generated on the right side of the page, as shown in the figure:

Some code examples are as follows:
¶ CURL
curl -X POST 'https://api.qiyaov.com/suno/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"id": "eae26f89-b64b-404d-a80c-761996660b1c",
"action": "retrieve"
}'
¶ Python
import requests
url = "https://api.qiyaov.com/suno/tasks"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"id": "eae26f89-b64b-404d-a80c-761996660b1c",
"action": "retrieve"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
¶ Response Example
After the request succeeds, the API will return detailed information about the song task here. For example:
{
"_id": "66d2add5550a4144a5a88dfe",
"id": "eae26f89-b64b-404d-a80c-761996660b1c",
"api_id": "09a26295-5972-4392-9318-dcd9b218f90d",
"application_id": "ab46a066-ad82-4180-b66b-49dedf8e8a2f",
"created_at": 1725083093.077,
"started_at": 1725083093.137,
"finished_at": 1725083131.537,
"elapsed": 38.4,
"credential_id": "66614a7e-e624-494e-87a3-387099b8cbb4",
"request": {
"action": "generate",
"prompt": "A song for Christmas"
},
"trace_id": "e13d385a-077e-4376-be01-3465b61ca0fd",
"user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
"response": {
"success": true,
"task_id": "eae26f89-b64b-404d-a80c-761996660b1c",
"data": [
{
"id": "b8a4f691-4b14-4120-a7e1-a54a27a0e57e",
"title": "Holiday Wishes",
"image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
"lyric": "[Verse]\nSnow is falling soft and white\nLights are twinkling oh so bright\nKids are laughing full of cheer\nChristmas time is finally here\n[Verse 2]\nBells are ringing in the night\nFireplace is warm with light\nCarols sung by the tree\nEveryone's together we agree\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Verse 3]\nGifts are wrapped with loving care\nMagic's floating in the air\nCookies baking in the oven\nChristmas love to be given\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Bridge]\nStars are shining in the sky\nHold your loved ones don't ask why\nHeart to heart we're all united\nOn this night we are delighted",
"audio_url": "https://cdn.acedata.cloud/assets/examples/fish/5ade0339-5f11-487e-aacc-06a908271706-8e3fcb0e5547.mp3",
"video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
"created_at": "2024-08-31T05:44:54.806Z",
"model": "chirp-v3.5",
"prompt": "A song for Christmas",
"style": "pop",
"duration": 154.44
},
{
"id": "1a3343b2-2c24-4584-a2a7-687e2f97f09e",
"title": "Holiday Wishes",
"image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
"lyric": "[Verse]\nSnow is falling soft and white\nLights are twinkling oh so bright\nKids are laughing full of cheer\nChristmas time is finally here\n[Verse 2]\nBells are ringing in the night\nFireplace is warm with light\nCarols sung by the tree\nEveryone's together we agree\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Verse 3]\nGifts are wrapped with loving care\nMagic's floating in the air\nCookies baking in the oven\nChristmas love to be given\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Bridge]\nStars are shining in the sky\nHold your loved ones don't ask why\nHeart to heart we're all united\nOn this night we are delighted",
"audio_url": "https://cdn.acedata.cloud/assets/examples/fish/5ade0339-5f11-487e-aacc-06a908271706-8e3fcb0e5547.mp3",
"video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
"created_at": "2024-08-31T05:44:54.806Z",
"model": "chirp-v3.5",
"prompt": "A song for Christmas",
"style": "pop",
"duration": 147.16
}
]
}
}
The returned result contains multiple fields. The request field is the request body when initiating the task, while the response field is the response body returned after the task is completed. The fields are described as follows.
id, the ID of the task that generates this song, used to uniquely identify this song generation task.request, the request information in the song task query.response, the response information in the song task query.created_at, task creation time, Unix timestamp (seconds, floating point).started_at, task execution start time, Unix timestamp (seconds, floating point).finished_at, task completion time, Unix timestamp (seconds, floating point). This field is not returned when the task is not completed.elapsed, task execution duration, in seconds (floating point, rounded to 3 decimal places). This field is not returned when the task is not completed.
¶ Batch Query Operation
This is for querying song task details for multiple task IDs. Unlike above, you need to select the action as retrieve_batch
Request Body includes:
ids: Array of uploaded task IDs.action: The operation method for the task.
Set it as shown in the figure below:

¶ Code Example
You can find that code in various languages has already been automatically generated on the right side of the page, as shown in the figure:

Some code examples are as follows:
¶ Response Example
After the request succeeds, the API will return detailed information for all batch song tasks this time. For example:
"items": [
{
"_id": "66d2add5550a4144a5a88dfe",
"id": "eae26f89-b64b-404d-a80c-761996660b1c",
"api_id": "09a26295-5972-4392-9318-dcd9b218f90d",
"application_id": "ab46a066-ad82-4180-b66b-49dedf8e8a2f",
"created_at": 1725083093.077,
"started_at": 1725083093.137,
"finished_at": 1725083131.537,
"elapsed": 38.4,
"credential_id": "66614a7e-e624-494e-87a3-387099b8cbb4",
"request": {
"action": "generate",
"prompt": "A song for Christmas"
},
"trace_id": "e13d385a-077e-4376-be01-3465b61ca0fd",
"user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
"response": {
"success": true,
"task_id": "eae26f89-b64b-404d-a80c-761996660b1c",
"data":
[
{
"id": "b8a4f691-4b14-4120-a7e1-a54a27a0e57e",
"title": "Holiday Wishes",
"image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
"lyric": "[Verse]\nSnow is falling soft and white\nLights are twinkling oh so bright\nKids are laughing full of cheer\nChristmas time is finally here\n[Verse 2]\nBells are ringing in the night\nFireplace is warm with light\nCarols sung by the tree\nEveryone's together we agree\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Verse 3]\nGifts are wrapped with loving care\nMagic's floating in the air\nCookies baking in the oven\nChristmas love to be given\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Bridge]\nStars are shining in the sky\nHold your loved ones don't ask why\nHeart to heart we're all united\nOn this night we are delighted",
"audio_url": "https://cdn.acedata.cloud/assets/examples/fish/5ade0339-5f11-487e-aacc-06a908271706-8e3fcb0e5547.mp3",
"video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
"created_at": "2024-08-31T05:44:54.806Z",
"model": "chirp-v3.5",
"prompt": "A song for Christmas",
"style": "pop",
"duration": 154.44
}, {
"id": "1a3343b2-2c24-4584-a2a7-687e2f97f09e",
"title": "Holiday Wishes",
"image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
"lyric": "[Verse]\nSnow is falling soft and white\nLights are twinkling oh so bright\nKids are laughing full of cheer\nChristmas time is finally here\n[Verse 2]\nBells are ringing in the night\nFireplace is warm with light\nCarols sung by the tree\nEveryone's together we agree\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Verse 3]\nGifts are wrapped with loving care\nMagic's floating in the air\nCookies baking in the oven\nChristmas love to be given\n[Chorus]\nHoliday wishes come true\nTime to share the joy with you\nSmiles and hugs for everyone\nMerry Christmas let's have fun\n[Bridge]\nStars are shining in the sky\nHold your loved ones don't ask why\nHeart to heart we're all united\nOn this night we are delighted",
"audio_url": "https://cdn.acedata.cloud/assets/examples/fish/5ade0339-5f11-487e-aacc-06a908271706-8e3fcb0e5547.mp3",
"video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
"created_at": "2024-08-31T05:44:54.806Z",
"model": "chirp-v3.5",
"prompt": "A song for Christmas",
"style": "pop",
"duration": 147.16
}
]
}
}, {
"_id": "66d2b03c550a4144a5a8d93d",
"id": "0d3ed03b-912b-4f7d-941b-8441323cb77b",
"api_id": "09a26295-5972-4392-9318-dcd9b218f90d",
"application_id": "ab46a066-ad82-4180-b66b-49dedf8e8a2f",
"created_at": 1725083708.53,
"started_at": 1725083708.59,
"finished_at": 1725083746.99,
"elapsed": 38.4,
"credential_id": "66614a7e-e624-494e-87a3-387099b8cbb4",
"request": {
"action": "generate",
"prompt": "la la la"
},
"trace_id": "29ebb919-1126-4156-86cc-4ad899432a8c",
"user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
"response": {
"success": true,
"task_id": "0d3ed03b-912b-4f7d-941b-8441323cb77b",
"data": [
{
"id": "b4f498b2-e86f-4172-926a-39da9df84dd3",
"title": "La La La",
"image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
"lyric": "[Verse]\nI wake up every morning\nLook through the window\nBright sunshine shining\nThe beginning of a new day\n[Verse 2]\nThe birds sing joyfully\nI dance in the garden\nBeautiful flowers surround me\nEvery moment here is mine\n[Chorus]\nLa la la la la la\nSing with me\nDon't stop\nLa la la la la la\nRejoice, enjoying life\n[Verse 3]\nThe sea is blue and vast\nWaves ebb sweetly\nWe walk on beaches\nRegardless of the weather\n[Bridge]\nSeize every hour\nHear my songs\nFeel free\nHappy\nDance to the rhythm now\n[Chorus]\nLa la la la la la\nSing with me\nDon't stop\nLa la la la la la\nRejoice, enjoying life",
"audio_url": "https://cdn.acedata.cloud/assets/examples/fish/5ade0339-5f11-487e-aacc-06a908271706-8e3fcb0e5547.mp3",
"video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
"created_at": "2024-08-31T05:55:09.345Z",
"model": "chirp-v3.5",
"prompt": "la la la",
"style": "pop",
"duration": 154.32
},
{
"id": "8b44fdf1-3b88-47ac-a351-7c4b4de60549",
"title": "La La La",
"image_url": "https://cdn.acedata.cloud/e724d7f13d.png",
"lyric": "[Verse]\nI wake up every morning\nLook through the window\nBright sunshine shining\nBeginning of a new day\n[Verse 2]\nThe birds sing joyfully\nI dance in the garden\nBeautiful flowers surround me\nEvery moment here is mine\n[Chorus]\nLa la la la la la\nSing with me\nDo not stop\nLa la la la la la\nRejoice enjoying life\n[Verse 3]\nThe sea blue and vast\nWaves ebb sweetly\nWe walk on beaches\nRegardless of the time\n[Bridge]\nCatch every hour\nHear my singing\nFeel free\nHappy\nDance to the rhythm now\n[Chorus]\nLa la la la la la\nSing with me\nDo not stop\nLa la la la la la\nRejoice enjoying life",
"audio_url": "https://cdn.acedata.cloud/assets/examples/fish/5ade0339-5f11-487e-aacc-06a908271706-8e3fcb0e5547.mp3",
"video_url": "https://cdn.acedata.cloud/assets/examples/gemini/04a043bd-6b23-4b4e-945c-ce48158c3eee-3a89912507c7.mp4",
"created_at": "2024-08-31T05:55:09.345Z",
"model": "chirp-v3.5",
"prompt": "la la la",
"style": "pop",
"duration": 177.36
}
]
}
}
],
"count": 2
}
The returned result contains multiple fields, among which items contains the specific detailed information of batch song tasks. The specific information of each song task is the same as the fields above, and the field information is as follows.
items, all specific detailed information of batch song tasks. It is an array, and each element of the array has the same format as the return result for querying a single task above.count, the number of song tasks queried in batch here.
¶ CURL
curl -X POST 'https://api.qiyaov.com/suno/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"ids": ["eae26f89-b64b-404d-a80c-761996660b1c","0d3ed03b-912b-4f7d-941b-8441323cb77b"],
"action": "retrieve_batch"
}'
¶ Python
import requests
url = "https://api.qiyaov.com/suno/tasks"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"ids": ["eae26f89-b64b-404d-a80c-761996660b1c","0d3ed03b-912b-4f7d-941b-8441323cb77b"],
"action": "retrieve_batch"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
¶ Error Handling
When calling the API, if an error is encountered, the API will return the corresponding error code and information. For example:
400 token_mismatched: Bad request, possibly due to missing or invalid parameters.400 api_not_implemented: Bad request, possibly due to missing or invalid parameters.401 invalid_token: Unauthorized, invalid or missing authorization token.429 too_many_requests: Too many requests, you have exceeded the rate limit.500 api_error: Internal server error, something went wrong on the server.
¶ Error Response Example
{
"success": false,
"error": {
"code": "api_error",
"message": "fetch failed"
},
"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
¶ Conclusion
Through this document, you have learned how to use the Suno Tasks API to query all specific detailed information of single or batch song tasks. We hope this document can help you better integrate and use this API. If you have any questions, please feel free to contact our technical support team.