Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Suno API Key:キー作成から最初の楽曲リクエストまで
2026/09/14

Suno API Key:キー作成から最初の楽曲リクエストまで

reAPI 用の Suno API key を作成し、Bearer 認証を設定。4言語の例で最初のリクエストを送り、音声の完了確認とキー・残高・タスクのエラーに対処します。

reAPI 経由で使う Suno API key は、reAPI にログインし、API Keys を開いて作成します。https://reapi.ai/api/v1 へのリクエストに Authorization: Bearer <key> を付けてください。これは reAPI のエンドポイント用の reAPI 認証情報であり、Suno が発行する開発者キーではありません。[1]

2026 年 9 月 14 日時点で確認した Suno の公式資料は、公開文書のあるセルフサービス型キー発行ではなく、パートナー向け関心表明フォームを案内しています。違いは公式 API の提供状況の記事で説明しています。本記事では reAPI のキー作成から最初のリクエスト、音声生成の完了までを扱います。[2]

要点

  • reAPI の API Keys 設定でキーを作り、表示時に保存します。認証資料では完全なキーの表示は一度だけとされています。[1]
  • サーバーから Bearer ヘッダーを送信します。Suno サイトのログインやサブスクリプションは、この認証情報の代わりにはなりません。
  • 音声生成エンドポイントに model: "suno-music"version: "V6" を送ります。[3]
  • レスポンスの id を保存してタスクをポーリングします。HTTP 200 だけでは曲の生成成功を判断できません。[4]
  • 完了した楽曲生成は 60 credits($0.06)で 2 テイクを含みます。ポーリングは無料です。送信前に残高を確認してください。[3]

reAPI 経由で使う Suno API キーを作成する

reAPI アカウント、API Keys 設定へのアクセス、実行する操作に十分な credits が必要です。以下の例には、ターミナル、requests を使える Python、fetch を内蔵した Node.js、または Go を使います。どれか一つを選んでください。四つとも実行すると生成リクエストも 4 回になります。

  1. ログインし、API Keys 設定を開きます。
  2. 実際のページで確認した CREATE API KEY をクリックします。認証ガイドの表記は「Create new key」です。
  3. music-development など、識別しやすい名前を付けます。
  4. 表示されたキーをコピーし、サーバーのシークレット管理機能、またはバージョン管理から除外したローカル環境ファイルに保存します。[1]

実行プロセスの環境に REAPI_API_KEY を設定してください。この名前は例で使う変数名で、API の必須フィールドではありません。本物のキーをソースコード、ブラウザー向けバンドル、リポジトリ、URL、問い合わせ文に貼り付けないでください。文書上の本番キーの接頭辞は rk_live_ です。模擬レスポンス用の rk_test_ はまだ「coming soon」とされており、本ガイドで利用可能な無料テスト経路ではありません。[1]

Suno API の使い方:最初の楽曲リクエストを送る

四つの例は同じインスピレーションモードのリクエストです。custom_mode: false では prompt が曲の説明になり、instrumental: false はボーカルを求めます。操作は model、生成バージョンは version に指定します。現在の snake_case フィールド名を使用してください。[3]

30 秒はネットワークリクエストのタイムアウトで、曲の完成期限ではありません。送信後も生成は非同期で進みます。各例は HTTP エラーを確認し、返されたタスク ID を出力します。送信方法の選択肢なので、その後にポーリングを行います。

cURL

jqid を取り出します。環境変数にはあらかじめキーを設定してください。

: "${REAPI_API_KEY:?Set REAPI_API_KEY in your environment}"
curl --fail-with-body --silent --show-error --max-time 30 \
  https://reapi.ai/api/v1/audio/generations \
  -H "Authorization: Bearer $REAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-music",
    "version": "V6",
    "custom_mode": false,
    "instrumental": false,
    "prompt": "An upbeat acoustic song about taking the first train home"
  }' > suno-submit.json && jq -er '.id' suno-submit.json

Python

必要なら requests をインストールし、サーバーまたはローカル端末で保存して実行します。

import os
import requests

response = requests.post(
    "https://reapi.ai/api/v1/audio/generations",
    headers={"Authorization": f"Bearer {os.environ['REAPI_API_KEY']}"},
    json={
        "model": "suno-music",
        "version": "V6",
        "custom_mode": False,
        "instrumental": False,
        "prompt": "An upbeat acoustic song about taking the first train home",
    },
    timeout=30,
)
response.raise_for_status()
print(response.json()["id"])

Node.js

submit.mjs として保存し、環境変数を設定して node submit.mjs を実行します。

const key = process.env.REAPI_API_KEY;
if (!key) throw new Error("Set REAPI_API_KEY in your environment");

const response = await fetch("https://reapi.ai/api/v1/audio/generations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${key}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "suno-music",
    version: "V6",
    custom_mode: false,
    instrumental: false,
    prompt: "An upbeat acoustic song about taking the first train home",
  }),
  signal: AbortSignal.timeout(30_000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const task = await response.json();
if (!task.id) throw new Error("Submission response has no task id");
console.log(task.id);

Go

main.go として保存して go run main.go を実行します。標準ライブラリだけを使う例です。

package main

import (
    "encoding/json"
    "fmt"
    "io"
    "log"
    "net/http"
    "os"
    "strings"
    "time"
)

func main() {
    if err := submit(); err != nil {
        log.Fatal(err)
    }
}

func submit() error {
    key := os.Getenv("REAPI_API_KEY")
    if key == "" {
        return fmt.Errorf("set REAPI_API_KEY in your environment")
    }
    payload := `{"model":"suno-music","version":"V6","custom_mode":false,"instrumental":false,"prompt":"An upbeat acoustic song about taking the first train home"}`
    req, err := http.NewRequest("POST",
        "https://reapi.ai/api/v1/audio/generations", strings.NewReader(payload))
    if err != nil {
        return err
    }
    req.Header.Set("Authorization", "Bearer "+key)
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{Timeout: 30 * time.Second}
    resp, err := client.Do(req)
    if err != nil {
        return err
    }
    defer resp.Body.Close()
    body, err := io.ReadAll(resp.Body)
    if err != nil {
        return err
    }
    if resp.StatusCode < 200 || resp.StatusCode >= 300 {
        return fmt.Errorf("HTTP %d: %s", resp.StatusCode, body)
    }
    var task struct { ID string `json:"id"` }
    if err := json.Unmarshal(body, &task); err != nil {
        return err
    }
    if task.ID == "" {
        return fmt.Errorf("submission response has no task id")
    }
    fmt.Println(task.ID)
    return nil
}

タスク ID を保存し、音声ができるまで確認する

送信レスポンスには idmodelstatuscreated_at が含まれます。説明文で task ID と呼ばれていても、保存するフィールドは id です。存在しないトップレベルの task_id を読み取らないでください。[3]

次のプレースホルダーを実際の ID に置き換えます。これは 1 回の状態確認です。processing の間は約 3 秒おきに繰り返し、アプリに適したクライアントの待機上限を設けてください。タスク資料は間隔を空けたポーリングを推奨しており、照会自体に credits はかかりません。[4]

: "${REAPI_API_KEY:?Set REAPI_API_KEY in your environment}"
TASK_ID='replace-with-the-returned-id'
curl --fail-with-body --silent --show-error --max-time 30 \
  "https://reapi.ai/api/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $REAPI_API_KEY"

HTTP ステータスに加えて JSON の状態を確認します。

  • processing:ID を保持し、待ってから再確認します。
  • completedoutput.audio_urls と、Suno 文書で定義された tracks レコードを読みます。
  • failed:ポーリングを止め、error.codeerror.messageusage.credits を確認します。[3][4]

本シリーズの本番環境での確認では生成が完了し、2 つの音声 URL が返りました。検証したのは一つの生成フローで、遅延のベンチマークや全リクエスト成功の保証ではありません。Suno リファレンスが保証するトラックの項目は url です。ID、歌詞、長さなどは空の場合に省略されるため、後の編集に必要な ID は返された時点で保存します。[3]

ID を受け取った後にローカルの待機上限に達しても、後から同じタスクを照会できます。クライアントが待つのをやめただけで、すぐに別の生成を作らないでください。長期保存が必要なら完成音声を自分のストレージへコピーします。タスクの契約は CDN の永久保存を保証していません。[4]

認証・残高・パラメーターのエラーを直す

公開エラー資料は HTTP エラーとタスク失敗を区別しています。存在するタスクは HTTP 200 を返しつつ、本文が status: "failed"、エラーが 8xxxx の場合があります。[5]

HTTP または結果確認する内容次の対応
401、1000110004Bearer ヘッダーの欠落・形式不正、無効・失効キーヘッダーを修正、またはキーを交換
400、2000220004必須項目不足、不正な値、エンドポイントとモデルの不一致音声エンドポイント、suno-musicversion、現行フィールドを使用
402、30001リクエスト料金に残高が足りない再送前に残高を確認
404、40001タスクがない、または別ユーザーのもの返された ID と対応アカウントを使用
429、50001リクエスト頻度の上限超過Retry-After に従って待機
200、status: "failed"error.code の実行エラーHTTP 200 だけで成功とせず、本文を確認

エラーに request_id があれば、リクエストメソッドとおおよその時刻も保存します。キーを共有せずに調査する手掛かりになります。再試行の前に、入力、認証、残高の問題を直してください。[5]

無料アクセスとキーのローテーション

キーは認証するもので、生成を無料にはしません。仮に残高が $0.10 なら 100 credits です。完了した楽曲生成 1 回が 60 credits なので、1 回実行して 40 credits が残り、2 回目の楽曲生成には足りません。無制限の無料 Suno API key と考えず、実際のキャンペーン対象条件と残高を確認してください。[3]

編集と書き出しの料金は Suno API 料金ガイドにあります。漏えい時は設定からキーを失効させます。通常の交換では、新しいキーを作成し、サーバーのシークレットを更新して確認した後、旧キーを失効させます。認証資料によると、既に保留中のタスクは失効後も進み、credits が課金される場合があります。失効は新規リクエストを止めるもので、既存ジョブの取消しではありません。[1]

よくある質問

Suno API キーはどこで取得できますか?

reAPI 経由なら API Keys 設定で reAPI の認証情報を作成します。Suno 公式の開発者向けフォームは別のパートナー申請です。[1][2]

Suno のサブスクリプションにこのキーは含まれますか?

含まれません。Suno の契約と reAPI アカウントは別です。呼び出すエンドポイントを提供するサービスのキーを使ってください。公式アクセスの解説も参照できます。

無制限に生成できる無料 Suno API キーはありますか?

認証情報は無制限の残高ではありません。アカウント残高と操作料金を確認してください。例の $0.10 で実行できるのは $0.06 の楽曲リクエスト 1 回で、継続的な無料生成ではありません。[3]

reAPI の Suno API 認証方法は?

生成の POST とタスク照会の GET の両方に Authorization: Bearer <key> を付けます。キーはサーバーに保管し、JSON の prompt 本文には入れません。[1]

HTTP 200 なのに曲がないのはなぜですか?

送信は非同期です。id を保存し、JSON の状態が completed または failed になるまで照会します。タスク失敗でも照会の HTTP は 200 になる場合があります。[4][5]

V6 Mini や Wild に切り替えるとキーも変わりますか?

Bearer 認証は同じです。対応する操作の versionV6_MINI または V6_WILD を指定し、model をバージョン名に置き換えないでください。V6 接続ガイドにパラメーター規則があります。[3]

まず一つのリクエストを完了させる

有効な Suno API key は最初の一歩です。タスク ID を保存し、成功と失敗の両方を処理して、完了した音声を保存してください。小さなフローが動いたら、Suno リファレンスでパラメーターと料金を確認しながら、自作歌詞、他の V6 バリエーション、後続の編集を加えます。

参考資料

  1. reAPI. Authentication and key management. Retrieved September 14, 2026 from Authentication; key-creation button also checked at API Keys.
  2. Suno. Developer API partner-interest application. Retrieved September 14, 2026 from official application.
  3. reAPI. Suno operation and version reference. Retrieved September 14, 2026 from Suno, Suno V6 and the public rate card.
  4. reAPI. Task polling reference. Retrieved September 14, 2026 from Tasks.
  5. reAPI. Error codes and handling. Retrieved September 14, 2026 from Errors.