Suno API 轮询与超时设置
「提交成功」和「歌做好了」是两件事。把等待方式设计对,接入就稳了一半。
推荐参数
| 项目 | 建议 |
|---|---|
| 轮询间隔 | 3–5 秒一次;更密没有收益,反而浪费配额 |
| 客户端超时 | 设到分钟级(例如 300 秒),不要用 30 秒 |
| 轮询上限 | 给一个总预算(例如 5 分钟),超过就标记为待人工确认 |
| 终止条件 | 状态为完成取文件;状态为失败看原因并退费 |
为什么超时不能直接重提
提交成功就已经下单。客户端超时只代表你没等到响应,任务很可能还在跑;这时重新提交会真的再下一单,等于为同一首歌付两次钱。正确做法是先查任务状态再决定。
一个够用的循环
task = submit(prompt)
while elapsed < 300:
s = query(task.id)
if s.status in ("complete", "completed"):
return download_url(s.song_id)
if s.status in ("failed", "error"):
raise GenerationFailed(s.reason)
sleep(4)
常见问题 / FAQ
生成为什么比预期慢?
多数慢请求是在等一次安全检查;状态没变成失败就继续等,不要重提。
能取消任务吗?
没有取消接口;已经完成的歌就当多出一首,费用已经花掉。
失败会扣费吗?
不会,失败自动退费;看任务状态即可区分「失败」和「还没跑完」。
申请 Key、第一个请求、接口清单与报错排查
注册只需要邮箱,一次生成 0.6 元出 2 首,MP3 与 WAV 下载不限次。
看接口与状态字段
注册只需要邮箱,一次生成 0.6 元出 2 首,MP3 与 WAV 下载不限次。