クイックスタート

2026-09-18 更新 · Suno-API チーム

このガイドは、API キーの発行から最初の 1 曲の生成、進行状況の確認、音源のダウンロード までを 5 分程度で終えられるようにまとめたものです。掲載している例はそのまま実行できます。

現在の既定生成モデルは suno-v6 です。suno-v2 から suno-v5-5 までの通常生成 モデルは終了しており、過去のタスクには残っていても新規リクエストには使えません。

ステップ 1:API キーを取得する

  1. https://www.suno-api.io を開きます。
  2. API キーを取得 をクリックして登録またはログインします。メールアドレスだけで 登録でき、電話番号は不要です。
  3. コンソールのトークン管理で新しいキーを作成します。
  4. キーは一度しか表示されないので、すぐにコピーしてください。最初の有料呼び出しの前に 交換コードで残高をチャージします。

ステップ 2:リクエストを設定する

すべての呼び出しで同じベース URL とヘッダーを使います。

POST https://www.suno-api.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

ステップ 3:最初のリクエストを送る

例 1 — 1 行の説明から生成する

曲の説明を書くと、歌詞・メロディ・編曲まで自動で作られます。

curl -X POST https://www.suno-api.io/api/music/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "春の訪れを歌った軽快なフォーク",
    "model": "suno-v6"
  }'

レスポンス例:

[
  {
    "song_id": "abc123",
    "status": "pending",
    "song_title": "春の物語",
    "description": "春の訪れを歌った軽快なフォーク",
    "created_at": "2026-04-22T10:30:00Z"
  },
  {
    "song_id": "def456",
    "status": "pending",
    "song_title": "春の足音",
    "description": "春の訪れを歌った軽快なフォーク",
    "created_at": "2026-04-22T10:30:00Z"
  }
]

1 回の生成で 2 つの異なるテイクが返るので、良い方を選べます。料金は 1 回 0.6 元です。

例 2 — 生成の進行状況を確認する

返ってきた song_id を照会 API に渡します。

curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": ["abc123", "def456"],
    "model": "suno-v6"
  }'

生成中のレスポンス:

[
  {
    "song_id": "abc123",
    "status": "processing",
    "song_title": "春の物語",
    "progress": "60%"
  }
]

完了時のレスポンス:

[
  {
    "song_id": "abc123",
    "status": "completed",
    "song_title": "春の物語",
    "audio_url": "https://media.code-go.com/assets/abc123-mp3.mp3",
    "video_url": "https://media.code-go.com/assets/abc123-mp4.mp4",
    "cover_url": "https://media.code-go.com/assets/abc123-cover.jpg",
    "duration": 168
  }
]

status は pending、submitted、processing を経て completed になります。処理中は アドレスが空のことがあるため、audio_url の有無ではなく status で判断してください。

ステップ 4:ファイルをダウンロードする

status が completed になったら audio_url をそのまま取得します。MP3 と WAV の ダウンロードは無制限で、追加料金もありません。編集用に無劣化音源が必要な場合は WAV API を使ってください。

⚠️ メディア URL は 7 日で失効します。 audio_url(および WAV などのリンク)は当社のオブジェクトストレージから配信されます。7 日以内にご自身のストレージへ保存してください。失効後は古い URL が 404 になりますが、歌曲照会 API を呼び直すと新しい有効な URL を取得できます(再生成は不要、追加課金もありません)。

よくある使い方

動画のBGM

{
  "description": "製品紹介動画向けの落ち着いた lo-fi BGM、ボーカルなし、起伏は控えめ",
  "instrumental": true,
  "model": "suno-v6"
}

instrumental を true にすると、ボーカルなしのインストゥルメンタルのみを生成します。

歌詞とスタイルを指定する

{
  "lyrics": "[Verse 1]\n街の灯りがゆっくり消えていく\n\n[Chorus]\n僕らは歩き続ける",
  "style": "acoustic pop, 温かい女性ボーカル, 92 BPM",
  "model": "suno-v6"
}

完了までポーリングする

import time
import requests

API_KEY = "sk-your-key-here"
BASE = "https://www.suno-api.io"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

created = requests.post(
    f"{BASE}/api/music/create",
    headers=HEADERS,
    json={"description": "春の訪れを歌った軽快なフォーク", "model": "suno-v6"},
).json()

song_ids = [track["song_id"] for track in created]

for _ in range(60):
    time.sleep(10)
    tracks = requests.post(
        f"{BASE}/api/music/query",
        headers=HEADERS,
        json={"song_ids": song_ids, "model": "suno-v6"},
    ).json()
    if all(track.get("status") == "completed" for track in tracks):
        for track in tracks:
            print(track["song_title"], track["audio_url"])
        break

エラー処理

主なステータスコード

コード 意味 対応
200 成功 レスポンス本文を読みます
400 不正なリクエスト(パラメータの欠落・形式エラー) リファレンスと突き合わせます
401 API キーがない、または無効 Authorization ヘッダーを確認します
403 権限なし(多くは残高不足) アカウントをチャージします
429 レート制限 指数バックオフで再試行します
500 サーバーエラー 再試行し、続く場合は問い合わせます

エラー応答の形式

{
  "error": {
    "message": "Invalid API key provided",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}

ベストプラクティス

次のステップ

API キーの取得

登録後、コンソールで API キーを作成できます。1 回 0.6 元で 2 曲が生成され、ダウンロードは無制限、電話番号は不要です。

API キーを取得 概要に戻る