---
title: "Upload a binary asset (multipart/form-data)"
method: POST
path: "/api/v1/uploads"
tags: ["Uploads"]
---

# Upload a binary asset (multipart/form-data)

`POST /api/v1/uploads`

## Request

- Base URL: `https://qrlia.dev.castlesoft.eu`
- URL: `https://qrlia.dev.castlesoft.eu/api/v1/uploads`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `qrc_session`

Stores the file in MinIO under `<tenant-slug>/[c/<company-slug>/]<uuid>.<ext>` and returns a same-origin URL via the /uploads/[...] proxy.

## Response `201`

Uploaded

- object
  - `url` string, required
  - `key` string, required
  - `bytes` integer, required
  - `type` string, required
  - `class` string, required

## Other responses

- `400`: Validation failed
- `401`: Authentication required
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `500`: Internal

---

[API](https://skmtc.dev/qrlia/apis/qrlia-api.md) · [All operations](https://skmtc.dev/qrlia/apis/qrlia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qrlia/apis/qrlia-api/revisions/01c5dd6002ab?raw)
