Skip to main content
AIHubMix は 3 種類のタスク API を提供しています。画像には /ai/v1/images、動画には /ai/v1/videos、統一タスクレコードには /ai/v1/tasks を使用します。
  • 画像生成はデフォルトで同期実行され、async: true を渡すと非同期で実行されます。
  • 動画生成は常に非同期です。
  • 画像と動画の詳細 API では、メディアタスクの最新ステータスを取得できます。
  • /ai/v1/tasks は、画像、動画、LLM タスクを統一的に参照できる読み取り専用ビューです。
Doubao Seedance の動画で実在人物の素材を参照する場合は、Doubao 実在人物の素材利用ガイドに従って本人による確認と素材の準備を完了してから、動画タスクを作成してください。

動画チュートリアル:非同期タスク

非同期タスクの仕組み全体を解説し、非同期画像生成を例に一連の呼び出し手順を紹介します。

コンソールで非同期タスクを有効にする

/ai/v1 メディアタスク API を使用する前に、現在のアカウントで非同期タスク機能を有効にしてください。
非同期タスク機能が有効になっていない場合、画像および動画タスクの作成リクエストは 403 async_not_enabled を返します。

クイックスタート

次の例では、wan2.6-t2v を使用して動画を作成します。このモデルは duration と size を受け付けます。使用できるフィールドはモデルによって異なります。

3 種類の API をどのように使い分けるか

Base URL は https://aihubmix.com、認証方式は Bearer Token です。
モデル一覧とモデル Schema の API は公開ディスカバリー API のため、Bearer Token は不要です。その他の API では認証が必要です。
/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 が公開され、確認済みのモデルだけが返されます。
どちらも同じ API を使用します。現在、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
対応範囲は変更される場合があるため、このページの一覧を基準にしてください。中断リカバリーを使用するには、現在のアカウントで非同期タスク機能が有効になっている必要もあります。いずれかの条件を満たさない場合でも、元の LLM リクエストは通常どおり実行されますが、クライアント切断後のリカバリータスクは保存されません。

画像タスクを作成する方法

同期画像

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 秒はクライアント側の推奨ポーリング間隔であり、サーバープロトコルの制限ではありません。

メディアタスクを照会する方法

メディア詳細の照会

メディア詳細 API は更新後のタスクステータスを返す場合があるため、メディアのポーリングには該当する画像または動画の詳細 API を使用してください。

メディア一覧の照会

作成レスポンスを失った場合は、該当するメディア一覧からタスク 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 デコードできます。

動画のダウンロード

結果には有効期限があり、ダウンロード回数が制限される場合があります。期限切れの場合は 410 artifact_expired、ダウンロード回数の上限を超えた場合は 429 too_many_downloads が返されます。

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 を返してください。
タスク単位の Webhook 自体には、独立した署名キーが含まれません。署名検証が必要な場合は、アカウント単位の Webhook サブスクリプションを設定し、結果の確認手段としてタスク詳細の照会も維持してください。

LLM 中断リカバリーの仕組み

LLM 中断リカバリーは、クライアント接続が切断された後の最終レスポンスを取得するための機能です。リクエスト方式、ストリーミング動作、レスポンス形式は変わらず、リクエスト開始時にタスク ID が事前に返されることもありません。 次の条件をすべて満たす必要があります。 プラットフォームは、レスポンスが完全に配信されず、かつクライアントがすでに切断されたことを検出した場合にのみリカバリータスクを作成し、最終的な JSON または SSE を保存します。正常に完了し、クライアントへ完全に配信された LLM リクエストではリカバリータスクは作成されません。 LLM のレスポンスヘッダーには X-Aihubmix-Request-Id が含まれます。コンソールで該当リクエストを特定できるよう、クライアントはこの値をできるだけ早く保存してください。公開タスク API は現在、リクエスト ID による絞り込みに対応していません。モデルと作成時刻を使って、最近の LLM タスクを照会できます。
LLM タスクの統一 output 項目には、type=response、content_type、content_url、truncated が含まれます。GET /ai/v1/tasks/{id}/content は、保存された元の JSON または SSE を返します。
LLM 中断リカバリータスクは現在、タスク単位の Webhook を送信しません。クライアントが中断してもプラットフォームでのリクエスト処理は停止せず、その呼び出しには元の API のルールに従って料金が発生します。

エラーレスポンスとエラーコード

この節は /ai/v1/images/*、/ai/v1/videos/*、画像または動画と識別された /ai/v1/tasks/* に適用されます。LLM タスクは既存のエラー仕様を維持します。メディアの種類が指定されておらず、Task をまだ取得できていない照会には、引き続き共通のエラー仕様が適用されます。
  • 現在のリクエストの失敗:HTTP が 2xx 以外の場合、今回の作成、照会、ダウンロードに失敗しています。HTTP リクエストの失敗をご覧ください。
  • タスク実行の失敗:照会は HTTP 200 を返しますが、タスクが status=failed となり、理由はタスク内の error に記録されます。タスク実行の失敗をご覧ください。
  • 一覧の個別結果の読み取り失敗:一覧は HTTP 200 を返しますが、一部のタスクに output_error が含まれます。一覧の個別結果の読み取り失敗をご覧ください。
以下の message 列は API が返す英語のメッセージ、説明列は意味と対処方法を示します。パラメータ検証エラーには一般的なメッセージを掲載しており、実際のレスポンスではフィールドや制約が具体的に示される場合があります。エラーの種類は code で判定し、message 全文の完全一致に依存しないでください。

HTTP 5xx エラーの報告

リクエストが HTTP 5xx を返した場合は、error.tid を添えて報告してください。

HTTP リクエストの失敗

以下の HTTP ステータスは、現在のリクエスト自体が失敗した場合に適用されます。作成済みタスクの実行失敗は、後述の「タスク実行の失敗」をご覧ください。

リクエストパラメータとメディア入力

サイズ制限
  • メディアサイズ:画像タスクで上限を超えると image_too_large、その他のメディアタスクでは media_too_large が返されます。動画タスクで参照画像をアップロードする場合も media_too_large が使われます。具体的な上限はエラーメッセージまたは error.details.max_bytes を確認してください。
  • リクエスト全体のサイズ:request_too_large は、テキスト、パラメータ、インラインのエンコード済みメディアを含む HTTP 本文が 32 MiB を超えたことを示します。URL のみを送信する場合、リンク自体が本文に含まれます。リンク先のファイルには引き続きモデルのメディア制限が適用されます。
  • 実際のサイズ:error.details.actual_bytes は全体のサイズが確認できた場合にのみ含まれます。URL からの読み取りが上限に達して停止した場合、このフィールドが省略されることがあります。
対応形式 選択したモデルによって異なります。まず error.details.allowed_mime_types またはエラーメッセージの形式一覧を確認してください。一覧がない場合はモデルの Schema を参照してください。 メッセージ内のプレースホルダー
  • {media_kind}:実際のメディアの種類。種類が確認できている場合、invalid_media_data と media_url_unreachable のメッセージでも image または video が使われます。
  • {max_bytes}:バイト単位の上限。画像の上限が不明な場合は The image is too large. Reduce the image size and try again. が返されます。
  • {allowed_formats}:許可される形式の一覧。形式エラーのメッセージに Use one of: {allowed_formats}. が追加される場合があります。

生成リクエストと返された結果

アカウントと権限

サービスの可用性とレート制限

provider_unavailable は、モデルプロバイダーの障害が明確に確認されたことを示します。一般的な 429 や 4xx だけでは、利用枠、コンテンツ審査、パラメータの問題を特定できません。

タスクの照会と結果のダウンロード

タスク実行の失敗

タスク作成後の生成失敗は status=failed とタスク内の error で示されます。照会が成功した場合の HTTP ステータスは 200 のままです。
メディア入力エラーは失敗した Task にも含まれる場合があり、コードの意味は上の入力エラー表と同じです。この場合も照会成功時の HTTP ステータスは 200 です。サイズエラーの message は submit a new task. で終わり、メディアを縮小して新しいタスクを送信するよう案内します。 output_blocked は、明確なブロックが発生し、利用可能な画像が返されなかったことを示します。今回の生成料金は発生しません。output_policy_violation には既存のコンテンツ審査に関する課金ルールが適用されます。過去の料金は請求記録で確認してください。

一覧の個別結果の読み取り失敗

画像・動画タスク一覧の一部の行に output_error が含まれる場合があります。
このフィールドは、今回その行の結果を読み取れなかったことを示します。一覧は HTTP 200 を返し、その行は output=[] になります。元の id、status、error とページネーションは変わらず、正常に読み取れる他のタスクに影響しません。status=completed でも output_error を確認し、結果を読み取れるか判断してください。 output_error.tid を添えてサポートに連絡してください。tid がない場合は今回のレスポンスヘッダーのリクエスト ID を提供できます。このエラーはタスクの状態や料金を変更せず、Webhook も発生させません。 統一 /ai/v1/tasks 一覧の読み取り失敗行は expires_at=null を返す場合がありますが、元の保存期間は引き続き適用されます。画像・動画の専用一覧では取得済みの有効期限が保持されます。 この処理は、個別の行の結果を読み取れず、利用できる代替手段がない場合に限ります。統一 tasks API で一覧全体の照会が失敗すると HTTP エラーが返され、詳細取得で同じ障害が起きた場合は HTTP 500 が返されます。 関連ドキュメント:画像 API · 動画 API · 非同期タスク

完全な動画の例


よくある質問

メディアタスクは /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