---
title: "Upload an asset"
method: POST
path: "/assets"
tags: ["Assets"]
---

# Upload an asset

`POST /assets`

Upload a new asset (image, video, audio, or 3D model). Accepts multipart/form-data with a file and optional description. Maximum file size: 75MB.

## Response `200`

Asset uploaded successfully

- object
  - `id` string, uuid, required
  - `image_url` string, uri, required
  - `uploaded_at` string, date-time, required
  - `width` number, nullable, required
  - `height` number, nullable, required
  - `size_bytes` number, nullable, required
  - `mime_type` string, nullable, required
  - `description` string

## Other responses

- `400` — Invalid file type or size
- `401` — Unauthorized

## Changes

- **2026-09-05** `27a8a554d4fd` — 4 breaking, 5 info
  - the response property `height` became nullable for the status `200`
  - the response property `mime_type` became nullable for the status `200`
  - the response property `size_bytes` became nullable for the status `200`
  - the response property `width` became nullable for the status `200`
  - …5 more

[Change history](https://skmtc.dev/krea/apis/krea-api/changes/assets/post.md)

---

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