接口与鉴权

GET https://top.qingyuntop.ai/suno/fetch/{task_id}

使用 Authorization: Bearer YOUR_API_KEY,不发送请求体。将 TASK_ID 替换为提交响应的 data 字符串,不能使用歌曲 id 或 Responses 的 resp ID。

查询示例

cURL 展示一次查询;Python 和 Node.js 展示带 30 分钟等待上限的轮询。超时只停止本地等待,不取消服务端生成。

curl --fail-with-body "https://top.qingyuntop.ai/suno/fetch/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

返回结构

外层 code: "success" 表示查询成功,生成是否成功看 data.status。以下为结构示意,不是实际生成记录:

{
  "code": "success",
  "message": "",
  "data": {
    "created_at": 1789776000,
    "updated_at": 1789776090,
    "task_id": "TASK_ID",
    "platform": "sunoapi",
    "status": "SUCCESS",
    "fail_reason": "",
    "submit_time": 1789776000,
    "finish_time": 1789776090,
    "progress": "100%",
    "data": [{"id":"SONG_ID","title":"清晨海岸","audio_url":"https://example.com/song.mp3","image_url":"https://example.com/cover.jpg","metadata":{"prompt":"歌词正文"}}]
  }
}
字段含义
data.task_id中转站公共任务 ID,后续查询与下载使用它
data.statusNOT_START、SUBMITTED、QUEUED、IN_PROGRESS 等为等待状态;SUCCESS 为成功,FAILURE 为失败
data.progress进度字符串,可能为空;不要仅凭 100% 判定成功
data.fail_reason失败时的原因
created_at、updated_at、submit_time、finish_timerc.38 返回 Unix 秒,不是毫秒;未发生的时间可为 0
data.data初次查询可能只有提交回执;成功后通常为歌曲数组或歌词对象,不能过早当数组遍历

歌曲的音频通常在 audio_url,封面在 image_url,歌词可能在歌曲的 metadata.prompt;歌词任务主要读取 text。数据由上游返回,不保证每项字段都存在。成功结果也可能包在 data.data 的上游任务对象中;解析时先检查类型,再取其内部 data。

建议通过统一任务产物接口下载音频和封面。歌词任务没有音频产物是正常情况。

错误处理

401/403 检查 Key 与权限;404 检查任务 ID 及账号归属;429 降低查询频率;5xx 可延迟重试查询。网络中断后继续 GET 原 ID,不要重新 POST 生成请求。