Free2 ダウンロード API
インターフェースの説明
Free2 は独立した有料ダウンロード経路です。楽曲 ID(または suno.com の楽曲リンク)から MP3/WAV/歌詞/メタデータのファイルを解析し、プラットフォームがホストするダウンロードアドレスを返します。API Key のみを受け付け、ブラウザのログイン状態は受け付けません。返却値に Suno の暗号化再生ソースは含まれません。
エンドポイント: POST /api/music/free2
課金: 成功した曲数で課金され、現在は既定で 1 曲 0.2 元です。1 回のリクエストで複数のファイル種別を選んでも追加料金はかかりません。解析に失敗した曲は課金されません。1 回につき最大 10 曲(重複排除後)で、実際の請求額は管理画面の価格設定に従います。
推奨モデル: suno-v6。suno-v6、suno-v6-wild、suno-v6-mini が利用できます。
認証
| パラメータ名 | 型 | 必須 | 説明 |
|---|---|---|---|
| Authorization | string | はい | Bearer YOUR_API_KEY |
| Content-Type | string | はい | application/json |
リクエストパラメータ
| パラメータ名 | 型 | 必須 | 既定値 | 説明 |
|---|---|---|---|---|
| song_id | string | いいえ | - | 単一の楽曲 ID。suno.com の楽曲リンク(/s/ 短縮リンクを含む)でも可 |
| song_ids | string[] | いいえ | - | 複数曲の書き方(推奨)。1 回につき最大 10 曲 |
| songs | string[] | いいえ | - | song_ids の別名 |
| files | string[] | はい | - | 必要なファイル種別。mp3、wav、lyrics、metadata が選べます。m4a は未対応 |
song_id と song_ids の少なくとも一方を指定し、files は 1 つ以上指定してください。
リクエスト例
curl -X POST https://www.suno-api.io/api/music/free2 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["song_id_1", "song_id_2"],
"files": ["mp3", "wav", "lyrics"]
}'
レスポンス結果
{
"code": 200,
"message": "success",
"data": {
"songs": [
{
"song_id": "song_id_1",
"files": [
{"type": "mp3", "url": "https://media.suno-api.io/assets/song_id_1-free2-v1-mp3.mp3"}
]
},
{
"song_id": "song_id_2",
"files": [],
"error": {"code": "song_not_found", "message": "song not found or not owned by the current user"}
}
],
"requested_songs": 2,
"succeeded_songs": 1,
"price": 0.2
}
}
| フィールド | 型 | 説明 |
|---|---|---|
| songs | array | 楽曲ごとの結果(song_id、files[]、失敗時は error) |
| requested_songs | number | 正規化・重複排除後の楽曲数 |
| succeeded_songs | number | 成功数。課金はこの数で計算されます |
| price | number | 今回の実際の請求額(元) |
1 曲だけをリクエストした場合、旧版の単一曲形式との互換のため、レスポンスに最上位の song_id と files も追加で返ります。
キャッシュ済みアドレスの再利用(課金なし)
すでにダウンロードしたことのある曲は、再度のダウンロードで再解析も再課金も不要です。POST /api/music/free2/cached を使うと、そのアカウントが以前ダウンロードしたファイルの現在のアドレスを取得できます。
エンドポイント: POST /api/music/free2/cached
課金: 無料。読み取り専用のキャッシュで、解析・トランスコード・課金は行いません。すでに準備済みで回収されていないアドレスのみを返します。
⚠️ ダウンロードアドレスの有効期限は 7 日です。早めに転送保存してください。
songs[].files[].urlはプラットフォームのオブジェクトストレージが提供し、既定で 7 日後に失効します(ファイルは回収され、古いアドレスは 404 を返します)。この 7 日以内にご自身のストレージへ転送してください。失効後はPOST /api/music/free2を再度呼び出して準備し直せば新しい有効なアドレスが得られます(この再準備は通常の課金規則で課金されます。/api/music/free2/cachedは依然有効なキャッシュアドレスのみを返します)。
リクエストパラメータ: POST /api/music/free2 と完全に同じです(song_id / song_ids / songs のいずれか、files は 1 つ以上)。
curl -X POST https://www.suno-api.io/api/music/free2/cached \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "song_ids": ["98ca3f1d-…", "a185b3d9-…"], "files": ["mp3"] }'
{
"success": true,
"data": {
"items": [
{ "song_id": "98ca3f1d-…", "type": "mp3", "url": "https://…/assets/98ca3f1d-…-free2-v1-mp3.mp3" }
],
"songs": [
{ "song_id": "98ca3f1d-…", "files": [ { "type": "mp3", "url": "https://…" } ], "missing_files": [] },
{ "song_id": "a185b3d9-…", "files": [], "missing_files": ["mp3"] }
],
"missing": ["a185b3d9-…"]
}
}
| フィールド | 型 | 説明 |
|---|---|---|
| items | array | そのままダウンロードできるアドレス一覧(song_id + type + url) |
| songs | array | 楽曲ごとの結果。missing_files は今回キャッシュに当たらなかった形式 |
| missing | string[] | この曲には利用可能なキャッシュが 1 つもない(POST /api/music/free2 で解析し直す必要があり、その段階は 1 曲ごとに課金されます) |
アドレスが返るのは、あなたが以前ダウンロードした曲だけです。ダウンロード記録がない曲、または資産がすでに回収された曲は missing にのみ現れ、アドレスは返りません。
注意事項
POST /api/music/free2は Suno 上の任意の公開楽曲(本プラットフォームにない曲も含む)を解析できます。解析できない曲はその曲だけにerrorが返り、同じバッチの他の曲には影響しません。一方POST /api/music/free2/cachedはこのアカウントがダウンロードした曲にのみアドレスを返します。- 同じ曲の初回解析でホスト用ファイルが生成され、以降は再利用されます。
filesに重複した種別を入れないでください。サーバー側で自動的に重複排除されます。 - 楽曲メディアのダウンロードと試聴 APIとの違い: Free2 は有料で、suno.com のリンクを直接渡せ、歌詞以外のタイムライン/MIDI などの種別は提供しません。