chirp-crow (2025.09.23+)chirp-bluejay (2025.07.17+)chirp-auk (2025.05.03+)chirp-v4chirp-v3-5overpainting_clip_idoverpainting_start_s, overpainting_end_schirp-bluejay 模型prompttagstask: "overpainting"override_fieldsBody 请求参数
{
"mv": "chirp-bluejay",
"tags": "A smooth, soulful R&B track with a moderate tempo and a relaxed, laid-back feel. The instrumentation features a clean electric guitar playing arpeggiated chords, a prominent bass guitar providing a walking bass line, and a drum kit with a soft, brushed snare sound.",
"title": "Hi vocal",
"overpainting_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"overpainting_start_s": 0,
"overpainting_end_s": 57.9,
"task": "overpainting",
"prompt": "填词,你得自己来",
"override_fields": [
"prompt",
"tags"
]
}| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | Scene11_OverpaintingRequest | 是 | none |
返回示例
200 Response
{
"clips": [
{
"id": "abcd-1234-5678-efgh",
"status": "submitted"
}
],
"request_id": "req-123456"
}400 Response
{
"error": "Invalid request",
"code": "INVALID_REQUEST",
"details": "Missing required field"
}401 Response
{
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"details": "Invalid or missing API key"
}| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功创建生成任务 | Inline |
| 400 | Bad Request | 请求参数错误 | Error |
| 401 | Unauthorized | 未授权 - API密钥无效或缺失 | Error |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » clips | [object] | false | none | 生成的音频片段列表 | |
| »» id | string | false | none | 音频片段的唯一标识 | |
| »» status | string | false | none | 任务状态 | |
| » request_id | string | false | none | 请求ID |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
/sunoapi/feed/clip_id/sunoapi/feed/clip_id1,clip_id2,clip_id3submitted: 已提交queued: 排队中streaming: 生成中complete: 完成error: 错误| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| clipsIds | path | string | 是 | 一个或多个clip_id,多个用逗号分隔 |
返回示例
200 Response
[
{
"id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"video_url": "https://cdn.suno.com/video/xxx.mp4",
"audio_url": "https://cdn.suno.com/audio/xxx.mp3",
"image_url": "https://cdn.suno.com/image/xxx.jpg",
"image_large_url": "https://cdn.suno.com/image/xxx_large.jpg",
"is_video_pending": false,
"major_model_version": "v3.5",
"model_name": "chirp-v3-5",
"metadata": {
"tags": "string",
"prompt": "string",
"gpt_description_prompt": "string",
"duration": 0,
"type": "gen",
"error_message": "string"
},
"title": "工作",
"status": "complete",
"created_at": "2024-01-01T12:00:00Z"
}
]400 Response
{
"error": "Invalid request",
"code": "INVALID_REQUEST",
"details": "Missing required field"
}401 Response
{
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"details": "Invalid or missing API key"
}404 Response
{
"error": "Not found",
"code": "NOT_FOUND",
"details": "The requested clip_id does not exist"
}| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功获取结果 | Inline |
| 400 | Bad Request | 请求参数错误 | Error |
| 401 | Unauthorized | 未授权 - API密钥无效或缺失 | Error |
| 404 | Not Found | 资源未找到 | Error |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| anonymous | [ClipResult] | false | none | none | |
| » id | string | false | none | 音频片段ID | |
| » video_url | string | false | none | 视频URL(带视觉效果的音频) | |
| » audio_url | string | false | none | 音频URL | |
| » image_url | string | false | none | 封面图URL | |
| » image_large_url | string | false | none | 大尺寸封面图URL | |
| » is_video_pending | boolean | false | none | 视频是否还在处理中 | |
| » major_model_version | string | false | none | 使用的主要模型版本 | |
| » model_name | string | false | none | 模型名称 | |
| » metadata | object | false | none | 元数据 | |
| »» tags | string | false | none | 音乐风格标签 | |
| »» prompt | string | false | none | 歌词或提示词 | |
| »» gpt_description_prompt | string | false | none | 灵感提示词 | |
| »» duration | number | false | none | 音频时长(秒) | |
| »» type | string | false | none | 类型 | |
| »» error_message | string¦null | false | none | 错误消息 | |
| » title | string | false | none | 标题 | |
| » status | string | false | none | 状态 | |
| » created_at | string(date-time) | false | none | 创建时间 |
| 属性 | 值 |
|---|---|
| type | gen |
| type | edit |
| type | concat |
| status | submitted |
| status | queued |
| status | streaming |
| status | complete |
| status | error |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
clip_id,可用于后续操作clip_id 可用于:Body 请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | none |
| » file | body | string(binary) | 是 | 音频文件 |
返回示例
200 Response
{
"clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
"duration": 180.5
}400 Response
{
"error": "Invalid request",
"code": "INVALID_REQUEST",
"details": "Missing required field"
}401 Response
{
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"details": "Invalid or missing API key"
}| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 上传成功 | Inline |
| 400 | Bad Request | 请求参数错误 | Error |
| 401 | Unauthorized | 未授权 - API密钥无效或缺失 | Error |
| 413 | Payload Too Large | 文件过大 | Error |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » clip_id | string | false | none | 上传音频的唯一标识 | |
| » duration | number | false | none | 音频时长(秒) |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
clip_idclip_id 调用此接口state: "running",需要轮询等待state: "complete" 时,获得完整MIDI数据| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| clip_id | path | string | 是 | 音频的clip_id(建议使用全轨分离后的clip_id) |
返回示例
成功获取MIDI数据或处理状态
{
"state": "running"
}{
"state": "complete",
"instruments": [
{
"name": "String Ensembles 1",
"notes": [
{
"pitch": 60,
"start": 1.1041666666666667,
"end": 1.9583333333333333,
"velocity": 0.7165354330708661
}
]
}
]
}400 Response
{
"error": "Invalid request",
"code": "INVALID_REQUEST",
"details": "Missing required field"
}401 Response
{
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"details": "Invalid or missing API key"
}404 Response
{
"error": "Not found",
"code": "NOT_FOUND",
"details": "The requested clip_id does not exist"
}| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功获取MIDI数据或处理状态 | Inline |
| 400 | Bad Request | 请求参数错误 | Error |
| 401 | Unauthorized | 未授权 - API密钥无效或缺失 | Error |
| 404 | Not Found | 资源未找到 | Error |
| 属性 | 值 |
|---|---|
| state | running |
| state | complete |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
upsampled_tags 可直接用于生成音乐时的 tags 参数Body 请求参数
{
"original_tags": "student"
}| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | none |
| » original_tags | body | string | 是 | 简单的风格关键词或提示 |
返回示例
200 Response
{
"upsampled_tags": "Laid-back indie pop driven by a clean guitar riff, tight bass, and crisp drums. Verses feature subtle synth textures and gentle background vocals. A catchy chorus lifts with layered harmonies and handclaps. Bridge introduces a bright Rhodes piano before a dynamic final chorus.",
"request_id": "507acd16-8b84-4e55-be2b-4329d82efb26"
}400 Response
{
"error": "Invalid request",
"code": "INVALID_REQUEST",
"details": "Missing required field"
}401 Response
{
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"details": "Invalid or missing API key"
}| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功扩展tags | Inline |
| 400 | Bad Request | 请求参数错误 | Error |
| 401 | Unauthorized | 未授权 - API密钥无效或缺失 | Error |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » upsampled_tags | string | false | none | 扩展后的详细风格描述 | |
| » request_id | string | false | none | 请求ID |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » error | string | false | none | 错误消息 | |
| » code | string | false | none | 错误代码 | |
| » details | string | false | none | 详细错误信息 |
{
"gpt_description_prompt": "乡愁"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| gpt_description_prompt | string | true | none | 灵感提示词,可以是主题、情感、场景等 |
{
"prompt": "[Verse]\n歌词内容\n\n[Chorus]\n副歌内容",
"mv": "chirp-v3-5",
"title": "工作",
"tags": "edm",
"negative_tags": ""
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | true | none | 歌词内容,支持结构化标签: - [Verse] 主歌 - [Chorus] 副歌 - [Bridge] 桥段 - [Intro] 前奏 - [Outro] 尾奏 | |
| mv | string | true | none | 音乐模型版本 | |
| title | string | true | none | 歌曲标题 | |
| tags | string | true | none | 音乐风格标签 | |
| negative_tags | string | false | none | 不希望出现的风格标签(可选) |
| 属性 | 值 |
|---|---|
| mv | chirp-crow |
| mv | chirp-bluejay |
| mv | chirp-auk |
| mv | chirp-v4 |
| mv | chirp-v3-5 |
{
"prompt": "",
"tags": "heavy metal",
"mv": "chirp-v3-5",
"title": "北京",
"continue_clip_id": null,
"continue_at": null,
"infill_start_s": null,
"infill_end_s": null
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | true | none | 留空表示纯音乐 | |
| tags | string | true | none | 音乐风格标签 | |
| mv | string | true | none | 音乐模型版本 | |
| title | string | true | none | 音乐标题 | |
| continue_clip_id | string¦null | false | none | none | |
| continue_at | number¦null | false | none | none | |
| infill_start_s | number¦null | false | none | none | |
| infill_end_s | number¦null | false | none | none |
| 属性 | 值 |
|---|---|
| mv | chirp-crow |
| mv | chirp-bluejay |
| mv | chirp-auk |
| mv | chirp-v4 |
| mv | chirp-v3-5 |
{
"gpt_description_prompt": "一首关于彻夜跳舞的国歌舞蹈流行歌曲",
"mv": "chirp-v3-5",
"prompt": "",
"make_instrumental": true
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| gpt_description_prompt | string | true | none | 灵感提示词 | |
| mv | string | true | none | 音乐模型版本 | |
| prompt | string | true | none | 留空 | |
| make_instrumental | boolean | true | none | 设置为true表示生成纯音乐 |
| 属性 | 值 |
|---|---|
| mv | chirp-crow |
| mv | chirp-bluejay |
| mv | chirp-auk |
| mv | chirp-v4 |
| mv | chirp-v3-5 |
{
"prompt": "歌词",
"tags": "",
"negative_tags": "",
"mv": "chirp-v4",
"title": "标题",
"continue_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
"continue_at": 10,
"task": "upload_extend"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | false | none | 续写部分的歌词(可选) | |
| tags | string | false | none | 音乐风格标签(可选) | |
| negative_tags | string | false | none | 不希望出现的风格标签(可选) | |
| mv | string | false | none | 音乐模型版本(上传音频续写时必须指定) | |
| title | string | false | none | 标题(可选) | |
| continue_clip_id | string | true | none | 要续写的音频clip_id(来自上传) | |
| continue_at | number | true | none | 从第几秒开始续写 | |
| task | string | true | none | 任务类型 |
| 属性 | 值 |
|---|---|
| mv | chirp-bluejay |
| mv | chirp-auk |
| mv | chirp-v4 |
| task | upload_extend |
{
"prompt": "",
"tags": "",
"title": "",
"continue_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"continue_at": 57
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | false | none | 续写部分的歌词(可选) | |
| tags | string | false | none | 音乐风格标签(可选) | |
| title | string | false | none | 标题(可选) | |
| continue_clip_id | string | true | none | 要续写的音频clip_id(来自系统生成) | |
| continue_at | number | true | none | 从第几秒开始续写 |
{
"prompt": "描述或歌词",
"tags": "",
"negative_tags": "",
"mv": "chirp-v4",
"title": "标题",
"reference_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
"task": "upload_reference"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | false | none | 描述或歌词(可选) | |
| tags | string | false | none | 音乐风格标签(可选) | |
| negative_tags | string | false | none | 不希望出现的风格标签(可选) | |
| mv | string | false | none | 音乐模型版本(上传音频混音时必须指定) | |
| title | string | false | none | 标题(可选) | |
| reference_clip_id | string | true | none | 参考音频的clip_id(来自上传) | |
| task | string | true | none | 任务类型 |
| 属性 | 值 |
|---|---|
| mv | chirp-bluejay |
| mv | chirp-auk |
| mv | chirp-v4 |
| task | upload_reference |
{
"prompt": "",
"tags": "",
"title": "",
"reference_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | false | none | 描述或歌词(可选) | |
| tags | string | false | none | 音乐风格标签(可选) | |
| title | string | false | none | 标题(可选) | |
| reference_clip_id | string | true | none | 参考音频的clip_id(来自系统生成) |
{
"prompt": "替换后的歌词或留空",
"tags": "",
"negative_tags": "",
"mv": "chirp-v4",
"title": "标题",
"infill_clip_id": "ca94a97d-d3f2-4a63-aeee-ba3a43384bcd",
"infill_start_s": 10,
"infill_end_s": 20,
"task": "upload_infill"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | false | none | 替换后的歌词(可选) | |
| tags | string | false | none | 音乐风格标签(可选) | |
| negative_tags | string | false | none | 不希望出现的风格标签(可选) | |
| mv | string | false | none | 音乐模型版本(上传音频替换时必须指定) | |
| title | string | false | none | 标题(可选) | |
| infill_clip_id | string | true | none | 要替换片段的音频clip_id(来自上传) | |
| infill_start_s | number | true | none | 替换起始时间(秒) | |
| infill_end_s | number | true | none | 替换结束时间(秒) | |
| task | string | true | none | 任务类型 |
| 属性 | 值 |
|---|---|
| mv | chirp-bluejay |
| mv | chirp-auk |
| mv | chirp-v4 |
| task | upload_infill |
{
"prompt": "",
"tags": "",
"title": "",
"infill_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"infill_start_s": 0,
"infill_end_s": 10
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| prompt | string | false | none | 替换后的歌词(可选) | |
| tags | string | false | none | 音乐风格标签(可选) | |
| title | string | false | none | 标题(可选) | |
| infill_clip_id | string | true | none | 要替换片段的音频clip_id(来自系统生成) | |
| infill_start_s | number | true | none | 替换起始时间(秒) | |
| infill_end_s | number | true | none | 替换结束时间(秒) |
{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"task": "all-stems"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| clip_id | string | true | none | 要分离的音频clip_id | |
| task | string | true | none | 任务类型 |
| 属性 | 值 |
|---|---|
| task | all-stems |
{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"task": "vocal-stems"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| clip_id | string | true | none | 要分离的音频clip_id | |
| task | string | true | none | 任务类型 |
| 属性 | 值 |
|---|---|
| task | vocal-stems |
{
"clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"task": "rewrite"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| clip_id | string | true | none | 要改写的音频clip_id | |
| task | string | true | none | 任务类型 |
| 属性 | 值 |
|---|---|
| task | rewrite |
{
"mv": "chirp-bluejay",
"tags": "A smooth, soulful R&B track with a moderate tempo",
"title": "Hi vocal",
"overpainting_clip_id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"overpainting_start_s": 0,
"overpainting_end_s": 57.9,
"task": "overpainting",
"prompt": "填词,你得自己来",
"override_fields": [
"prompt",
"tags"
]
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| mv | string | true | none | 音乐模型版本(必须使用chirp-bluejay) | |
| tags | string | true | none | 详细的音乐风格描述 | |
| title | string | true | none | 标题 | |
| overpainting_clip_id | string | true | none | 要重新填词的音频clip_id | |
| overpainting_start_s | number | true | none | 重新填词起始时间(秒) | |
| overpainting_end_s | number | true | none | 重新填词结束时间(秒) | |
| task | string | true | none | 任务类型 | |
| prompt | string | true | none | 新的歌词 | |
| override_fields | [string] | true | none | 要覆盖的字段列表 |
| 属性 | 值 |
|---|---|
| mv | chirp-bluejay |
| task | overpainting |
{
"id": "9b1d2e8d-a365-4bfd-8a18-8989e159b29f",
"video_url": "https://cdn.suno.com/video/xxx.mp4",
"audio_url": "https://cdn.suno.com/audio/xxx.mp3",
"image_url": "https://cdn.suno.com/image/xxx.jpg",
"image_large_url": "https://cdn.suno.com/image/xxx_large.jpg",
"is_video_pending": false,
"major_model_version": "v3.5",
"model_name": "chirp-v3-5",
"metadata": {
"tags": "string",
"prompt": "string",
"gpt_description_prompt": "string",
"duration": 0,
"type": "gen",
"error_message": "string"
},
"title": "工作",
"status": "complete",
"created_at": "2024-01-01T12:00:00Z"
}
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | string | false | none | 音频片段ID | |
| video_url | string | false | none | 视频URL(带视觉效果的音频) | |
| audio_url | string | false | none | 音频URL | |
| image_url | string | false | none | 封面图URL | |
| image_large_url | string | false | none | 大尺寸封面图URL | |
| is_video_pending | boolean | false | none | 视频是否还在处理中 | |
| major_model_version | string | false | none | 使用的主要模型版本 | |
| model_name | string | false | none | 模型名称 | |
| metadata | object | false | none | 元数据 | |
| » tags | string | false | none | 音乐风格标签 | |
| » prompt | string | false | none | 歌词或提示词 | |
| » gpt_description_prompt | string | false | none | 灵感提示词 | |
| » duration | number | false | none | 音频时长(秒) | |
| » type | string | false | none |