メインコンテンツへスキップ

Base URL

https://api.yourouter.ai

認証

すべてのリクエストに次のいずれかを付与します。
  • Authorization: Bearer <YOUR_YOUROUTER_API_KEY>
  • x-api-key: <YOUR_YOUROUTER_API_KEY>
Content-Type: application/json を付与します。 各レスポンスには追跡用の x-request-id ヘッダーが付きます。

仕組み

  1. クライアントが公式 Ark API と同じボディでタスク作成を呼び出します。
  2. ゲートウェイは Ark のタスク ID を即返し、組織・モデル・Ark キー・channel・status などを保存します。
  3. 未完了タスクは 10 秒間隔で Ark をポーリングします。
  4. 課金は成功結果の usage.completion_tokens を読み取ります。
レスポンスの video_url は Ark の署名付き一時 URL です。有効期限は 86,400 秒(24 時間)なので、期限内にダウンロードしてください。

タスク作成

Endpoint: POST /api/v3/contents/generations/tasks リクエストボディは Ark 公式 API と同じです。
curl -X POST https://api.yourouter.ai/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $YOUROUTER_API_KEY" \
  -d '{
    "model": "doubao-seedance-1-0-pro-250528",
    "content": [
      {
        "type": "text",
        "text": "Drone races through obstacles at high speed for an immersive flight experience  --resolution 1080p  --duration 5 --camerafixed false --watermark true"
      },
      {
        "type": "image_url",
        "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_i2v.png" }
      }
    ]
  }'
成功レスポンス(作成段階) は通常、Ark のタスク ID のみです。
{ "id": "cgt-20250906194036-2k4r4" }

タスク照会

Endpoint: GET /api/v3/contents/generations/tasks/{id} ゲートウェイ DB から結果を返します。生成中は status、完了後は Ark の完全結果(idvendor を注入)を返します。
curl -X GET https://api.yourouter.ai/api/v3/contents/generations/tasks/cgt-20250906194036-2k4r4 \
  -H "Authorization: Bearer $YOUROUTER_API_KEY"
実行中の例
{ "id": "cgt-20250906194036-2k4r4", "status": "RUNNING" }
完了の例
{
  "id": "your-00000000000000000000000000000000",
  "model": "doubao-seedance-1-0-pro-250528",
  "status": "succeeded",
  "content": {
    "video_url": "https://ark-content-generation-cn-beijing.tos-cn-beijing.volces.com/doubao-seedance-1-0-pro/....mp4?...&X-Tos-Expires=86400&..."
  },
  "usage": {
    "completion_tokens": 246840,
    "total_tokens": 246840
  },
  "created_at": 1757158837,
  "updated_at": 1757158914,
  "seed": 95409,
  "resolution": "1080p",
  "duration": 5,
  "ratio": "16:9",
  "framespersecond": 24,
  "vendor": "Ark"
}

課金

  • statussucceeded のときのみ usage を記録します。
  • 成功結果の usage.completion_tokens はテキスト completion 相当として計上され、Ark の値を反映します。

ステータス

  • RUNNING:ゲートウェイが Ark をポーリング中
  • SUCCEEDED:最終結果を取得済み。以降は完全結果を返します
  • NOT_FOUND:ゲートウェイにタスク ID が存在しません(無効またはクリーンアップ済み)

エラーと HTTP

  • 401/403:キー不正、組織無効、残高不足など
  • 200 + body:照会エンドポイントは常に 200。状態は JSON で表現
  • 5xx:内部エラーまたは Ark 障害。再試行を検討

運用のコツ

  • 5〜10 秒間隔でポーリング(ゲートウェイは 10 秒)
  • レスポンスの x-request-id を残す
  • video_url が期限切れなら新規タスクで再取得(現状リフレッシュ不可)
  • 同一内容の重複作成は避ける(冪等キー無し)