Skip to content

Create video

POST
/videos
curl --request POST \
--url https://example.com/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "model": "sora-2", "prompt": "an astronaut cat riding a motorcycle at night", "seconds": "4", "size": "720x1280" }'

OpenAI-compatible async video job. Returns a Video object (status=queued). Poll GET /videos/{id} until status=completed, then GET /videos/{id}/content for the mp4. Models: sora-2 / sora-2-pro, or Mixen ids (kling-v3-pro, veo-3.1, seedance-2.0, happyhorse-1.1).

Media typeapplication/json
VideoCreateRequest
object
model
Model

Sora-2 / sora-2-pro, or a Mixen model (kling-v3-pro, veo-3.1, seedance-2.0, happyhorse-1.1).

string
default: sora-2
prompt
required
Prompt
string
>= 1 characters <= 32000 characters
seconds
Any of:
string
size
Any of:
string
input_reference
Any of:
object
key
additional properties
any
input_references
Any of:
Array<string>
Example
{
"model": "sora-2",
"prompt": "an astronaut cat riding a motorcycle at night",
"seconds": "4",
"size": "720x1280"
}

Successful Response

Media typeapplication/json
Examplegenerated
example

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}