---
title: "Create Video (v2)"
method: POST
path: "/v2/videos"
tags: ["Videos v2"]
---

# Create Video (v2)

`POST /v2/videos`

Create a video from an appearance reference and either audio or a script.

## Headers

- `Idempotency-Key` string, required — Unique key used to safely retry this request.
- `x-api-key` string, required — API Key for authentication

## Response `202`

Successful Response

- MirageVideoAPIV2Video
  - `id` string, required
  - `object` 'video'
  - `status` 'PROCESSING' | 'COMPLETE' | 'FAILED' | 'CANCELLED', required
  - `model` 'mirage-avatar-x-latest'
  - `aspect_ratio` '9:16' | '16:9', nullable
  - `created_at` integer, required
  - `completed_at` integer, nullable
  - `output` MirageVideoAPIV2Output
    - `url` string, uri, required
    - `content_type` string, required
    - `duration_ms` integer, required
    - `size_bytes` integer, required
  - `error` MirageVideoAPIV2TerminalError
    - `code` 'no_face_detected' | 'media_processing_failed' | 'content_policy_violation' | 'exceeded_quota' | 'rate_limit_exceeded' | 'internal_server_error', required
    - `message` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-15** `31e2df09dcfa` — 1 breaking, 1 info
  - removed the media type `application/json` from the request body
  - added the media type `multipart/form-data` to the request body
- **2026-08-11** `11e1197415cb` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mirage/apis/mirage-video-api/changes/v2/videos/post.md)

---

[API](https://skmtc.dev/mirage/apis/mirage-video-api.md) · [All operations](https://skmtc.dev/mirage/apis/mirage-video-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mirage/mirage-video-api/revisions/36e24e91d2b5/schema)
