Skip to content
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Primary navigation

Videos

Create video
Deprecated
POST/videos
Create a character from an uploaded video.
Deprecated
POST/videos/characters
Delete video
Deprecated
DELETE/videos/{video_id}
Retrieve video content
Deprecated
GET/videos/{video_id}/content
Create an extension of a completed video.
Deprecated
POST/videos/extensions
Fetch a character.
Deprecated
GET/videos/characters/{character_id}
List videos
Deprecated
GET/videos
Remix video
Deprecated
POST/videos/{video_id}/remix
Retrieve video
Deprecated
GET/videos/{video_id}
ModelsExpand Collapse
ImageInputReferenceParam object { file_id, image_url }
file_id: optional string
image_url: optional string

A fully qualified URL or base64-encoded data URL.

maxLength20971520
formaturi
Video object { id, completed_at, created_at, 10 more }

Structured information describing a generated video job.

id: string

Unique identifier for the video job.

completed_at: number or null

Unix timestamp (seconds) for when the job completed, if finished.

formatunixtime
created_at: number

Unix timestamp (seconds) for when the job was created.

formatunixtime
error: VideoCreateError { code, message } or null

Error payload that explains why generation failed, if applicable.

expires_at: number or null

Unix timestamp (seconds) for when the downloadable assets expire, if set.

formatunixtime
model: VideoModel

The video generation model that produced the job.

object: "video"

The object type, which is always video.

progress: number

Approximate completion percentage for the generation task.

prompt: string or null

The prompt that was used to generate the video.

remixed_from_video_id: string or null

Identifier of the source video if this video is a remix.

seconds: string

Duration of the generated clip in seconds. For extensions, this is the stitched total duration.

size: VideoSize

The resolution of the generated video.

status: "queued" or "in_progress" or "completed" or "failed"

Current lifecycle status of the video job.

One of the following:
"queued"
"in_progress"
"completed"
"failed"
VideoCreateCharacterResponse object { id, created_at, name }
id: string or null

Identifier for the character creation cameo.

created_at: number

Unix timestamp (in seconds) when the character was created.

formatunixtime
name: string or null

Display name for the character.

VideoCreateError object { code, message }

An error that occurred while generating the response.

code: string

A machine-readable error code that was returned.

message: string

A human-readable description of the error that was returned.

VideoDeleteResponse object { id, deleted, object }

Confirmation payload returned after deleting a video.

id: string

Identifier of the deleted video.

deleted: boolean

Indicates that the video resource was deleted.

object: "video.deleted"

The object type that signals the deletion response.

VideoGetCharacterResponse object { id, created_at, name }
id: string or null

Identifier for the character creation cameo.

created_at: number

Unix timestamp (in seconds) when the character was created.

formatunixtime
name: string or null

Display name for the character.

VideoModel = string or "sora-2" or "sora-2-pro" or "sora-2-2025-10-06" or 2 more
One of the following:
string
"sora-2" or "sora-2-pro" or "sora-2-2025-10-06" or 2 more
One of the following:
"sora-2"
"sora-2-pro"
"sora-2-2025-10-06"
"sora-2-pro-2025-10-06"
"sora-2-2025-12-08"
VideoSeconds = "4" or "8" or "12"
One of the following:
"4"
"8"
"12"
VideoSize = "720x1280" or "1280x720" or "1024x1792" or "1792x1024"
One of the following:
"720x1280"
"1280x720"
"1024x1792"
"1792x1024"