API Reference
非同期画像 API のエンドポイントと規約。
SeedRouter は、画像・動画・音声・テキストのモデルを 1 つの API と 1 つの API キーで提供します。画像・動画・音声モデルは非同期タスクとして実行されます。リクエストを送信するとタスク ID が返り、その ID をポーリングして結果を取得します。テキストモデルは、そのモデルのベンダーと同じリクエスト形式で直接回答を返します。
ベース URL
https://api.seedrouter.aiHTTPS を使用し、リクエスト本文は JSON で送信してください。音声エンドポイントでは代わりに multipart/form-data でファイルをアップロードします。
認証
タスクの照会を含むすべてのリクエストで、キーを Bearer トークンとして送信してください。
Authorization: Bearer YOUR_API_KEYAnthropic Messages エンドポイントでは、anthropic-version ヘッダーと合わせて x-api-key にキーを入れる形式も使えます。詳しくは認証を参照してください。
メディアタスクのエンドポイント
| メソッド | パス | 用途 |
|---|---|---|
| POST | /v1/images/generations | 画像の生成または編集タスクを送信します:GPT Image、Nano Banana、Midjourney。 |
| POST | /v1/videos/generations | 動画タスクを送信します:Seedance 2.5 と 2.0(ModelArk のリクエストボディ)、Veo 3.1、Kling 3.0、MiniMax H3、SD Video。 |
| POST | /v1/audio/transcriptions | 音声ファイルを送信し、Whisper-1 で文字起こしします。 |
| POST | /v1/audio/translations | 音声ファイルを送信し、Whisper-1 で英語に翻訳します。 |
| GET | /v1/tasks/{id} | 画像・動画・音声タスクの状態と結果を取得します。 |
参照用の画像・動画・音声は、リクエスト本文に URL として指定します。画像リクエストに入力画像を含めると編集になります。各モデルのリファレンスに対応パラメータが記載されています。
テキストのエンドポイント
| メソッド | パス | リクエスト形式 |
|---|---|---|
| POST | /v1/chat/completions | OpenAI Chat Completions |
| POST | /v1/responses | OpenAI Responses |
| POST | /v1/messages | Anthropic Messages |
| POST | /v1beta/models/{model}:generateContent | Google Gemini |
| POST | /v1beta/models/{model}:streamGenerateContent | Google Gemini(ストリーミング) |
| GET | /v1/models | 利用可能なモデルを一覧表示します |
すべてのテキストモデルがすべての形式に対応しているわけではありません。対応形式はモデルの API リファレンスに記載されています。たとえば Claude Opus 5.5 は Chat Completions、Responses、Messages に対応し、Gemini のテキストモデルは /v1beta のパスを使います。
リクエストのライフサイクル
メディアタスク
- リクエストを送信します。レスポンスは完成したファイルではなくタスクなので、その
idを保存してください。 - タスクが最終状態になるまでポーリングします。
/v1/tasks/{id}のタスクはprocessingを経てcompletedまたはfailedになります。 - 結果を読み取ります。画像は
output.data[].url、動画はoutput.video_url、Whisper の出力はoutput.urlにあります。結果のリンクはすべて SeedRouter のストレージを指します。
失敗した場合は error.code と error.message を確認してください。失敗したタスクは課金されません。完了を知らせる webhook はないため、Webhooks の説明どおりにタスクをポーリングしてください。
テキストのリクエスト
テキストのリクエストは、モデルの回答を同じレスポンスで、ベンダー公式のレスポンス形式のまま返します。stream を true にするか、Gemini では :streamGenerateContent を使うと、サーバー送信イベント(SSE)で受け取れます。テキストモデルはトークン単位で課金されます。
