API 參考
Suno 音樂生成
Suno 非同步音樂介面:POST /suno/submit/music 生成歌曲、POST /suno/submit/lyrics 生成歌詞,GET /suno/fetch/{task_id} 輪詢結果。相容 SunoAPI 格式,含靈感模式、自定義模式、續寫的請求示例與按次計費說明。
Suno 是非同步任務介面:先提交任務拿到任務 ID,再輪詢查詢,直到生成完成。路徑和欄位相容 SunoAPI 格式,已有程式碼把地址換成 https://www.tutujin.com、Key 換成本站的即可。
POST
https://www.tutujin.com/suno/submit/music請求頭
| 請求頭 | 必填 | 說明 |
|---|---|---|
Authorization | 是 | Bearer sk-...,控制台建立的 API Key |
Content-Type | 是 | application/json |
請求體裡不需要 model 欄位,按介面計費:
| 介面 | 用途 | 計費模型 |
|---|---|---|
POST /suno/submit/music | 生成歌曲,一次生成兩首 | suno_music |
POST /suno/submit/lyrics | 生成歌詞 | suno_lyrics |
GET /suno/fetch/{task_id} | 查詢單個任務 | 免費 |
POST /suno/fetch | 按 {"ids": [...]} 批次查詢 | 免費 |
請求參數
/suno/submit/music 有兩種寫法:靈感模式只寫一句描述;自定義模式自己給歌詞、歌名和曲風。
| 參數 | 類型 | 說明 |
|---|---|---|
gpt_description_prompt | string | 靈感模式:一句話描述想要的歌曲,歌詞和風格自動生成 |
prompt | string | 自定義模式:完整歌詞。呼叫 /suno/submit/lyrics 時是歌詞主題 |
mv | string | Suno 模型版本,例如 chirp-v4。不傳會使用較舊的預設版本,建議總是填寫 |
title | string | 歌名(自定義模式) |
tags | string | 曲風標籤,例如 pop, piano(自定義模式) |
make_instrumental | boolean | true 生成純音樂,不含人聲 |
task | string | 續寫時填 extend |
continue_clip_id | string | 續寫時要接著寫的歌曲 clip ID |
continue_at | number | 續寫起點,單位秒 |
請求示例
curl https://www.tutujin.com/suno/submit/music \
-H "Authorization: Bearer $TUTUJIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"gpt_description_prompt": "一首轻快的夏日海边流行歌,女声",
"mv": "chirp-v4",
"make_instrumental": false
}'
# 用上一步返回的 data(任务 ID)查询
curl https://www.tutujin.com/suno/fetch/$TASK_ID \
-H "Authorization: Bearer $TUTUJIN_API_KEY"import os
import time
import requests
BASE = "https://www.tutujin.com"
HEADERS = {"Authorization": "Bearer " + os.environ["TUTUJIN_API_KEY"]}
resp = requests.post(
f"{BASE}/suno/submit/music",
headers=HEADERS,
json={"gpt_description_prompt": "一首轻快的夏日海边流行歌,女声", "mv": "chirp-v4", "make_instrumental": False},
timeout=60,
)
resp.raise_for_status()
task_id = resp.json()["data"]
while True:
time.sleep(10)
task = requests.get(f"{BASE}/suno/fetch/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if task["status"] in ("SUCCESS", "FAILURE"):
break
print(task["status"], task.get("fail_reason"))
for clip in task["data"] or []:
print(clip.get("title"), clip.get("audio_url"))const BASE = 'https://www.tutujin.com'
const headers = { Authorization: `Bearer ${process.env.TUTUJIN_API_KEY}`, 'Content-Type': 'application/json' }
const submit = await fetch(`${BASE}/suno/submit/music`, {
method: 'POST',
headers,
body: JSON.stringify({ gpt_description_prompt: '一首轻快的夏日海边流行歌,女声', mv: 'chirp-v4', make_instrumental: false }),
}).then((r) => r.json())
let task
do {
await new Promise((r) => setTimeout(r, 10000))
task = (await fetch(`${BASE}/suno/fetch/${submit.data}`, { headers }).then((r) => r.json())).data
} while (!['SUCCESS', 'FAILURE'].includes(task.status))
console.log(task.status, task.fail_reason)
for (const clip of task.data ?? []) console.log(clip.title, clip.audio_url)生成一首歌通常需要一到幾分鐘,輪詢間隔 10 秒左右即可。只要歌詞時,把地址換成 /suno/submit/lyrics,請求體寫 {"prompt": "歌词主题"},結果在 data.data.text 裡。
響應示例
提交成功:
JSON
{ "code": "success", "data": "task_xxxxxxxxxxxxxxxx", "message": "" }查詢結果(歌曲):
JSON
{
"code": "success",
"data": {
"task_id": "task_xxxxxxxxxxxxxxxx",
"status": "SUCCESS",
"fail_reason": "",
"data": [
{ "id": "…", "title": "夏日海风", "audio_url": "https://…/song.mp3", "image_url": "https://…/cover.jpeg" },
{ "id": "…", "title": "夏日海风", "audio_url": "https://…/song.mp3", "image_url": "https://…/cover.jpeg" }
]
}
}| 欄位 | 說明 |
|---|---|
data(提交) | 任務 ID |
data.status | NOT_START、SUBMITTED、QUEUED、IN_PROGRESS、SUCCESS、FAILURE |
data.fail_reason | 失敗原因 |
data.data | 歌曲任務是兩首歌的陣列(audio_url 音訊、image_url 封面);歌詞任務是含 title、text 的物件 |
計費
- 按次計費:
/suno/submit/music每次按suno_music計費(一次生成兩首),/suno/submit/lyrics按suno_lyrics計費,價格見下方列表。 - 提交被拒絕不扣費,任務最終失敗會退回;查詢免費。
注意事項
- 這個介面是非同步的:提交後儲存任務 ID,輪詢或稍後再查,不要在一個請求裡等結果。
- 目前只支援生成歌曲和生成歌詞兩個介面;拼接、分軌、上傳音訊等其他 Suno 功能暫不提供。
- 音訊和封面地址只適合短期使用,下載後轉存到自己的儲存。
- 歌詞或描述觸發內容審核時任務會失敗,修改後再提交。
支援此介面的模型
| 模型 | 廠商 | 最低價分組 | 輸入 ¥/百萬 | 輸出 ¥/百萬 | 按次 ¥/次 |
|---|---|---|---|---|---|
| Suno Lyrics | Suno | 標準 | — | — | ¥0.02 |
| Suno Music | Suno | 標準 | — | — | ¥1 |
價格為人民幣,取各模型最低價分組;價格更新於 2026年11月13日 下午6:03。
沒找到答案?加客服微信 JsnonoChat,傳送報錯資訊裡的 request id,我們幫你排查。