Quick Start

Spicy API

数ステップで AI 画像・動画生成をアプリに接続し、進行状況を確認しながらクレジットで利用できます。

簡単に接続

画像と動画を生成

クレジット課金

わかりやすい流れ

curl -X POST "https://spicyai.site/api/ai-studio/execute" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "modelId": "video:sora2-text-to-video-standard",
    "isPublic": true,
    "payload": {
      "model": "video:sora2-text-to-video-standard",
      "input": {
        "prompt": "A cinematic video of a cat walking in the rain"
      }
    }
  }'
Quick Start

API 利用フロー

アカウント準備から生成結果取得までの基本フローです。

1

ログインまたはアカウント登録

2

ダッシュボードで API Key を作成

3

API Key を使って生成 API を呼び出す

4

キュー投入後に生成結果を確認

5

最近の生成履歴を取得

6

ユーザー情報、クレジット、メンバーシップを確認

Authentication

API Key で認証

ログイン後に API Key を作成し、すべてのリクエストの Authorization ヘッダーに設定します。

必須リクエストヘッダー

ログイン後に API Key を作成し、すべての API リクエストに含めます。

Authorization: Bearer YOUR_API_KEY

サンプルのドメインは NEXT_PUBLIC_SITE_URL から自動解決されます。YOUR_API_KEY のみアカウントで発行した値に置き換えてください。

Request
curl -X GET "https://spicyai.site/api/auth/user" \
  -H "Authorization: Bearer YOUR_API_KEY"
Endpoints

利用できる API

以下は Spicy AI Studio で現在使われている実際のエンドポイントです。

POST/api/ai-studio/execute

AI Studio 生成リクエストを送信します。リクエストボディは AIVideoStudio.tsx が送信する modelId、isPublic、payload と同じ形です。

Request Headers

Authorization: Bearer YOUR_API_KEYContent-Type: application/json

Request Parameters

NameTypeRequiredDefaultOptionsDescription
modelIdstringYes-video:wan-2-7-text-to-video, video:wan-2-7-image-to-video, video:wan-2-7-video-edit, video:wan-2-7-reference-to-video, video:wan-text-to-video, video:wan-image-to-video, video:wan-animate-move, video:wan-animate-replace, video:kling-3-0, video:kling-3-0-motion-control, video:kling-2-6-text-to-video, video:kling-2-6-image-to-video, video:kling-2-6-motion-control, video:grok-imagine-text-to-video, video:grok-imagine-image-to-video, video:grok-imagine-video-upscale, video:grok-imagine-video-extend, image:wan-2-7-image, image:wan-2-7-image-pro, image:grok-imagine-text-to-image, image:grok-imagine-image-to-image, image:qwen2-text-to-image, image:qwen2-image-edit, image:seedream5-0-lite-text-to-image, image:seedream5-0-lite-image-to-image, image:seedream4-5-text-to-image, image:seedream4-5-edit, image:z-image, image:flux-2-pro-text-to-image, image:flux-2-pro-image-to-image, image:flux-2-text-to-image, image:flux-2-image-to-image, image:google-nano-banana-pro, image:google-nano-banana-2, image:gpt-image-2-text-to-image, image:gpt-image-2-image-to-image, image:fal-gpt-image-2選択した動画モデルの ID です。
isPublicbooleanNotrue-生成結果を公開するかどうか。既定値は true です。
payloadobjectYes--生成時に送る入力データです。ネストされた項目はモデルごとに異なります。Dynamic payload fields by model を見る
Request
curl -X POST "https://spicyai.site/api/ai-studio/execute" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "modelId": "video:sora2-text-to-video-standard",
    "isPublic": true,
    "payload": {
      "model": "video:sora2-text-to-video-standard",
      "input": {
        "prompt": "A cinematic video of a cat walking in the rain"
      }
    }
  }'
Response Example
{
  "success": true,
  "data": {
    "modelId": "video:sora2-text-to-video-standard",
    "generationId": "b6a7f5c4-8a7c-4e2b-8cf6-6b8d9b3d8d21",
    "reservedCredits": 20,
    "taskId": "provider-task-id",
    "state": "queued",
    "raw": {},
    "selectedPricing": {}
  }
}
Error Example
{
  "success": false,
  "error": "User not authenticated"
}
GET/api/ai-studio/tasks/{taskId}

キュー中または実行中の provider タスクを確認します。/api/ai-studio/execute が taskId を返し、statusSupported が true の場合に呼び出します。

Request Headers

Authorization: Bearer YOUR_API_KEY

Request Parameters

NameTypeRequiredDefaultOptionsDescription
taskIdstringYes--生成開始後に返るタスク ID です。
Request
curl -X GET "https://spicyai.site/api/ai-studio/tasks/provider-task-id" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
  "success": true,
  "data": {
    "generationId": "b6a7f5c4-8a7c-4e2b-8cf6-6b8d9b3d8d21",
    "taskId": "provider-task-id",
    "modelId": "video:sora2-text-to-video-standard",
    "state": "running",
    "mediaUrls": [],
    "raw": {},
    "reservedCredits": 20,
    "refundedCredits": 0
  }
}
Error Example
{
  "success": false,
  "error": "Generation record not found"
}
GET/api/ai-studio/video-history?page={page}&limit={limit}&status={status}&q={q}

ダッシュボード向けに動画/画像生成履歴をページング取得し、ステータスと検索フィルターを使用できます。

Request Headers

Authorization: Bearer YOUR_API_KEY

Request Parameters

NameTypeRequiredDefaultOptionsDescription
pagenumberNo1-履歴のページ番号。
limitnumberNo12-履歴の 1 ページ件数(1〜50)。
statusstringNoallall, pending, success, failed履歴のステータス絞り込み。
qstringNo""-履歴検索の任意キーワード。
Request
curl -X GET "https://spicyai.site/api/ai-studio/video-history?page=1&limit=12&status=all" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
  "success": true,
  "data": {
    "records": [],
    "total": 0,
    "totalPages": 1,
    "page": 1
  }
}
Error Example
{
  "success": false,
  "error": "Failed to load AI Studio generation history"
}
GET/api/auth/user

認証済みユーザー、現在のクレジット残高、メンバーシップ概要を返します。

Request Headers

Authorization: Bearer YOUR_API_KEY

Request Parameters

No request parameters.

Request
curl -X GET "https://spicyai.site/api/auth/user" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
  "success": true,
  "data": {
    "user": {
      "id": "user-id",
      "email": "[email protected]",
      "role": "user",
      "name": "Developer",
      "image": null,
      "authType": "apikey"
    },
    "credits": 120,
    "membership": {
      "isVip": false,
      "level": "none",
      "planTitle": null
    }
  }
}
Error Example
{
  "success": false,
  "error": "User not authenticated"
}
Models

利用可能な modelId

作りたい動画に合うモデル ID を選んでください。

FamilyVersionmodelId
NSFW WanWan 2.7 Text to Videovideo:wan-2-7-text-to-video
NSFW WanWan 2.7 Image to Videovideo:wan-2-7-image-to-video
NSFW WanWan 2.7 Video Editvideo:wan-2-7-video-edit
NSFW WanWan 2.7 Reference to Videovideo:wan-2-7-reference-to-video
NSFW WanWan 2.2 Text to Videovideo:wan-text-to-video
NSFW WanWan 2.2 Image to Videovideo:wan-image-to-video
NSFW WanWan Animate Movevideo:wan-animate-move
NSFW WanWan Animate Replacevideo:wan-animate-replace
NSFW KlingKling 3.0video:kling-3-0
NSFW KlingKling 3.0 Motion Controlvideo:kling-3-0-motion-control
NSFW KlingKling 2.6 Text to Videovideo:kling-2-6-text-to-video
NSFW KlingKling 2.6 Image to Videovideo:kling-2-6-image-to-video
NSFW KlingKling 2.6 Motion Controlvideo:kling-2-6-motion-control
NSFW Grok ImagineGrok Imagine Text to Videovideo:grok-imagine-text-to-video
NSFW Grok ImagineGrok Imagine Image to Videovideo:grok-imagine-image-to-video
NSFW Grok ImagineGrok Imagine Video Upscalevideo:grok-imagine-video-upscale
NSFW Grok ImagineGrok Imagine Video Extendvideo:grok-imagine-video-extend
NSFW Wan ImageWan 2.7 Imageimage:wan-2-7-image
NSFW Wan ImageWan 2.7 Image Proimage:wan-2-7-image-pro
NSFW Grok ImagineGrok Imagine - Text to Imageimage:grok-imagine-text-to-image
NSFW Grok ImagineGrok Imagine - image to imageimage:grok-imagine-image-to-image
NSFW Qwen2Qwen2 - Text To Imageimage:qwen2-text-to-image
NSFW Qwen2Qwen2 - Image Editimage:qwen2-image-edit
NSFW SeedreamSeedream5.0 Lite - Text to Imageimage:seedream5-0-lite-text-to-image
NSFW SeedreamSeedream5.0 Lite - Image to Imageimage:seedream5-0-lite-image-to-image
NSFW SeedreamSeedream4.5 - Text to Imageimage:seedream4-5-text-to-image
NSFW SeedreamSeedream4.5 - Editimage:seedream4-5-edit
NSFW Z-ImageZ-Imageimage:z-image
NSFW Flux-2Flux-2 Pro Text to Imageimage:flux-2-pro-text-to-image
NSFW Flux-2Flux-2 Pro Image to Imageimage:flux-2-pro-image-to-image
NSFW Flux-2Flux-2 Text to Imageimage:flux-2-text-to-image
NSFW Flux-2Flux-2 Image to Imageimage:flux-2-image-to-image
Nano BananaNano Banana Proimage:google-nano-banana-pro
Nano BananaNano Banana 2image:google-nano-banana-2
GPT Image 2Text to Imageimage:gpt-image-2-text-to-image
GPT Image 2Image to Imageimage:gpt-image-2-image-to-image
GPT Image 2Gpt image 2 Special offerimage:fal-gpt-image-2
Task States

タスク進行状態

待機中・生成中・完了・失敗など、現在の進行状況を示します。

queued
running
succeeded
failed
Model Schema

モデルごとの payload フィールド

モデルを選ぶと /api/ai-studio/models/{modelId} の内容にもとづいて、入力できる項目を表示します。

モデル選択
入力フィールド説明
このモデルでは表示可能な入力フィールド説明が見つかりませんでした。
Pricing

クレジットベースの API 課金

生成リクエストは既存の AI Studio 生成フローでクレジットを予約・確定します。

API 利用はクレジットで課金されます。

生成ごとの消費クレジットは、モデル、長さ、品質、解像度、価格行によって変わります。

残高はアカウント画面または /api/auth/user で確認できます。

クレジット不足の場合、新しい生成を続行できません。

FAQ

AI Studio API FAQ

接続方法、課金、進行確認でよくある質問をまとめています。

How do I get an API key?

ログイン後、API Keys ダッシュボードで有効な Key を作成し、Authorization: Bearer YOUR_API_KEY として使用します。

How do I authenticate API requests?

すべてのリクエストで Authorization ヘッダーに Bearer 形式の API Key を送信します。

How is API usage billed?

生成 API はアカウントのクレジットを使用します。消費量はモデルと価格オプションによって変わります。

How do I check video generation status?

execute API が taskId を返し statusSupported が true の場合、/api/ai-studio/tasks/{taskId}?modelId={modelId} をポーリングします。

Where can I view my generation history?

/api/ai-studio/video-history でページングされた生成履歴を確認できます。

What happens if I run out of credits?

クレジット不足の場合、新しい生成リクエストは続行できません。

Can I use the API for commercial projects?

アカウントプランと利用規約に従って、本番ワークフローへ統合できます。

Does the API support different video models?

はい。利用可能な modelId は config/ai-video-studio.ts に設定されたモデルです。

AI Studio API を始める

API Key を作成し、最初の生成リクエストを試してみましょう。