---
title: "Upload Asset"
method: POST
path: "/asset/upload"
tags: ["asset"]
---

# Upload Asset

`POST /asset/upload`

## Request

- Base URL: `https://api.nicheangle.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nicheangle.com/asset/upload`
- Auth: none declared

Bring-your-own asset upload — the FAST path for an agent that built a
graphic in its own sandbox. The agent curls the raw bytes here over HTTP
(multipart) instead of re-typing ~63K base64 chars through the model; the
response returns a short-lived, user-bound `upload_ref` to pass to
niche_attach_image. Stores to the owner-only R2 bucket; the ref maps to it in
Redis. Validates type/size/decodability up front with named errors.

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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