ソース音声アップロード API

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

インターフェースの説明

ソース音声アップロードは、ローカルまたはリモートの音声を、以降のカバー・延長・セクション置換・ステム分離などで使えるソース clip としてアップロードします。

エンドポイント: POST /api/music/upload-source

課金: 無料。本エンドポイントはソース音声をアップロードするだけで、生成タスクは開始しません。

推奨の使い方: これは「2 段階カバー」の 1 段目です。 まず本エンドポイントで音声をアップロードし(無料、失敗してもいつでも再試行できます)、返ってきた clip_id を保存します。アップロードが成功したこと(status が完了状態)を確認したうえで、 ソース clip からのカバー API を呼び出してカバーを開始してください。この段階のリクエストボディは数百バイトしかないため、 音声が大きすぎて転送中に切れることはありません。一括型のアップロード後カバー APIと比べて、 この分割方式は音声が大きい、ネットワークが不安定、同じ素材を何度も使い回す(延長 / 置換 / ステム分離)場合により安定します。

大きなファイルのアップロードのヒント

状況 推奨する方法
音声がすでに公開されている(https の直リンクがある) file_url を使う: リクエストボディは数百バイトで最も安定
一時的な署名 URL(ByteDance など) URL が公開アクセス可能で有効な場合のみ file_url を使用し、それ以外は multipart または即時アップロードを使用
ローカルファイル(Node / Python / デスクトップ) multipart でアップロード(-F "file=@source.mp3")し、Content-Type を手動で設定しない
JSON + base64 しか使えない Content-Length はバイト数(Buffer.byteLength)にすること。そうしないとリクエストボディが切れる可能性があります

アップロード完了後は、必ずレスポンスの status が完了状態であることを確認し、clip_id を保存してから 2 段目に進んでください。 アップロードに失敗しても課金されず、生成タスクも作られません。そのまま再試行してください。

アップロード前に file_url を確認

file_url はブラウザではなく、プラットフォームのサーバーが直接 HTTP でダウンロードします。ブラウザで開ける URL でも、本番サーバーから取得できるとは限りません。

ローカルファイルは file フィールドを使った multipart アップロードを推奨します。ByteDance などの一時署名 URL は、公開アクセス可能でリクエスト送信時にも有効な場合を除き、file_url を使用しないでください。

アップロードを送る前に、一般公開されたサーバーで次を実行してください。

curl -L --max-time 30 -D - -o /dev/null "https://example.com/source.mp3"

GET が HTTP 200 で終了し、音声 MIME を返し、内容が空でないことを確認してください。ログインページ、HTML、401、403、404、410 はサーバー側で利用できません。

file_url download failed: HTTP 404 は通常、署名の期限切れ、ファイル削除、URL パラメータの欠落を示します。

このアップロードは無料です。file_url のダウンロードに失敗しても clip_id、楽曲タスク、生成呼び出しは作られず、料金も発生しないため返金は不要です。

リクエストパラメータ

Headers

JSON リクエスト:

パラメータ名 型 必須 説明
Authorization string はい Bearer YOUR_API_KEY
Content-Type string はい application/json

multipart リクエストでは Content-Type を手動で指定しないでください。クライアントが自動生成します。

ボディパラメータ

パラメータ名 型 必須 既定値 説明
model string いいえ suno-v6 対客モデル名: suno-v6、suno-v6-wild、suno-v6-mini
file_url string いいえ - リモート音声 URL
file_base64 string いいえ - Base64 音声
file ファイル(multipart) いいえ - アップロードする音声ファイル。フィールド名は file
file_name string いいえ - ファイル名
upload_type string いいえ file_upload アップロード種別

JSON リクエスト例

curl -X POST https://www.suno-api.io/api/music/upload-source \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "file_url": "https://example.com/source.mp3",
    "file_name": "source.mp3",
    "upload_type": "file_upload"
  }'

multipart リクエスト例

curl -X POST https://www.suno-api.io/api/music/upload-source \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@source.mp3" \
  -F "file_name=source.mp3" \
  -F "upload_type=file_upload" \
  -F "model=suno-v6"
import requests

with open("source.mp3", "rb") as audio:
    response = requests.post(
        "https://www.suno-api.io/api/music/upload-source",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        data={
            "file_name": "source.mp3",
            "upload_type": "file_upload",
            "model": "suno-v6",
        },
        files={"file": ("source.mp3", audio, "audio/mpeg")},
        timeout=300,
    )

response.raise_for_status()
print(response.json())

レスポンス結果

{
  "clip_id": "uploaded_clip_id",
  "status": "complete",
  "title": "source.mp3",
  "image_url": "https://...",
  "audio_url": "https://...",
  "display_tags": "pop, vocal",
  "inferred_description": "uploaded source audio",
  "clip_metadata": {}
}
次のページ強化アップロード API

API キーの取得

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

API キーを取得 概要に戻る