Sora 2 API

Sora 2 API で構築する

OpenAI Sora 2 / Sora Pro を使ったテキストから動画体験を提供。APIキーで認証し、タスクステータスをポーリング、数分で最終動画を届けます。

Sora 2 API が選ばれる理由

予測しやすいポーリング、20並行リクエスト、自動ストレージアップロードで堅牢な生成フローを実現。

Sora 2 + Sora Pro

品質とコストに合わせて sora-2 または sora-2-pro を選択。

予測可能なポーリング

タスクを作成したら check-result をポーリングし、SSEなしでステータスを同期。

20並行リクエスト

最大20の動画生成タスクを同時処理。より高い制限が必要な場合はお問い合わせください。

認証とベースURL

すべてのエンドポイントは https://freesoragenerator.com/api 配下。コンソールで作成したAPIキーを Authorization ヘッダーで送信します。

  • 全リクエストに Authorization: Bearer YOUR_API_KEY を付与。
  • ペイロード送信時は Content-Type: application/json を使用。
  • 生成リクエスト1回につき sora-2は20クレジット、sora-2-proは30クレジット。失敗ジョブは自動返金されます。

主要エンドポイント

まず生成タスクを作成し、その後結果をポーリングまたは受信します。

Sora 2 動画を作成

テキストから動画、または任意の画像から動画プロンプトで Sora 2 / Sora Pro の生成ジョブを開始。

メソッド: POSTパス: /api/v1/video/sora-video

ペイロードパラメータ

  • 必須。「sora-2」または「sora-2-pro」で対象モデルを指定。
  • 必須。Sora に生成してほしいシーンの自然言語説明。
  • 任意(推奨)。画像から動画モード用のBase64データURL。プレフィックス "data:image/*;base64," 付き。
  • 任意。レガシー参照画像URL。まだサポートされていますが、imageData より優先度が低いです。
  • 任意。サポート値: "9:16"(デフォルト)または "16:9"。
  • 任意。動画を公開表示するかどうか。デフォルトは true。
  • 任意(VIP専用)。続編/リミックス機能用のターゲット動画 pid。
  • 任意(VIP専用)。キャラクター制御配列。各項目には url と timestamps が含まれます。
  • 任意。タスク成功時に最終結果ペイロードを受け取るHTTPSエンドポイント。

補足

  • レスポンスは taskId と共に即時返却。status が succeeded か failed になるまで check-result をポーリング。
  • ポーリングなしで最終ペイロードを受け取る場合は webHook を指定。

リクエスト例

curl -X POST https://freesoragenerator.com/api/v1/video/sora-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro",
    "prompt": "A cinematic shot of a futuristic city at sunset, captured in 4K.",
    "imageData": "data:image/png;base64,iVBORw0KGgoAAA...",
    "aspectRatio": "9:16",
    "isPublic": true
  }'

レスポンス例

{
  "code": 0,
  "message": "ok",
  "data": {
    "id": "task_1234567890"
  }
}

生成結果を確認

生成タスクの最新ステータスをポーリングし、進捗と結果を取得。

メソッド: POSTパス: /api/video-generations/check-result

ペイロードパラメータ

  • 必須。生成タスク作成時に返される識別子。

補足

  • タスクがあなたのアカウントに属するか確認してからデータを返します。
  • 失敗したジョブは自動でクレジット返金し、レスポンスに返金メタデータを含みます。

リクエスト例

curl -X POST https://freesoragenerator.com/api/video-generations/check-result \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskId": "task_1234567890"
  }'

レスポンス例

{
  "code": 0,
  "message": "Success",
  "data": {
    "status": "running",
    "progress": 35,
    "result_url": "https://your-domain.com/storage/videos/xxx.mp4",
    "result_urls": [
      "https://your-domain.com/storage/videos/xxx.mp4"
    ],
    "failure_reason": "",
    "error_message": null,
    "credits_refunded": false,
    "refund_trans_no": null,
    "result_pid": "s_xxx",
    "result_pids": [
      "s_xxx"
    ],
    "metadata": {
      "remixTargetId": "s_prev",
      "characters": [
        {
          "url": "https://.../hero.mp4",
          "timestamps": "0,3"
        }
      ]
    }
  }
}

ユーザークレジットとVIPステータスを取得

現在のユーザーの利用可能なクレジットとVIPメンバーシップステータスを照会。

メソッド: POSTパス: /api/get-user-credits

補足

  • ユーザー情報にアクセスするには、有効なログインセッションまたはAPIトークンが必要です。
  • left_credits、is_recharged、is_pro、is_vip ステータスフィールドを返します。

リクエスト例

curl -X POST https://freesoragenerator.com/api/get-user-credits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

レスポンス例

{
  "code": 0,
  "message": "ok",
  "data": {
    "left_credits": 120,
    "is_recharged": true,
    "is_pro": true,
    "is_vip": false
  }
}

1. タスクを作成

プロンプトと任意のWebhook URLを添えて Sora2 API を呼び出し、返ってきた taskId を保存。

2. 進捗を追跡

ストリーミングイベントを購読するか、status が succeeded / failed になるまで check-result を呼び出す。

3. 動画を配信

result_url / result_urls のストレージURLを使って動画を配信またはダウンロード。

よくある質問

どのように認証しますか?

コンソールでAPIキーを作成し、Authorization: Bearer YOUR_API_KEY として送信します。キーはいつでもローテーション可能です。

結果はどうポーリングすればいいですか?

create 呼び出し後に taskId を保存し、/api/video-generations/check-result を3〜5秒間隔で呼び、status が succeeded または failed になったら result_url / result_urls を利用します。

失敗時のクレジットはどうなりますか?

タスクが失敗するとクレジットを自動返金し、check-result のペイロードに refund_trans_no と credits_refunded=true を返して記録できます。

役立つリソース

Sora2 API ですぐに開始

APIキーを作成し、数分でシネマティックなAI動画を生成しましょう。