機能別
音楽
音楽はタスクとして実行されます:プロンプトを送信し、後で確認するかコールバックを受け取ります。まずはプロンプトだけで始めましょう。
#1. モデルを選ぶ
suno$0.07 / リクエスト制限とステータス
この用途で稼働中のモデルは 1 個です。切り替えると下のコードが変わります。
#2. リクエストをコピー
YOUR_API_KEY を自分のキーに置き換えて実行します。表示されているオプションは、このモデルが受け付けるものです。
https://www.aisplice.store/v1/music/generationsBearer API key非同期タスクオプションこのモデルで公開されているオプションのみ表示しています。
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/music/generations \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "Suno",
"prompt": "An uplifting electronic track for a product launch",
"operation": "music",
"version": "v6",
"custom": false,
"instrumental": false
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/music/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 3
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/music/tasks/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .すべてのパラメーター
このモデルが受け付けるすべてのフィールドと、指定できる値。
すべてのパラメーター
このモデルが受け付けるすべてのフィールドと、指定できる値。
prompt目的の結果を記述する指示。
レスポンスの流れ
タスクのステータス、終了状態、結果レスポンスの例。
レスポンスの流れ
タスクのステータス、終了状態、結果レスポンスの例。
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "music.task",
"model": "Suno",
"status": "queued"
}待機中
queued · submitted · in_progress · processing
成功
completed · succeeded · success
失敗
failed · failure · cancelled · canceled
#3. 結果を取得
送信するとすぐに task_id が返ります。status が completed になるまで数秒ごとにタスクを確認するか、webhook_url を渡せば完了時にこちらから呼び出します。
GET https://www.aisplice.store/v1/music/tasks/{task_id}
GET https://www.aisplice.store/v1/music/tasks/{task_id}/content
成功した場合のみ課金
#うまくいかないとき
- フィールド名付きの 400:そのオプションはこのモデルでは受け付けられません。手順 2 に表示される値を使ってください。
- モデルがコンテンツを拒否した場合:プロンプトを言い換えてください。拒否されたリクエストは課金されません。
- 402:残高がこのリクエストに足りません。ウォレットでチャージしてから再試行してください。
- 429:ペースを落とし、Retry-After の秒数が経ってから再試行してください。
- 503 model_not_found:モデル名が間違っているか、モデルがオフラインです。手順 1 から選び直してください。
プロダクトに組み込む最初にユーザーに見せるオプションと、後回しにするオプション。
最初にユーザーに見せるべき選択肢まずはプロンプトと料金に影響する設定を 1 つだけ用意し、基本フローが動いてから残りを追加します。+
創作の意図
prompt のようなフィールドは、変更による結果をユーザーが直接理解できるため、UI に置くべきです。
コストの倍率要因
duration、resolution、size、count のようなフィールドは、料金をすでに説明できる状態になってから導入してください。
モード切り替え
image、mask、継続用の ID のようなフィールドはワークフロー自体を変えるため、専用のモードでのみ表示してください。
システム内部の設定
webhook_secret のようなフィールドは日常的なクリエイターではなく統合する開発者向けなので、デフォルトの UI には含めないでください。
prompt- 表示するタイミング
- 常に。音楽生成に最低限必要な入力です。
- 推奨デフォルト
- UI で必須にします。
- 重要な理由
- テーマ、ジャンル、感情の方向性を伝えます。
instrumental / make_instrumental- 表示するタイミング
- ボーカルありとインストゥルメンタルの出力をプロダクトで明確に区別する場合に表示します。
- 推奨デフォルト
- ユーザーがボーカルありとインストゥルメンタルを選ぶ場合を除き、サーバー側で設定します。
- 重要な理由
- 出力の種類が変わるため、明確なビジネス上の選択に対応させるべきです。
title / tags- 表示するタイミング
- プロンプトのみの生成をユーザーが理解してから表示します。
- 推奨デフォルト
- 任意の詳細フィールドとして扱います。
- 重要な理由
- スタイルの調整に役立ちますが、初回の生成成功を妨げるべきではありません。
version / mv- 表示するタイミング
- ユーザーがモデルファミリーや生成モードを選ぶ必要がある場合のみ表示します。
- 推奨デフォルト
- 推奨バージョンを 1 つサーバー側で固定します。
- 重要な理由
- 判断の負担が増えるため、通常は運用者向けの設定に置きます。
continue_clip_id / continue_at- 表示するタイミング
- 継続や延長のワークフローでのみ表示します。
- 推奨デフォルト
- 通常の作成フローでは非表示にします。
- 重要な理由
- 上級者向けの設定なので、早い段階で見せると初めてのユーザーが混乱します。
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content
Phase 2
- one quality or resolution selector
- clear pricing hint
Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning結果の信頼できる情報源は 1 つに
まだ解決しませんか?
リクエスト ID かエラーメッセージを送っていただければ、こちらで調査します。