API リファレンス
音楽
POST
/v1/music/generationsGET
/v1/music/tasks/{task_id}GET
/v1/music/tasks/{task_id}/content歌やインストゥルメンタルのワークフロー向けの非同期音楽生成。送信するとすぐに task_id が返ります。タスクをポーリングするか Webhook コールバックを受け取り、完成した音声を /content から読み取ります。
#リクエストパラメーター
modelstring必須モデルページにある音楽モデルの ID(例:suno)。
promptstring必須曲の内容、ムード、楽器構成、歌詞の方向性を記述します。
titlestring任意任意の曲名。対応するモデルファミリーに転送されます。
tagsstring | array任意任意のジャンルやスタイルのヒント(cinematic、pop、ambient など)。
versionstring任意プロバイダーが複数の世代を提供している場合の、モデルファミリーのバージョン切り替え。
mvstring任意プロバイダー固有の音楽モード選択。ユーザーが明示的に操作する必要がない限り、サーバー側で設定します。
instrumentalboolean任意モデルが対応している場合、ボーカルなしのインストゥルメンタルを生成します。
make_instrumentalboolean任意インストゥルメンタル出力用の別のベンダーフラグ。一部のプロバイダーは instrumental の代わりにこれを使います。
continue_clip_idstring任意新しい曲を始める代わりに、以前のクリップを継続・延長します。
continue_atnumber任意継続フローでの再開位置(秒)。
webhook_urlstring任意タスクが終了状態になったときに呼び出される HTTPS URL。
webhook_secretstring任意設定すると、配信に X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)) が付きます。
シンプルに始める
ほとんどのプロダクトでは、最初の統合は prompt だけで十分です。title、tags、version、継続用のフィールドは上級者向けの設定で、プロダクトに明確な必要が生じてから追加してください。
他のメディアタスクと同じ非同期の仕組み
音楽は画像や動画のタスクと同じ「送信 → ポーリングまたは Webhook → /content」のパターンに従うため、通常は 1 つのバックエンドのタスク処理で 3 種類すべてを扱えます。
#関連するエラー
- 404 not_found不明なパス、不明なモデル名、または期限切れか他アカウントの task_id です。
- 422 unprocessable_entityゲートウェイが転送したパラメーター値をベンダーが拒否しました(対応していないサイズや長さなど)。
- 401Bearer トークンが無効か、ありません。このパスでは error.code が付きません — ステータスで判定してください。
- 402 insufficient_user_quotaウォレット残高が事前確保の見積額に足りません。
- 429キー単位のレート制限です。ボディは空なので、Retry-After の時間だけ待ってください。insufficient_user_quota が付いた 429 は、レート制限ではなく 1 日の利用上限額によるものです。
- 503 model_not_found不明なモデルか、現在そのモデルを提供できる正常なチャネルがありません。
#リクエスト例
# submit
curl https://www.aisplice.store/v1/music/generations \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno",
"prompt": "a warm cinematic piano theme",
"instrumental": true
}'
# poll every 5s
curl https://www.aisplice.store/v1/music/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# fetch the finished track
curl -L https://www.aisplice.store/v1/music/tasks/$TASK_ID/content \
-H "Authorization: Bearer sk-YOUR_KEY" \
-o song.mp3#レスポンス
response.json
// POST — submit accepted
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/music/tasks/{task_id}
{
"task_id": "task_xxx",
"status": "in_progress",
"progress": "42%"
}
// GET /v1/music/tasks/{task_id}/content
{
"task_id": "task_xxx",
"status": "completed",
"metadata": {
"audio_url": "https://…",
"lyric": "…"
}
}まだ解決しませんか?
リクエスト ID かエラーメッセージを送っていただければ、こちらで調査します。