Suno · Music
Extend Uploaded Audio
📌 What is this:Continue generating from audio you uploaded.
💡 When to use:Use when you have your own recording and want AI to continue it.
Endpoints
| Usage | Method | Path |
|---|---|---|
| Submit task | POST | /api/cqt/generator/suno |
| Query Result | GET | /api/cqt/info/suno?id={taskId} |
Request Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| task | string | Required | Fixed value: upload_extend |
| model | string | Required | Model version |
| audioUrl | string | Required | Downloadable URL of your uploaded audio |
| continueAt | number | — | Second in the uploaded audio to continue from |
| customMode | bool | — | Custom mode: when true, prompt is exact lyrics; when false, a style description |
| prompt | string | — | Style description or lyrics (depends on customMode) |
| tags | string | — | Style tags, e.g. Happy, Party |
| negativeTags | string/array | — | Style tags to exclude |
| title | string | — | Song title |
| makeInstrumental | bool | — | Instrumental only (no vocals), default false |
Advanced Parameters (optional)
| Param | Type | Description |
|---|---|---|
| styleWeight | number(0~1) | Style weight; higher sticks closer to tags |
| audioWeight | number(0~1) | Original-audio influence weight (for audio-based tasks) |
| weirdnessConstraint | number(0~1) | Creativity / weirdness; higher is bolder |
| personaId | string | Voice persona ID (sing with a persona) |
| artistClipId | string | Reference clip ID for style |
Request Example
curl -X POST https://api.cqtai.com/api/cqt/generator/suno \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"task": "upload_extend",
"model": "v45",
"customMode": false,
"audioUrl": "https://cdn1.suno.ai/4f51f49d-8875-442d-9a66-81a7e66d55d6.mp3",
"continueAt": 60,
"makeInstrumental": false,
"prompt": "Upbeat EDM about sunrise and new beginnings.",
"tags": "Happy, Party",
"negativeTags": "Hip-Hop/Rap",
"title": "Roadtrip Sunrise2",
"styleWeight": 0.65,
"weirdnessConstraint": 0.65,
"audioWeight": 0.65
}'
# -> { "code":200, "data":"<taskId>" }Response Example
{
"code": 200,
"msg": "success",
"data": {
"id": "6a52043628d141ff935630360126a59e",
"taskType": "upload_extend",
"status": "succeeded",
"errorMsg": "",
"param": {
"task": "upload_extend",
"model": "chirp-v45",
"customMode": false,
"audioUrl": "https://cdn1.suno.ai/4f51f49d-8875-442d-9a66-81a7e66d55d6.mp3",
"continueAt": 60,
"makeInstrumental": false,
"prompt": "Upbeat EDM about sunrise and new beginnings.",
"tags": "Happy, Party",
"negativeTags": "Hip-Hop/Rap",
"title": "Roadtrip Sunrise2",
"styleWeight": 0.65,
"weirdnessConstraint": 0.65,
"audioWeight": 0.65
},
"result": [
{
"id": "7c060811-93e1-4a60-8b6f-a8d95664b87c",
"title": "Roadtrip Sunrise2",
"handle": "rositabadgercldrq",
"status": "complete",
"user_id": "8338d85e-0591-4277-a134-cc1080a107f5",
"metadata": {
"key": "E_major",
"tags": "Happy, Party",
"task": "upload_extend",
"type": "gen",
"prompt": "[Verse 1] Window full of gold Shoes on the floor …(完整歌词已省略)",
"avg_bpm": 140.08,
"max_bpm": 142.86,
"min_bpm": 136.36,
"duration": 140.64,
"is_remix": true,
"has_vocal": true,
"continue_at": 60,
"negative_tags": "Hip-Hop/Rap",
"edited_clip_id": "a64de940-752d-4a58-8085-9d869792b581",
"history": [
{ "id": "a64de940-752d-4a58-8085-9d869792b581", "type": "upload", "source": "ios", "continue_at": 60 }
],
"control_sliders": { "audio_weight": 0.65, "style_weight": 0.65, "weirdness_constraint": 0.65 },
"make_instrumental": false,
"uses_latest_model": false,
"can_publish_with_vocal": true,
"gpt_description_prompt": "Upbeat EDM about sunrise and new beginnings."
},
"audio_url": "https://cdn1.suno.ai/7c060811-93e1-4a60-8b6f-a8d95664b87c.mp3",
"image_url": "https://cdn2.suno.ai/image_7c060811-93e1-4a60-8b6f-a8d95664b87c.jpeg",
"image_large_url": "https://cdn2.suno.ai/image_large_7c060811-93e1-4a60-8b6f-a8d95664b87c.jpeg",
"video_url": "",
"clip_roots": {
"clips": [
{
"id": "a64de940-752d-4a58-8085-9d869792b581",
"title": "4f51f49d-8875-442d-9a66-81a7e66d55d6",
"image_url": "https://cdn2.suno.ai/image_a64de940-752d-4a58-8085-9d869792b581.jpeg",
"user_handle": "rositabadgercldrq",
"user_display_name": "rositabadgercldrq"
}
],
"clip_attribution_type": "remix"
},
"media_urls": [
{ "url": "https://d2lwuy8qc234o3.cloudfront.net/1/clip/7c060811-93e1-4a60-8b6f-a8d95664b87c.m4a", "delivery": "progressive", "content_type": "m4a-opus" },
{ "url": "https://cdn1.suno.ai/7c060811-93e1-4a60-8b6f-a8d95664b87c.mp3", "delivery": "progressive", "content_type": "mp3" }
],
"model_name": "chirp-auk",
"batch_index": 0,
"created_at": "2026-07-08T06:49:07.242Z",
"major_model_version": "v4.5"
},
{
"id": "f695c860-a09c-435d-838f-d0b571e38558",
"title": "Roadtrip Sunrise2",
"status": "complete",
"metadata": {
"key": "E_major",
"task": "upload_extend",
"duration": 144.96,
"avg_bpm": 140.06,
"is_remix": true,
"has_vocal": true,
"continue_at": 60,
"gpt_description_prompt": "Upbeat EDM about sunrise and new beginnings."
},
"audio_url": "https://cdn1.suno.ai/f695c860-a09c-435d-838f-d0b571e38558.mp3",
"image_url": "https://cdn2.suno.ai/image_f695c860-a09c-435d-838f-d0b571e38558.jpeg",
"batch_index": 1,
"major_model_version": "v4.5"
}
],
"createTime": "2026-07-08 14:48:24",
"completeTime": "2026-07-08 14:51:01"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
| code | number | Status code; 200 = success |
| msg | string | Message |
| data.id | string | Task ID (the taskId returned on submit; used to poll) |
| data.taskType | string | Task type; matches the submitted task |
| data.status | string | Status: pending / succeeded / failed |
| data.errorMsg | string | Failure reason; empty on success |
| data.param | object | Echo of the request params you submitted |
| data.result | array | Results; returns 2 candidate clips |
| data.result[].id | string | The generated clipId; reusable for further extend / cover, etc. |
| data.result[].audio_url | string | Audio file URL (mp3) |
| data.result[].video_url | string | Video file URL (mp4); may be empty, re-query later |
| data.result[].image_url | string | Cover image URL (image_large_url is the large one) |
| data.result[].title | string | Song title |
| data.result[].status | string | Clip status; "complete" = ready to download |
| data.result[].metadata.duration | number | Total audio duration (seconds) |
| data.result[].metadata.tags | string | Style tags |
| data.result[].metadata.key | string | Musical key, e.g. E_major |
| data.result[].metadata.avg_bpm | number | Average tempo in BPM (also max_bpm/min_bpm) |
| data.result[].metadata.has_vocal | bool | Whether it contains vocals |
| data.result[].metadata.continue_at | number | Second in the uploaded audio where the continuation starts |
| data.result[].metadata.history | array | Lineage: type=upload means it continues from your uploaded audio |
| data.result[].metadata.negative_tags | string | Excluded style tags (echo of negativeTags) |
| data.result[].metadata.gpt_description_prompt | string | Your style description (echo of prompt) |
| data.result[].metadata.is_remix | bool | Whether it is a remix; always true for upload_extend |
| data.result[].clip_roots | object | Source (parent) clip info: title / cover / author |
| data.result[].media_urls | array | Multi-format audio URLs (m4a-opus / mp3) |
| data.result[].batch_index | number | Candidate index (0, 1) |
| data.result[].major_model_version | string | Model version used, e.g. v4.5 / v5.5 |
| data.createTime / completeTime | string | Task submit time / completion time |
| 其它字段 | — | action_config / model_badges / secondary_badges / ownership / avatar_image_url, etc. are for Suno UI and can be ignored |
Billing & Credits
30 credits (x your user rate). Auto-refunded on failure.