Sora 2 Pro API

对接 Sora 2 Pro API

基于 Sora 2 Pro 模型构建文生视频、图生视频与分镜任务,使用轮询获取状态并精确控制积分消耗。

Sora 2 Pro API 能力一览

面向生产环境的模型选择、分镜支持与统一响应。

5 种模型规格

覆盖 sora-2 文生/图生,以及 sora-2-pro 文生/图生/分镜。

分镜支持

通过 shots[] 组织多镜头内容与镜头时长。

统一响应结构

所有接口返回 code/message/data,错误也可能是 HTTP 200。

认证与 Base URL

Base URL:https://freesoragenerator.com。可使用 API Key 或登录 Cookie 进行认证。

  • Authorization: Bearer [TOKEN](API Key 或 JWT),或携带登录会话 Cookie。
  • POST 请求使用 Content-Type: application/json。
  • 多数错误仍返回 HTTP 200,请务必检查 code 字段。

核心接口

通过 /sora-pro 创建任务,再轮询 check-result 获取状态。

创建生成任务

校验参数、扣减积分、创建任务并返回 taskId。

方法: POST路径: /api/v1/video/sora-pro

请求参数

  • 必填。sora-2-text-to-video、sora-2-image-to-video、sora-2-pro-text-to-video、sora-2-pro-image-to-video、sora-2-pro-storyboard 之一。
  • 条件必填。除 sora-2-pro-storyboard 外必须提供。
  • 条件必填。Base64 Data URL,如 data:image/png;base64,...。无 imageUrl 时图生必填。
  • 条件必填。公开图片 URL,仅在未提供 imageData 时使用。
  • 可选。portrait 或 landscape,默认 landscape。
  • 可选。10/15/25(仅分镜)。不同模型默认值不同。
  • 可选。standard 或 high,仅 Pro 文生/图生有效。
  • 可选。非分镜模型可去水印,默认 true。
  • 条件必填。sora-2-pro-storyboard 需要,数组元素为 '{ Scene, duration }'。

说明

  • 同时提供时 imageData 优先于 imageUrl。
  • 分镜模式 prompt 可选,不会传给上游;请用 shots 描述内容。
  • nFrames 会归一化到各模型允许值。
  • 非分镜模型 removeWatermark 默认 true。
  • shots 需包含 Scene(大写 S)与 duration > 0。

请求示例

文生视频
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-text-to-video",
    "prompt": "A cinematic shot of a futuristic city at sunset.",
    "aspectRatio": "landscape",
    "nFrames": "10",
    "size": "high",
    "removeWatermark": true
  }'
图生视频
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-image-to-video",
    "prompt": "Turn this image into a dynamic 10s clip.",
    "imageUrl": "https://example.com/reference.png",
    "aspectRatio": "portrait",
    "nFrames": "10"
  }'
分镜视频
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-storyboard",
    "shots": [
      { "Scene": "Establishing shot of a city skyline at dusk", "duration": 5 },
      { "Scene": "Close-up of a runner splashing through puddles", "duration": 5 }
    ],
    "aspectRatio": "landscape",
    "nFrames": "10"
  }'

响应示例

{
  "code": 0,
  "message": "ok",
  "data": {
    "taskId": "281e5b0*********************f39b9"
  }
}

查询任务状态

根据 taskId 获取任务状态与结果链接。

方法: POST路径: /api/video-generations/check-result

请求参数

  • 必填。创建任务返回的 taskId。

说明

  • 状态值:pending | running | succeeded | failed | cancelled。
  • 任务完成后返回 result_url / result_urls。

请求示例

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

响应示例

{
  "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
  }
}

查询积分

提交任务前查看账户剩余积分。

方法: POST路径: /api/get-user-credits

说明

  • 可选接口,适合提交前预检。
  • 返回 left_credits 与 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_vip": false
  }
}

常见错误码

错误信息通过响应体中的 code 字段返回。

  • 401:未授权
  • 402:积分不足
  • -1:Invalid model parameter
  • -1:Prompt is required
  • -1:Image is required for image-to-video
  • -1:Shots is required for storyboard
  • -1:Failed to upload image
  • -1:Failed to create video generation record

积分参考

积分随模型、size 与 nFrames 变化,请以实际扣减为准。

模型参数积分
sora-2-text-to-video1020
sora-2-text-to-video1530
sora-2-image-to-video1020
sora-2-image-to-video1530
sora-2-pro-text-to-videostandard + 10375
sora-2-pro-text-to-videostandard + 15675
sora-2-pro-text-to-videohigh + 10825
sora-2-pro-text-to-videohigh + 151,575
sora-2-pro-image-to-videostandard + 10375
sora-2-pro-image-to-videostandard + 15675
sora-2-pro-image-to-videohigh + 10825
sora-2-pro-image-to-videohigh + 151,575
sora-2-pro-storyboard10375
sora-2-pro-storyboard15675
sora-2-pro-storyboard25675

1. 创建任务

提交 /api/v1/video/sora-pro 请求并记录 taskId。

2. 轮询状态

调用 /api/video-generations/check-result 直至成功或失败。

3. 查询积分

大批量提交前可先调用 /api/get-user-credits。

常见问题

可以使用 API Key 或 Cookie 吗?

可以。使用 Authorization: Bearer [TOKEN](API Key 或 JWT),或携带登录会话 Cookie。

分镜 shots 如何填写?

shots 为 '{ Scene, duration }' 数组,Scene 需大写 S,duration 为秒数。

为什么积分不一致?

所有模型都会随 nFrames 变化,Pro 还会受 size 影响。

相关资源

立即启用 Sora 2 Pro API

生成 API Key,快速启动你的 Sora 2 Pro 工作流。