---
title: "Upload Asset"
method: POST
path: "/v1/assets"
tags: ["Assets"]
---

# Upload Asset

`POST /v1/assets`

Stores a file as a long-term owned Asset. The returned Asset is stored, not byte-validated; video generation performs authoritative media validation later. Assets have no scheduled expiry, but remain subject to account and content deletion.

## Headers

- `x-api-key` string, required — API Key for authentication

## Response `200`

Successful Response

- PublicAsset
  - `id` string, required
  - `object` 'asset'
  - `media_type` 'image' | 'audio' | 'video', required
  - `content_type` string, required
  - `size_bytes` integer, required
  - `created_at` integer, required

## Other responses

- `422` — Validation Error

---

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