CQTAI
Suno · Music

Export MP4 / WAV / Timeline / Downbeats

📌 What is thisExport a song to video (MP4), lossless audio (WAV), or get lyric timeline / beat data.
💡 When to useUse to download deliverables or get a timeline for subtitles. Note: creation tasks auto-generate these for free, so you usually don’t need to resubmit.

Endpoints

UsageMethodPath
Submit taskPOST/api/cqt/generator/suno
Query ResultGET/api/cqt/info/suno?id={taskId}

Request Parameters

ParamTypeRequiredDescription
taskstringRequiredOne of mp4 / wav / timeline / downbeats
clipIdstringRequiredSource clip ID

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":"mp4", "clipId":"clip_abc123" }'
# -> { "code":200, "data":"<taskId>" }

Response Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "id": "0ccf746e2ebb409dbaf5cda7540981d6",
    "taskType": "timeline",
    "status": "succeeded",
    "errorMsg": "",
    "param": { "task": "timeline", "clipId": "e1a78bfe-2e53-4207-9cd8-c764c4bfc621" },
    "result": {
      "aligned_words": [
        { "word": "[Verse 1]\nRed ", "success": true, "start_s": 9.09574, "end_s": 9.33511, "p_align": 0.99 },
        { "word": "eyes ",  "success": true, "start_s": 9.43484, "end_s": 9.73404, "p_align": 0.99 },
        { "word": "from ",  "success": true, "start_s": 9.77394, "end_s": 9.89362, "p_align": 0.99 },
        { "word": "the ",   "success": true, "start_s": 9.94681, "end_s": 10.05319, "p_align": 0.99 },
        { "word": "long ",  "success": true, "start_s": 10.11303, "end_s": 10.29255, "p_align": 0.99 },
        { "word": "night\n", "success": true, "start_s": 10.3883, "end_s": 11.48936, "p_align": 0.99 }
      ]
    }
  }
}

Response Fields

FieldTypeDescription
codenumberStatus code; 200 = success
msgstringMessage
data.idstringTask ID (the taskId returned on submit; used to poll)
data.taskTypestringTask type; matches submitted task: mp4 / wav / timeline / downbeats
data.statusstringStatus: pending / succeeded / failed
data.errorMsgstringFailure reason; empty on success
data.paramobjectEcho of the request params you submitted
data.resultobjectResult object; shape depends on task: mp4/wav = file URL, downbeats = beat data, timeline = per-word alignment
data.result.aligned_wordsarray(task=timeline) per-word timeline array, one entry per word
data.result.aligned_words[].wordstringWord (includes line breaks and section markers, e.g. [Verse 1])
data.result.aligned_words[].start_s / end_snumberWord start / end time (seconds)
data.result.aligned_words[].p_alignnumberAlignment confidence (0-1)

Billing & Credits

2 credits each (auto-generated ones are free) (x your user rate). Auto-refunded on failure.