API キーはサーバーに保管
ブラウザー、モバイルバンドル、プロンプト、ログ、エージェント出力にキーを公開せず、管理下のバックエンドから送信します。
接続・連携
チャットやロールプレイには OpenAI 互換 API、画像・動画・音声にはタスク API を使えます。モデルを選び、キーをサーバーに保管して、必要な結果に合う接続方法へ進みましょう。
接続方法を選ぶ
いつもの作業場所から始めてください。どの方法でも、同じモデルを同じ料金で使えます。
5 分クイックスタート
タスクを作成し、その ID を控えて、完成したファイルを受け取ります。画像・動画・音声のどのモデルでも流れは同じです。
サンプルのモデル ID と input は、そのモデルページに表示された正確なフィールドへ置き換えてください。別のモデルを見てパラメータを推測してはいけません。
HTTP 202 はタスクの受理を示し、生成完了を意味しません。レスポンス本文の業務コードは code: 200 です。data.taskId を直ちに保存してください。estimatedCost は、このタスクのために仮押さえした金額です。
queued と running は実行中、succeeded・failed・expired は終了状態です。成功だけを待たず、どの終了状態でも問い合わせを止めてください。
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-8814-render-1" \
-d '{
"model": "alibaba/z-image-turbo/text-to-image",
"input": { "prompt": "A ceramic teapot on a linen cloth, soft window light" }
}'alibaba/z-image-turbo/text-to-image は実際に呼び出せるテキストから画像を生成するエンドポイントです。別のメディアモデルに切り替える場合は、そのモデルの正確な ID とスキーマを使ってください。
{
"code": 200,
"msg": "success",
"data": {
"taskId": "job_01k...",
"state": "queued"
},
"request_id": "req_01k..."
}レスポンスの抜粋です。例の ID と URL は実際のレスポンスの値に置き換えてください。
curl 'https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=job_01k...' \
-H "Authorization: Bearer $SPICY_API_KEY"{
"code": 200,
"data": {
"taskId": "job_01k...",
"state": "succeeded",
"output": {
"assets": [{
"key": "tasks/.../output.png",
"url": "https://example.com/result.png?signature=FROM_RESPONSE",
"expiresAt": "2026-10-07T12:20:00Z",
"mime": "image/png"
}]
},
"settled": true
}
}レスポンスの抜粋です。例の ID と URL は実際のレスポンスの値に置き換えてください。
# Copy data.output.assets[0].url from the task response
curl -L -o result.png "URL_FROM_TASK_RESPONSE"data.output.assets[0].url を API キーなしで直接ダウンロードします。URL は通常 20 分で失効するため、タスクを再取得して新しい URL を受け取り、残すファイルは自分のストレージに保存してください。pending の場合は URL が準備できるまで再取得します。
一覧
使っているツールを選んでください。各カードから設定ガイドを開けます。
サーバー側のセキュリティ
次の 3 点はキーの流出、二重課金、タスクの取りこぼしをそれぞれ防ぎます。公開前の最低ラインです。
ブラウザー、モバイルバンドル、プロンプト、ログ、エージェント出力にキーを公開せず、管理下のバックエンドから送信します。
タスク作成のたびに安定した Idempotency-Key を送ってください。ネットワークの結果が不明なときは、同じ処理を同じキーで再試行します。課金対象のタスクが 2 件できることはありません。
返された taskId を保存し、署名付き Webhook または上限付きの状態確認を使います。受理後は実行が始まり、キャンセルできません。失敗やタイムアウトのタスクは通常、課金されません。ただし、モデルページに明記された一部のモデルではコンテンツ拒否も課金対象です。送信前にその課金条件をご確認ください。
API ドキュメント