モデルガイド

Suno API:Suno V6で曲を生成する

Suno V6は、アイデア、スタイル、または自分の歌詞から、1曲まるごと書いて歌うか、インストゥルメンタルを演奏します。このガイドでは、REST APIで呼び出す方法、料金、4つの入力の組み合わせ方を説明します。

Suno V6 APIでできること

Suno V6は、Sunoの最新の音楽モデルです。アイデア、スタイル、自分の歌詞、またはそれらの組み合わせを渡すと、1曲まるごと書いて歌うか、インストゥルメンタルを演奏します。Revanaでは、モデルID suno-v6 で、すべての動画・画像モデルと同じエンドポイントから呼び出します。

RevanaのSuno V6の概要
項目詳細
モデルIDsuno-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曲はその半額です。

バッチサイズ別のSuno V6の費用
ジョブ数得られるトラック数合計
12$0.08
1020$0.80
100200$8.00
1,0002,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です。

cURL
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"
Python
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.js
// 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文字です。それより長いプロンプトは、課金の前に拒否されます。

1つのキーで曲を作る

Suno V6とすべての動画・画像モデルを1つのAPIキーで。プリペイドのクレジットは$10から、課金されるのは成功したジョブのみです。