Skip to main content
POST
/
v1
/
videos
Create Video
curl --request POST \
  --url https://api.mirage.app/v1/videos \
  --header 'Content-Type: multipart/form-data' \
  --header 'x-api-key: <api-key>' \
  --form image_reference='@example-file' \
  --form audio_reference='@example-file' \
  --form model=mirage-video-1-latest
{
  "id": "<string>",
  "status": "PROCESSING",
  "created_at": 123,
  "video_id": "<string>",
  "object": "video",
  "completed_at": 1730822520,
  "progress": 100,
  "error": null,
  "model": "mirage-video-1-latest",
  "source_video_id": "video_abc123def456",
  "caption_template_id": "ctpl_123456789abcdefg"
}

Authorizations

x-api-key
string
header
required

API key for authentication.

Body

multipart/form-data
image_reference
file
required

Image file (JPEG or PNG)

audio_reference
file
required

Audio file (WAV or MP3)

model
string
default:mirage-video-1-latest

Model to use for generation

Allowed value: "mirage-video-1-latest"

Response

200 - application/json

Returns a Video object representing the generation job

Represents a video object.

A video can be created via generation (image+audio) or captioning (adding captions to an existing video).

id
string
required

Video generation job ID

Example:

"video_abc123def456"

status
enum<string>
required

Current state of the video

Available options:
PROCESSING,
COMPLETE,
FAILED,
CANCELLED
Example:

"COMPLETE"

created_at
integer
required

When the video was created (unix timestamp)

Example:

1730822400

video_id
string
required
deprecated

[Deprecated] Use "id" instead.

object
string
default:video
Allowed value: "video"
completed_at
integer | null

When processing completed (unix timestamp)

Example:

1730822520

progress
integer | null

Progress percentage (0-100)

Example:

100

error
MAVideoError · object

Error details if status is FAILED

Example:

null

model
string | null

Model used for generation (only for source='generation')

Allowed value: "mirage-video-1-latest"
Example:

"mirage-video-1-latest"

source_video_id
string | null

The input video that was captioned (only for source='caption')

Example:

"video_abc123def456"

caption_template_id
string | null

Caption style template used (only for source='caption')

Example:

"ctpl_123456789abcdefg"