Skip to content

Suno 音乐生成

请求地址

http
POST /v1/audio/generations

兼容地址:

http
POST /media/audio/generations

查询和取消:

http
GET /v1/audio/generations/{id}
POST /v1/audio/generations/{id}/cancel

/media/audio/generations/{id}/media/audio/generations/{id}/cancel 保持兼容。

生成音乐

json
{
  "model": "suno-music",
  "mode": "v5_5",
  "generation_type": "music_generation",
  "client_request_id": "suno-demo-001",
  "custom_mode": false,
  "prompt": "uplifting synth pop with bright drums and a confident chorus"
}

自定义纯音乐:

json
{
  "model": "suno-music",
  "mode": "v5_5",
  "generation_type": "music_generation",
  "client_request_id": "suno-instrumental-001",
  "custom_mode": true,
  "instrumental": true,
  "style": "cinematic ambient pop, warm analog synths",
  "title": "Soft Horizon"
}

规则:

  • client_request_id 是可选幂等键,最多 128 个可打印 ASCII 字符;同一 API Key 下相同请求体会返回同一个任务。
  • mode 当前只支持 v5_5
  • custom_mode=false 时必须传 prompt,最多 500 字符。
  • custom_mode=true 时必须传 styletitle
  • custom_mode=trueinstrumental=false 时还必须传 prompt
  • 自定义 prompt 最多 5000 字符,style 最多 1000 字符,生成 title 最多 80 字符。
  • 使用下方支持的扩展类型时,audio_idtask_idduration_secondspersona_idpersona_model、callback 相关字段等会透传给上游 Suno 兼容服务。

创建成功返回 202 Accepted

json
{
  "code": 0,
  "message": "accepted",
  "data": {
    "id": "task_xxx",
    "status": "queued"
  }
}

其他 Suno 操作

同一个接口也支持以下 generation_type

generation_type用途
lyrics_generation歌词生成
music_cover翻唱或风格改编
upload_cover基于上传或引用音频翻唱
timestamped_lyrics生成或获取时间戳歌词
stem_separation人声、伴奏或分轨分离
wav_conversion转换生成音频为 WAV
music_video基于音频创建音乐视频
add_vocals给伴奏或音频添加人声
add_instrumental添加伴奏
upload_extend延长上传或引用音频

这些类型可按上游 Suno 兼容服务要求传入对应字段,例如 audio_urlaudio_idtask_idsource_generation_idsource_track_indexlyricsfile_url 或 provider 专用参数。网关仍返回本平台公开的 task_xxx,并将这些类型专用字段透传给上游。

source_generation_idtask_idsourceGenerationIdtaskId 使用同账号下的公开 task_xxx 时,网关会在转发前解析为上游真实任务 ID。

扩展音乐

扩展音乐时,source_generation_id 使用本平台返回的 task_xxx,不要传其他系统的原始任务 ID。

json
{
  "model": "suno-music",
  "mode": "v5_5",
  "generation_type": "music_extend",
  "client_request_id": "suno-extend-001",
  "source_generation_id": "task_xxx",
  "source_track_index": 0,
  "default_param_flag": false
}

自定义扩展:

json
{
  "model": "suno-music",
  "mode": "v5_5",
  "generation_type": "music_extend",
  "client_request_id": "suno-extend-custom-001",
  "source_generation_id": "task_xxx",
  "source_track_index": 0,
  "default_param_flag": true,
  "continue_at_seconds": 42.5,
  "prompt": "continue with a bigger second chorus and tighter drums",
  "style": "cinematic synth pop",
  "title": "Soft Horizon Extended"
}

扩展规则:

  • source_generation_id 必须是同一账号下已完成的 suno-music 任务 ID。
  • source_track_index 必须传入,从 0 开始。
  • default_param_flag=false 时只接受 source_generation_idsource_track_index,不要额外传 promptstyletitlecontinue_at_seconds
  • default_param_flag=true 时必须传 promptstyletitlecontinue_at_seconds
  • continue_at_seconds 必须大于 0;如果源音轨已返回 duration_seconds,还必须小于源音轨时长。
  • 扩展 title 最多 100 字符。

查询结果

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "task_xxx",
    "kind": "audio",
    "status": "completed",
    "model": "suno-music",
    "mode": "v5_5",
    "family": "suno",
    "generation_type": "music_generation",
    "poll_url": "/v1/audio/generations/task_xxx",
    "cancel_url": "/v1/audio/generations/task_xxx/cancel",
    "result": {
      "outputs": ["https://static.example.com/media/suno-output.mp3"],
      "tracks": [
        {
          "index": 0,
          "title": "Soft Horizon",
          "duration_seconds": 123.4,
          "cover_url": "https://example.com/cover.jpg"
        }
      ]
    }
  }
}

说明:

  • result.outputs 是可直接播放或下载的音频 URL。
  • result.tracks 包含每条音轨的标题、封面、时长、歌词/提示词等结果信息,具体字段以平台实际返回为准。
  • 其他操作可能返回 lyricstimestamped_lyricsstemswav_urlvideo_url 或 provider 专用字段。公开响应会移除成本和内部存储字段。