Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft Edge More info about Internet Explorer and Microsoft Edge
microsoft-foundry.rest.security.o-auth2-auth

Videos

Create a video

POST /openai/v1/videos

Creates a video from the supplied request.

Request Body

The multipart request body.

Content-Type: multipart/form-data
model OpenAI.CreateVideoMultipartBody

The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults to sora-2.

prompt string required

Text prompt that describes the video to generate.

input_reference any | OpenAI.ImageRefParam
One of the following:
any
Any of the following:
image_url string required
file_id string required
seconds OpenAI.CreateVideoMultipartBody

Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.

size OpenAI.CreateVideoMultipartBody

Output resolution formatted as width x height (allowed values: 720x1280, 1280x720, 1024x1792, 1792x1024). Defaults to 720x1280.

Responses

The request has succeeded.

Body

Content-Type: application/json
id string required

Unique identifier for the video job.

object enum required

The object type, which is always video.

video
model string | enum required
Any of the following:
string
enum
sora-2sora-2-prosora-2-2025-10-06sora-2-pro-2025-10-06sora-2-2025-12-08
status enum required
queuedin_progresscompletedfailed
progress integer required
created_at integer required

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

completed_at integer | null required

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

expires_at integer | null required

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

prompt string | null required
size enum required
720x12801280x7201024x17921792x1024
seconds string required

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

remixed_from_video_id string | null required
error OpenAI.Error-2 | null required

An error that occurred while generating the response.

code string required

A machine-readable error code that was returned.

type string | null
param string | null
message string required

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

headers object

The Retry-After and Retry-After-Ms headers returned with the original error, if any.

[key: string] string
misalignment OpenAI.MisalignmentErrorDetailsResource
review_target string | null
error_type string | enum
Any of the following:
string
enum
potentially_unintended_data_transferpotentially_unintended_data_accesspotentially_unintended_destructive_activityother
detailed_explanation string

The public explanation for this block.

steer OpenAI._MisalignmentSteer
message string required

The public continuation instruction.

Client error

Body

Content-Type: application/json
error OpenAI.Error required
code string | null required
message string required
param string | null
type string
misalignment OpenAI.MisalignmentErrorDetailsResource
review_target string | null
error_type string | enum
Any of the following:
string
enum
potentially_unintended_data_transferpotentially_unintended_data_accesspotentially_unintended_destructive_activityother
detailed_explanation string

The public explanation for this block.

steer OpenAI._MisalignmentSteer
message string required

The public continuation instruction.

details OpenAI.Error[]
additionalInfo object
debugInfo object

Server error

Body

Content-Type: application/json
error OpenAI.Error required
code string | null required
message string required
param string | null
type string
misalignment OpenAI.MisalignmentErrorDetailsResource
review_target string | null
error_type string | enum
Any of the following:
string
enum
potentially_unintended_data_transferpotentially_unintended_data_accesspotentially_unintended_destructive_activityother
detailed_explanation string

The public explanation for this block.

steer OpenAI._MisalignmentSteer
message string required

The public continuation instruction.

details OpenAI.Error[]
additionalInfo object
debugInfo object

Request

curl https://api.openai.com/v1/videos \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "model=sora-2" \
  -F "prompt=A calico cat playing a piano on stage"
import OpenAI from 'openai';

const openai = new OpenAI();

const video = await openai.videos.create({ prompt: 'A calico cat playing a piano on stage' });

console.log(video.id);
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("OPENAI_API_KEY"),  # This is the default and can be omitted
)
video = client.videos.create(
    prompt="x",
)
print(video.id)
package main

import (
    "context"
    "fmt"

    "github.com/openai/openai-go"
    "github.com/openai/openai-go/option"
)

func main() {
    client := openai.NewClient(
        option.WithAPIKey("My API Key"),
    )
    video, err := client.Videos.New(context.TODO(), openai.VideoNewParams{
        Prompt: "x",
    })
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v
", video.ID)
}
require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

video = openai.videos.create(prompt: "x")

puts(video)
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.videos.Video;
import com.openai.models.videos.VideoCreateParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        VideoCreateParams params = VideoCreateParams.builder()
            .prompt("x")
            .build();
        Video video = client.videos().create(params);
    }
}
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});

const video = await client.videos.create({ prompt: 'x' });

console.log(video.id);

Response

{
  "id": "video_123",
  "object": "video",
  "model": "sora-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1712697600,
  "size": "1024x1792",
  "seconds": "8",
  "quality": "standard"
}
en-us
Your Privacy Choices
  • AI Disclaimer
  • Previous Versions
  • Blog
  • Contribute
  • Privacy
  • Consumer Health Privacy
  • Terms of Use
  • Trademarks
  • © Microsoft 2026