Operation

Edit Sora 2 Video

Submit an OpenAI Sora 2 video edit against an existing native Sora video ID.

Operation: sora2.video.edit
Submit via POST /api/v1/requests
Credits: dynamic
Sora 2

Request fields

sora_video_idpromptmodeldurationaspect_ratioresolutionsource_video_url

Example request

{
  "operation": "sora2.video.edit",
  "input": {
    "sora_video_id": "video_abc123",
    "prompt": "Keep the scene structure but shift the lighting to blue-hour rain.",
    "model": "sora-2-pro",
    "duration": 12,
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }
}
curl -X POST https://www.cannonstudio.app/api/v1/requests \
  -H "Content-Type: application/json" \
  -H "x-api-key: $CANNON_API_KEY" \
  -H "x-idempotency-key: sora2-video-edit-001" \
  -d @- <<'JSON'
{
  "operation": "sora2.video.edit",
  "input": {
    "sora_video_id": "video_abc123",
    "prompt": "Keep the scene structure but shift the lighting to blue-hour rain.",
    "model": "sora-2-pro",
    "duration": 12,
    "aspect_ratio": "16:9",
    "resolution": "1080p"
  }
}
JSON

Notes

  • Requires the native OpenAI `video_...` ID of the source Sora video.
  • Uses the official Sora edits endpoint and returns a new async request task.
  • Use `sora-2-pro` plus `1080p` when the edit should target Sora 2 Pro native 1080 output.

Success output

{
  "task_id": "video_456",
  "asset_type": "video",
  "status": "succeeded",
  "video_url": "https://storage.googleapis.com/.../sora-edit.mp4",
  "provider": "sora2",
  "model": "sora2"
}