Suno API:用 Suno V6 生成歌曲
Suno V6 可以根据一个创意、一种风格或你自己的歌词,写出并演唱一首完整的歌曲,也可以演奏纯音乐。本指南介绍如何通过 REST API 调用它、价格是多少,以及它的四个输入如何搭配。
Suno V6 API 能为你做什么
Suno V6 是 Suno 最新的音乐模型。给它一个创意、一种风格、你自己的歌词,或这几者的组合,它就会写出并演唱一首完整的歌曲,或演奏纯音乐。在 Revana 上它的模型 id 是 suno-v6,与所有视频和图像模型使用同一个接口。
| 项目 | 详情 |
|---|---|
| 模型 id | suno-v6 |
| 生成内容 | 带人声的歌曲,或纯音乐 |
| 每个任务的曲目数 | 同一请求的两个版本 |
| 输入 | prompt, style, lyrics, instrumental |
| 提示词长度 | 最多 3,000 个字符 |
| 价格 | 每个任务 $0.08,含两首曲目 |
| 线路 | 一条线路 |
Suno API 价格(2026年10月)
Suno V6 按任务计价,而不是按秒或按曲目计价。一个任务 $0.08,返回两首曲目,所以每首成品歌曲的成本是它的一半。
| 任务数 | 获得的曲目数 | 合计 |
|---|---|---|
| 1 | 2 | $0.08 |
| 10 | 20 | $0.80 |
| 100 | 200 | $8.00 |
| 1,000 | 2,000 | $80.00 |
失败的任务不会扣费。额度为预付,$10 起,无需订阅;详见价格页面。
四个输入及其组合方式
prompt用平实的语言描述你想要的歌曲:情绪、主题、面向的听众。style指定曲风和声音,例如“lo-fi hip hop, soft piano, vinyl crackle”或“upbeat pop punk, female vocals”。lyrics是你自己写的、要被演唱的词。单独成行的[Verse]和[Chorus]等段落标签有助于模型塑造歌曲结构。instrumental设为true时,生成没有人声的音乐。
每个请求都需要 style 或 lyrics(或两者都有)。instrumental: true 不能与 lyrics 一起发送,因为没人来演唱;违反任一规则的请求会在扣费之前被拒绝。
生成一首歌
发送 POST /v1/generations,带上模型 id 和 input,然后轮询,直到任务出现 succeeded 或 failed。这个请求的费用为 $0.08。
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"input": {
"prompt": "A warm, hopeful song about a small bakery opening before sunrise on a quiet street.",
"style": "acoustic indie folk, male vocals, fingerpicked guitar, light percussion"
},
"max_cost_usd": 0.1
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "suno-v6",
"input": {
"prompt": "A warm, hopeful song about a small bakery opening before sunrise on a quiet street.",
"style": "acoustic indie folk, male vocals, fingerpicked guitar, light percussion",
},
"max_cost_usd": 0.1,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "suno-v6",
input: {
prompt: "A warm, hopeful song about a small bakery opening before sunrise on a quiet street.",
style: "acoustic indie folk, male vocals, fingerpicked guitar, light percussion",
},
max_cost_usd: 0.1,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);{
"id": "gen_01JC2V8K5T",
"model": "suno-v6",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JC2V8K5T/0.mp3",
"https://cdn.revana.si/g/gen_01JC2V8K5T/1.mp3"
]
},
"cost_usd": 0.08,
"attempts": 1,
"error": null,
"created_at": "2026-10-28T10:14:02Z",
"completed_at": "2026-10-28T10:15:31Z"
}output.urls 中的两个文件是同一请求的两个版本。可以像这样通过 API 下载:
# Each Suno job returns two tracks. Fetch both once the job has succeeded.
curl -L -o take-1.mp3 https://api.revana.si/v1/generations/gen_01JC2V8K5T/content \
-H "Authorization: Bearer $REVANA_API_KEY"
curl -L -o take-2.mp3 https://api.revana.si/v1/generations/gen_01JC2V8K5T/content/2 \
-H "Authorization: Bearer $REVANA_API_KEY"演唱你自己的歌词
要让 Suno 演唱你写的歌词,请把它们放在 lyrics 中,并带上 style 发送:
{
"model": "suno-v6",
"input": {
"style": "synth pop, bright female vocals, 112 bpm",
"lyrics": "[Verse]\\nCity lights are coming on\\nEvery window tells a story\\n\\n[Chorus]\\nWe run until the morning\\nWe run until the sun"
},
"max_cost_usd": 0.1
}为视频配的纯音乐
要为片段配背景音乐,省略 lyrics 并设置 instrumental:
{
"model": "suno-v6",
"input": {
"prompt": "Calm background music for a 30 second product video about a ceramic coffee mug.",
"style": "ambient electronic, soft pads, slow tempo",
"instrumental": true
},
"max_cost_usd": 0.1
}同一个 API 密钥也能生成视频。你可以把 Suno 曲目与视频模型指南中任意模型生成的片段搭配使用,也可以通过 Revana MCP 服务器让智能体一并完成。
Suno V6 与其他所有模型一起列在模型页面上,完整的请求参考在文档中。获取 API 密钥,生成你的第一首歌。
常见问题
Suno API 多少钱?
2026年10月,在 Revana 上 Suno V6 每个任务 $0.08。每个任务返回两首曲目,失败的任务不会扣费。
Suno API 会返回两首歌吗?
会。每个 Suno V6 任务都会针对同一个请求返回两个版本。可从 /v1/generations/{id}/content 和 /content/2 下载。
我可以在 Suno API 中使用自己的歌词吗?
可以。把歌词放在 lyrics 中发送,并用 style 指定声音风格。单独成行的 [Verse]、[Chorus] 等段落标签有助于塑造歌曲结构。
Suno 能生成纯音乐吗?
能。把 instrumental 设为 true,并在 prompt 和 style 中描述音乐。纯音乐请求不要同时发送 lyrics。
Suno 的提示词最长能有多长?
最多 3,000 个字符。更长的提示词会在扣费之前被拒绝。