/ai/v1/images、動画には /ai/v1/videos、統一タスクレコードには /ai/v1/tasks を使用します。
- 画像生成はデフォルトで同期実行され、
async: trueを渡すと非同期で実行されます。 - 動画生成は常に非同期です。
- 画像と動画の詳細 API では、メディアタスクの最新ステータスを取得できます。
/ai/v1/tasksは、画像、動画、LLM タスクを統一的に参照できる読み取り専用ビューです。
動画チュートリアル:非同期タスク
非同期タスクの仕組み全体を解説し、非同期画像生成を例に一連の呼び出し手順を紹介します。
コンソールで非同期タスクを有効にする
/ai/v1 メディアタスク API
を使用する前に、現在のアカウントで非同期タスク機能を有効にしてください。クイックスタート
次の例では、wan2.6-t2v を使用して動画を作成します。このモデルは duration と size を受け付けます。使用できるフィールドはモデルによって異なります。
3 種類の API をどのように使い分けるか
Base URL は
https://aihubmix.com、認証方式は Bearer Token です。
/ai/v1/tasks には作成 API がありません。画像と動画は、それぞれのメディア生成
API から作成する必要があります。LLM
リカバリータスクは、クライアントの中断後にプラットフォームによって自動保存されます。メディア API と統一タスク API の違い
メディア詳細 API と統一タスク API は同じタスク最上位フィールドを返しますが、output の項目と照会動作が異なります。
したがって、メディア生成のステータスをポーリングする場合は画像または動画の詳細 API を使用します。タスクをまとめて絞り込む、結果のメタデータを読み取る、または LLM レスポンスを復元する場合は
/ai/v1/tasks を使用します。
非同期メディアモデルを見つけて Schema を取得する方法
ディスカバリーは 2 段階です。まず、公開モデルカタログから非同期 API に対応する画像生成または動画生成モデルを取得します。次に、モデルのmodel_id を使って、そのエンドポイントのリクエスト Schema を取得します。
非同期 API 対応モデルの一覧を取得する
モデルカタログは Playground と同じデータソースを使用します。画像生成モデルにはtype=image_generation、動画生成モデルには type=video を指定します。schema_checked=true を追加すると、リクエスト Schema が公開され、確認済みのモデルだけが返されます。
type フィルターは 1 つの値を受け付けるため、モデルタイプごとにリクエストしてください。
レスポンスの形は {success, message, data} です。非同期メディア連携に関連する data のフィールドは次のとおりです。
1 つのモデルのリクエスト Schema を取得する
対応するフィールド、列挙値、数値範囲はモデルごとに異なります。画像または動画のリクエストを送信する前に、次の公開 API で対象モデルの利用可能なエンドポイントとリクエスト JSON Schema を取得してください。modality は image または video です。endpoints 配列の各項目が、利用可能な呼び出しプロトコルを示します。
同じモデルで
/ai/v1 エンドポイントと OpenAI 互換の /v1 エンドポイントが返される場合があります。OpenAI 互換エンドポイントは最新モデルにまだ対応していない可能性があるため、/ai/v1 エンドポイントを優先してください。非同期タスク API では、path が /ai/v1/images/generations または /ai/v1/videos の項目を選び、その request.schema を使用してください。endpoints 配列内の位置には依存しないでください。
次のコマンドで、各非同期タスクエンドポイントのリクエスト Schema を直接抽出できます。
404 model_not_found が返されます。エンドポイントデータを一時的に取得できない場合は 500 endpoints_unavailable が返されます。
どのモデルとフィールドに対応しているか
画像と動画のプロトコルには、モデル間で共通する標準フィールドが定義されています。ただし、各モデルでは実際の能力に応じて、使用できるフィールド、列挙値、数値範囲が限定されます。呼び出す前に、モデル Schema API から対象モデルの現在の制約を取得してください。 例:wan2.6-t2vはduration、size、seedに対応しますが、resolution、aspect_ratio、frame_images、input_references、generate_audioは受け付けません。qwen-image-2.0はn、size、seed、negative_prompt、image、imagesに対応しますが、aspect_ratioとmaskは受け付けません。
LLM 中断リカバリー対応モデル
現在、次のモデルに対応しています。- gpt-5.6-sol
- gpt-5.5-pro
- gpt-5.4-pro
- gpt-5.2-pro
- claude-fable-5
- claude-opus-5
画像タスクを作成する方法
同期画像
async を省略するか false に設定すると、API は生成が完了するまで待機し、タスクオブジェクトを返します。
GET /ai/v1/images で該当タスクを検索できます。
非同期画像
async をブール値 true に設定すると、API はすぐにタスクオブジェクトを返し、生成処理はバックグラウンドで続行されます。
GET /ai/v1/images/{id} で照会します。完了後は、各 output 項目の content_url を直接リクエストしてください。この URL には、該当画像の result_id が含まれています。
画像リクエストの
async はブール値でなければなりません。webhook_url と
webhook_events_filter は async: true
と組み合わせた場合にのみ使用できます。画像の標準フィールド
動画タスクを作成する方法
動画リクエストは常に非同期であり、Prefer: wait を使用して同期待機に変更することはできません。標準プロトコルでは、整数の duration で秒数を指定します。
動画の標準フィールド
input_references 項目の構造:
type には image_url、video_url、audio_url のいずれかを指定できます。
frame_images 項目の構造:
frame_type には first_frame または last_frame を指定できます。
メディアタスクオブジェクト
画像と動画の専用 API は、次の構造を返します。
メディアの
output 項目:
ステータスの説明
クライアントは、ステータスが
completed、failed、cancelled のいずれかになるまで、15 秒ごとに照会できます。15 秒はクライアント側の推奨ポーリング間隔であり、サーバープロトコルの制限ではありません。
メディアタスクを照会する方法
メディア詳細の照会
メディア一覧の照会
作成レスポンスを失った場合は、該当するメディア一覧からタスク ID を取得できます。統一タスク API を使用する方法
統一タスク API では、次の条件で絞り込めます。
統一タスクの詳細:
output 項目:
/ai/v1/tasks/{id}/content を直接リクエストします。複数成果物のタスクでは /ai/v1/tasks/{id}/content/{result_id} をリクエストする必要があり、結果 ID を指定しない場合は 400 result_id_required が返されます。
統一タスクの一覧、詳細、コンテンツ API は、タスク作成時の Bearer Token
ごとに分離されています。同じアカウントの別の API Key
からは、このタスクを読み取れません。
メディア結果をダウンロードする方法
画像のダウンロード
画像の完了後、メディアタスクオブジェクトのoutput[].content_url を項目ごとにリクエストします。
/ai/v1/images/{id}/content/{result_id} です。メディアタスクオブジェクトでは result_id が個別に公開されないため、クライアントは content_url をそのまま使用できます。
b64_json が空でない場合は、このフィールドを直接 Base64 デコードできます。
動画のダウンロード
Webhook を使用する方法
非同期画像と動画は、タスク単位の Webhook に対応しています。webhook_url は最大 512 文字で、ローカルホスト、プライベートネットワーク、その他の制限対象アドレスを指定することはできません。webhook_events_filter を省略すると、プラットフォームは completed、failed、cancelled を配信します。明示的に渡す場合、配列は空にできず、重複も許可されません。また、webhook_url と一緒に使用する必要があります。
リクエストで webhook_url を渡さなかった場合、非同期画像と動画ではアカウントに設定されたデフォルトのコールバック URL が使用されます。アカウントのデフォルト URL が無効な場合は無視され、タスクの作成は妨げられません。
コールバックリクエスト
results は結果がアーカイブ済みの場合にのみ含まれ、ダウンロードには引き続き Bearer Token が必要です。
リトライと重複排除
プラットフォームは少なくとも 1 回の配信を行うため、同じイベントが複数回届く場合があります。- HTTP
2xxは受信成功を示します。 - HTTP
5xx、ネットワークエラー、タイムアウトの場合は再試行します。 - HTTP
3xxと4xxの場合は再試行しません。 - 配信は最大 6 回で、再試行間隔は順に 1、4、16、64、256 秒です。
event_id を保存し、同じイベントを再度受信した場合はそのまま 2xx を返してください。
LLM 中断リカバリーの仕組み
LLM 中断リカバリーは、クライアント接続が切断された後の最終レスポンスを取得するための機能です。リクエスト方式、ストリーミング動作、レスポンス形式は変わらず、リクエスト開始時にタスク ID が事前に返されることもありません。 次の条件をすべて満たす必要があります。
プラットフォームは、レスポンスが完全に配信されず、かつクライアントがすでに切断されたことを検出した場合にのみリカバリータスクを作成し、最終的な JSON または SSE を保存します。正常に完了し、クライアントへ完全に配信された LLM リクエストではリカバリータスクは作成されません。
LLM のレスポンスヘッダーには
X-Aihubmix-Request-Id が含まれます。コンソールで該当リクエストを特定できるよう、クライアントはこの値をできるだけ早く保存してください。公開タスク API は現在、リクエスト ID による絞り込みに対応していません。モデルと作成時刻を使って、最近の LLM タスクを照会できます。
output 項目には、type=response、content_type、content_url、truncated が含まれます。GET /ai/v1/tasks/{id}/content は、保存された元の JSON または SSE を返します。
エラーレスポンスとエラーコード
本節は/ai/v1/images/*、/ai/v1/videos/*、および /ai/v1/tasks/* のうち
object=image または object=video のメディアタスクに適用されます。クライアントは、
HTTP 非 2xx レスポンスと、HTTP 200 で返される status=failed のタスク終端状態の両方を処理する必要があります。
HTTP 5xx エラーのフィードバックを送信
リクエストが HTTP
5xx を返した場合にのみ、error.tid を添えてフィードバックを送信してください。HTTP 非 2xx エラー
invalid_request と schema_violation の行に記載されているのはフォールバック message です。
サービスが具体的なフィールドまたはパラメータ制約を特定できる場合は、動的な message を返します。
クライアントは message の固定一致に依存せず、code でエラー種別を判定してください。
media_form_unsupported の message は、確認できた原因に応じて生成されます。
一般的なテンプレートは次のとおりです。
たとえば、モデルが PNG、JPEG、WebP、HEIC、HEIF を許可している場合、GIF 画像には次の message が返されます。
HTTP 200 + Task status=failed
照会リクエストが成功しても、生成が成功したとは限りません。タスクが failed の場合、
タスクオブジェクトの error.code と error.message から失敗理由を読み取ります。
完全な動画の例
よくある質問
メディアタスクは/ai/v1/tasks/{id} とメディア詳細 API のどちらで照会すればよいですか?
生成ステータスをポーリングする場合は、メディア詳細 API を使用してください。画像は /ai/v1/images/{id}、動画は /ai/v1/videos/{id} で照会します。/ai/v1/tasks/{id} は読み取り専用のスナップショットを返します。
動画リクエストで seconds を使用するとパラメータエラーになるのはなぜですか?
/ai/v1/videos の標準プロトコルでは、秒単位の整数 duration を使用します。具体的に指定できる値は、対象モデルが対応するパラメータによって異なります。
一部の動画モデルで resolution がパラメータエラーになるのはなぜですか?
標準動画プロトコルには resolution と size が含まれていますが、モデルごとに使用できるフィールドが限定されます。たとえば、wan2.6-t2v は size を使用し、resolution は受け付けません。
作成レスポンスを失った場合、メディアタスクをどのように取得できますか?
画像の場合は GET /ai/v1/images、動画の場合は GET /ai/v1/videos をリクエストしてください。一覧 API は after、limit、order のページングパラメータに対応しています。
2 種類の詳細 API で output フィールドが異なるのはなぜですか?
メディア詳細 API は、直接ダウンロードするための簡略化されたフィールドを提供します。統一タスク API は result_id と content_type を追加で提供し、LLM アーカイブ用に truncated も提供します。
Webhook が届かない場合はどうすればよいですか?
コールバック URL がインターネットからアクセス可能で、速やかに 2xx を返すことを確認してから、メディア詳細 API で最終ステータスを照会してください。
更新日:2026-08-12