Operation
Generate Sora 2 Character Video
Generate a Sora 2 video with one or two reusable OpenAI Sora character IDs.
Operation: sora2.video.generate_with_characters
Submit via POST /api/v1/requests
Credits: dynamic
Sora 2
Request fields
promptsora_cameossora_characterscharactersdurationaspect_ratioqualityresolution
Example request
{
"operation": "sora2.video.generate_with_characters",
"input": {
"prompt": "Mara walks through a rain-slick station concourse, looking over her shoulder.",
"sora_cameos": [
"char_abc123"
],
"duration": 20,
"aspect_ratio": "16:9",
"quality": "cinematic",
"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-generate-with-characters-001" \
-d @- <<'JSON'
{
"operation": "sora2.video.generate_with_characters",
"input": {
"prompt": "Mara walks through a rain-slick station concourse, looking over her shoulder.",
"sora_cameos": [
"char_abc123"
],
"duration": 20,
"aspect_ratio": "16:9",
"quality": "cinematic",
"resolution": "1080p"
}
}
JSONNotes
- Uses OpenAI Sora character IDs created through `sora2.character.create` or the Cannon Studio Sora Cameos workspace.
- Sora supports at most two characters in one video request.
- Sora 2 Pro accepts 1080p native portrait or landscape output sizes.
Success output
{
"task_id": "video_123",
"asset_type": "video",
"status": "succeeded",
"video_url": "https://storage.googleapis.com/.../sora-character-video.mp4",
"provider": "sora2",
"model": "sora2",
"duration": 20
}