Video API
OpenRouter Video Generation 標準と互換性のある、統一された動画生成 API です。1つのスキーマで、テキストから動画、画像から動画、最初/最後のフレーム、参照ガイド付き生成に対応します。タスクを非同期で送信し、完了後にポーリングまたは webhook で受け取ります。
| 機能 | 詳細 |
|---|---|
| Base URL | https://api.ofox.ai |
| プロトコル形式 | OpenRouter 互換(非同期送信 → ポーリング / webhook) |
| 生成モード | 暗黙的に推定:画像なし = テキストから動画 · frame_images = 画像 / 最初-最後フレーム · input_references = 参照ガイド付き |
| 結果の受け取り | レート制限付きの GET ポーリング、または callback_url webhook(HMAC署名付き、リトライあり) |
| 動画ストレージ | アップストリームの元URL(一時的)+ 任意のCDNミラー(永続的な署名付きURL) |
認証
すべてのリクエストで、ofox API key(形式は sk-xxx…)を HTTP header に含めます:
Authorization: Bearer $OFOX_API_KEYcallback_url は HTTPS である必要があります。Webhook の送信先は SSRF 対策として検証され、private、loopback、cloud-metadata address は拒否されます。HTTPS ではない、または内部アドレスの場合、作成時に 400 invalid_callback_url で失敗します。
クイックスタート
1. タスクを送信
curl -X POST https://api.ofox.ai/v1/videos \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/veo-3.1",
"prompt": "A golden retriever running on the beach at sunset",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"generate_audio": true
}'この呼び出しはすぐに 202 を返し、ポーリング URL が含まれます:
{
"id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718",
"status": "pending",
"polling_url": "https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718"
}2. 完了するまでポーリング
curl https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718 \
-H "Authorization: Bearer $OFOX_API_KEY"status が終端状態(completed、failed、cancelled、expired)になるまでリクエストを続けます。ポーリングは1秒に1回以下にしてください。または、タスク作成時に callback_url を渡すと、ポーリングの代わりに webhook を受け取れます。動画ステータスの取得 と Webhooks をご覧ください。
エンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
POST | /v1/videos | 動画タスクを作成 |
GET | /v1/videos/{id} | タスクのステータスと結果を取得 |
DELETE | /v1/videos/{id} | タスクをキャンセル |
秒単位の料金
動画モデルはトークンではなく時間で課金されます。解像度、入力タイプ、音声オプションに一致する pricing.video_pricing.tiers の項目が1秒あたりの米ドル料金を決定します。pricing.output_video_per_second はモデルの最安開始価格にすぎません。概算は tier料金 × 指定秒数 で計算し、完了後はレスポンスの usage.video_seconds と usage.video_cost を最終的な課金秒数と料金として使用してください。動画から動画への生成では、入力動画の秒数が課金対象に含まれる場合があります。