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