---
title: "Create a video edit"
method: POST
path: "/videos/edits"
tags: ["Videos"]
deprecated: true
---

# Create a video edit

`POST /videos/edits`

## Request

- Base URL: `https://api.openai.com/v1`
- URL: `https://api.openai.com/v1/videos/edits`
- Auth: HTTP bearer

> **Deprecated.**

Create a new video generation job by editing a source video or existing generated video.

## Request body

- CreateVideoEditJsonBody: JSON parameters for editing an existing generated video.
  - `video` VideoReferenceInputParam, required: Reference to the completed video.
    - `id` string, required: The identifier of the completed video.
  - `prompt` string, required: Text prompt that describes how to edit the source video.

## Response `200`

Success

- VideoResource: Structured information describing a generated video job.
  - `id` string, required: Unique identifier for the video job.
  - `object` 'video', required: The object type, which is always `video`.
  - `model` union, required
    - string
    - 'sora-2' | 'sora-2-pro' | 'sora-2-2025-10-06' | 'sora-2-pro-2025-10-06' | 'sora-2-2025-12-08'
  - `status` 'queued' | 'in_progress' | 'completed' | 'failed', required
  - `progress` integer, required: Approximate completion percentage for the generation task.
  - `created_at` integer, required: Unix timestamp (seconds) for when the job was created.
  - `completed_at` integer, nullable, required: Unix timestamp (seconds) for when the job completed, if finished.
  - `expires_at` integer, nullable, required: Unix timestamp (seconds) for when the downloadable assets expire, if set.
  - `prompt` string, nullable, required: The prompt that was used to generate the video.
  - `size` '720x1280' | '1280x720' | '1024x1792' | '1792x1024', required
  - `seconds` string, required: Duration of the generated clip in seconds. For extensions, this is the stitched total duration.
  - `remixed_from_video_id` string, nullable, required: Identifier of the source video if this video is a remix.
  - `error` Error2, required (unresolved $ref)

## Other responses

- `400`: The edit request or source video is invalid, or the organization does not support video generation.
- `404`: The source video or a referenced character was not found or is not accessible, the source video is not ready, or the Videos API is unavailable.
- `429`: The request was rejected because a rate limit was exceeded. A slow_down error means traffic increased too quickly; reduce your request rate, then increase it gradually.
- `500`: The source video media is unavailable or the edit task could not be created.
- `503`: The service is temporarily unavailable. A server_is_overloaded error means the requested model is temporarily overloaded; retry after a brief delay.

## Changes

- **2026-10-15** `dba4f2c2307f`: 2 info
  - added the optional property `error/anyOf[subschema #1: Error]/param` to the response with the `200` status
  - added the optional property `error/anyOf[subschema #1: Error]/type` to the response with the `200` status
- **2026-10-06** `487892d3954e`: 6 info
  - added the optional property `error/anyOf[subschema #1: Error]/misalignment/review_target` to the response with the `200` status
  - added the optional property `error/misalignment/review_target` to the response with the `400` status
  - added the optional property `error/misalignment/review_target` to the response with the `404` status
  - added the optional property `error/misalignment/review_target` to the response with the `429` status
  - …2 more
- **2026-10-05** `7f654af7f94f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/omnistack-sh/apis/openai-api/changes/videos/edits/post.md)

---

[API](https://skmtc.dev/omnistack-sh/apis/openai-api.md) - [All operations](https://skmtc.dev/omnistack-sh/apis/openai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnistack-sh/apis/openai-api/revisions/0a26f104d35f?raw)
