KIE.AI
Chinese
  • English
  • Chinese
Chinese
  • English
  • Chinese
Support
Chinese
  • English
  • Chinese
MarketVeo3.1 APISuno API
4o Image APIFlux Kontext APIRunway APILuma APIFile Upload APICommon API
MarketVeo3.1 APISuno API
4o Image APIFlux Kontext APIRunway APILuma APIFile Upload APICommon API
  1. Music Generation
  • Suno API 快速开始
  • Music Generation
    • 生成音乐回调
    • 音乐扩展回调
    • 音频上传和翻唱回调
    • 音频上传和扩展回调
    • 添加伴奏回调
    • 添加人声回调
    • 音乐封面生成回调
    • 替换音乐分区回调
    • 生成音乐
      POST
    • 延长音乐
      POST
    • 上传并翻唱音乐
      POST
    • 上传并扩展音乐
      POST
    • 添加伴奏生成音乐
      POST
    • 添加人声生成音乐
      POST
    • 获取音乐任务详情
      GET
    • 获取带时间戳的歌词
      POST
    • 提升音乐风格
      POST
    • 替换音乐分区
      POST
    • 生成音乐封面
      POST
    • 获取音乐封面生成详情
      GET
    • 生成 Persona
      POST
  • Lyrics Generation
    • 生成歌词回调
    • 生成歌词
      POST
    • 获取歌词任务详情
      GET
  • WAV Conversion
    • 转换为WAV格式回调
    • 转换为WAV格式
      POST
    • 获取WAV转换详情
      GET
  • Vocal Removal
    • 音频分离回调
    • MIDI 生成回调
    • 从音频生成 MIDI
    • 获取 MIDI 生成详情
    • 人声和乐器分离
    • 获取人声和乐器分离详情
  • Music Video Generation
    • MP4生成完成回调
    • 创建音乐视频
    • 获取音乐视频详情
Chinese
  • English
  • Chinese
Support
Chinese
  • English
  • Chinese
MarketVeo3.1 APISuno API
4o Image APIFlux Kontext APIRunway APILuma APIFile Upload APICommon API
MarketVeo3.1 APISuno API
4o Image APIFlux Kontext APIRunway APILuma APIFile Upload APICommon API
  1. Music Generation

生成音乐回调

当音频生成完成时,系统会调用此回调通知结果。
当您向Suno API提交音乐生成任务时,可以使用 callBackUrl 参数设置回调URL。任务完成时,系统将自动向您指定的地址推送结果。

回调机制概述#

回调机制消除了轮询API获取任务状态的需要。系统会主动向您的服务器推送任务完成结果。
Webhook 安全性:为确保回调请求的真实性和完整性,我们强烈建议您实现 webhook 签名验证。请参阅我们的 Webhook 校验指南 了解详细实现步骤。

回调时机#

系统将在以下情况发送回调通知:
音乐生成任务成功完成
音乐生成任务失败
任务处理过程中发生错误

回调方式#

HTTP方法: POST
内容类型: application/json
超时设置: 15秒

回调请求格式#

任务完成时,系统将以下格式向您的 callBackUrl 发送POST请求:
成功回调
失败回调
{
  "code": 200,
  "msg": "All generated successfully.",
  "data": {
    "callbackType": "complete",
    "task_id": "2fac****9f72",
    "data": [
      {
        "id": "e231****-****-****-****-****8cadc7dc",
        "audio_url": "https://example.cn/****.mp3",
        "stream_audio_url": "https://example.cn/****",
        "image_url": "https://example.cn/****.jpeg",
        "prompt": "[Verse] 夜晚城市 灯火辉煌",
        "model_name": "chirp-v3-5",
        "title": "钢铁侠",
        "tags": "electrifying, rock",
        "createTime": "2025-01-01 00:00:00",
        "duration": 198.44
      }
    ]
  }
}

状态码说明#

code (integer, required)#

回调状态码,表示任务处理结果:
状态码描述
200成功 - 请求已成功处理
400验证错误 - 歌词包含受版权保护的内容
408超出限制 - 超时
413冲突 - 上传的音频与现有艺术作品匹配
500服务器错误 - 处理请求时发生意外错误
501音频生成失败
531服务器错误 - 抱歉,由于问题生成失败。您的积分已退还。请重试

msg (string, required)#

状态消息,提供更详细的状态描述

data.callbackType (string, required)#

回调类型:
text - 文本生成完成
first - 第一首生成完成
complete - 全部生成完成
error - 生成失败

data.task_id (string, required)#

任务ID,与您提交任务时返回的task_id一致

data.data (array)#

生成的音频数据数组,成功时返回

data.data[].id (string)#

音频唯一标识

data.data[].audio_url (string)#

音频文件URL

data.data[].stream_audio_url (string)#

流式音频URL

data.data[].image_url (string)#

封面图片URL

data.data[].prompt (string)#

生成提示词/歌词

data.data[].model_name (string)#

使用的模型名称

data.data[].title (string)#

音乐标题

data.data[].tags (string)#

音乐标签

data.data[].createTime (string)#

创建时间

data.data[].duration (number)#

音频时长(秒)

回调接收示例#

以下是常用编程语言接收回调的示例代码:
Node.js
Python

最佳实践#

回调URL配置建议#

1.
使用HTTPS: 确保回调URL使用HTTPS协议以保证数据传输安全
2.
验证来源: 在回调处理中验证请求来源的合法性
3.
幂等处理: 同一task_id可能收到多次回调,确保处理逻辑是幂等的
4.
快速响应: 回调处理应尽快返回200状态码以避免超时
5.
异步处理: 复杂的业务逻辑应异步处理以避免阻塞回调响应
6.
状态跟踪: 根据callbackType区分不同的生成阶段,合理安排业务逻辑

重要提醒#

回调URL必须是公开可访问的地址
服务器必须在15秒内响应,否则将被认为超时
如果连续3次重试失败,系统将停止发送回调
请确保回调处理逻辑的稳定性,避免因异常导致回调失败
注意处理不同callbackType的回调,特别是complete类型的最终结果

故障排查#

如果您未收到回调通知,请检查以下内容:
网络连接问题
确认回调URL可以从公网访问
检查防火墙设置,确保入站请求未被阻止
验证域名解析是否正确
服务器响应问题
确保服务器在15秒内返回HTTP 200状态码
检查服务器日志是否有错误消息
验证接口路径和HTTP方法是否正确
内容格式问题
确认收到的POST请求体为JSON格式
检查Content-Type是否为application/json
验证JSON解析是否正确
回调类型处理
确认正确处理不同的callbackType
检查是否遗漏了complete类型的最终结果处理
验证音频数据解析是否正确

替代方案#

如果您无法使用回调机制,也可以使用轮询方式:
轮询查询结果
使用获取音乐详情端点定期查询任务状态。建议每30秒查询一次。
Previous
Suno API 快速开始
Next
音乐扩展回调
Built with