Suno API:Suno V6で曲を生成する
Suno V6は、アイデア、スタイル、または自分の歌詞から、1曲まるごと書いて歌うか、インストゥルメンタルを演奏します。このガイドでは、REST APIで呼び出す方法、料金、4つの入力の組み合わせ方を説明します。
Suno V6 APIでできること
Suno V6は、Sunoの最新の音楽モデルです。アイデア、スタイル、自分の歌詞、またはそれらの組み合わせを渡すと、1曲まるごと書いて歌うか、インストゥルメンタルを演奏します。Revanaでは、モデルID suno-v6 で、すべての動画・画像モデルと同じエンドポイントから呼び出します。
| 項目 | 詳細 |
|---|---|
| モデルID | suno-v6 |
| 作成するもの | ボーカル付きの曲、またはインストゥルメンタル |
| 1ジョブあたりのトラック数 | 同じリクエストの2つのテイク |
| 入力 | prompt, style, lyrics, instrumental |
| プロンプトの長さ | 最大3,000文字 |
| 料金 | 2曲分で1ジョブあたり$0.08 |
| ルート | 1ルート |
Suno APIの料金(2026年10月)
Suno V6は、1秒あたりや1曲あたりではなく、1ジョブあたりで料金が決まります。1ジョブは$0.08で2曲を返すため、完成した1曲はその半額です。
| ジョブ数 | 得られるトラック数 | 合計 |
|---|---|---|
| 1 | 2 | $0.08 |
| 10 | 20 | $0.80 |
| 100 | 200 | $8.00 |
| 1,000 | 2,000 | $80.00 |
失敗したジョブは課金されません。クレジットはプリペイドで$10から、サブスクリプションはありません。料金ページをご覧ください。
4つの入力と、その組み合わせ方
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 と同時には送信できません。歌う人がいなくなるためです。どちらかのルールに違反したリクエストは、課金の前に拒否されます。
曲を生成する
モデルIDと input を指定して POST /v1/generations を送信し、ジョブが 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 の2つのファイルは、同じリクエストの2つのテイクです。次のように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
}動画用のインストゥルメンタル
クリップのBGMには、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月時点で、Suno V6はRevanaで1ジョブあたり$0.08です。各ジョブは2曲を返し、失敗したジョブは課金されません。
Suno APIは2曲を返しますか?
はい。Suno V6のジョブは、同じリクエストの2つのテイクを返します。/v1/generations/{id}/content と /content/2 からダウンロードしてください。
Suno APIで自分の歌詞を使えますか?
はい。lyrics に歌詞を、サウンドのために style を指定して送信します。[Verse] や [Chorus] などのセクションタグを単独の行に入れると、曲の構成を整えやすくなります。
Sunoでインストゥルメンタルの音楽を作れますか?
はい。instrumental を true に設定し、prompt と style で音楽を説明します。インストゥルメンタルのリクエストでは、lyrics を送信しないでください。
Sunoのプロンプトは最長どれくらいですか?
最大3,000文字です。それより長いプロンプトは、課金の前に拒否されます。