Skip to content

Videos

Create video
client.videos.create(VideoCreateParams { prompt, input_reference, model, 2 more } body, RequestOptionsoptions?): Video { id, completed_at, created_at, 10 more }
POST/videos
List videos
client.videos.list(VideoListParams { after, limit, order } query?, RequestOptionsoptions?): ConversationCursorPage<Video { id, completed_at, created_at, 10 more } >
GET/videos
Retrieve video
client.videos.retrieve(stringvideoID, RequestOptionsoptions?): Video { id, completed_at, created_at, 10 more }
GET/videos/{video_id}
Delete video
client.videos.delete(stringvideoID, RequestOptionsoptions?): VideoDeleteResponse { id, deleted, object }
DELETE/videos/{video_id}
Remix video
client.videos.remix(stringvideoID, VideoRemixParams { prompt } body, RequestOptionsoptions?): Video { id, completed_at, created_at, 10 more }
POST/videos/{video_id}/remix
Retrieve video content
client.videos.downloadContent(stringvideoID, VideoDownloadContentParams { variant } query?, RequestOptionsoptions?): Response
GET/videos/{video_id}/content
ModelsExpand Collapse
Video { 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 | null

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

created_at: number

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

error: VideoCreateError { code, message } | null

Error payload that explains why generation failed, if applicable.

expires_at: number | null

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

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 | null

The prompt that was used to generate the video.

remixed_from_video_id: string | null

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

seconds: VideoSeconds

Duration of the generated clip in seconds.

size: VideoSize

The resolution of the generated video.

status: "queued" | "in_progress" | "completed" | "failed"

Current lifecycle status of the video job.

Accepts one of the following:
"queued"
"in_progress"
"completed"
"failed"
VideoCreateError { 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.

VideoModel = (string & {}) | "sora-2" | "sora-2-pro" | "sora-2-2025-10-06" | 2 more
Accepts one of the following:
(string & {})
"sora-2" | "sora-2-pro" | "sora-2-2025-10-06" | 2 more
"sora-2"
"sora-2-pro"
"sora-2-2025-10-06"
"sora-2-pro-2025-10-06"
"sora-2-2025-12-08"
VideoSeconds = "4" | "8" | "12"
Accepts one of the following:
"4"
"8"
"12"
VideoSize = "720x1280" | "1280x720" | "1024x1792" | "1792x1024"
Accepts one of the following:
"720x1280"
"1280x720"
"1024x1792"
"1792x1024"