---
title: "Upload a chat attachment"
method: POST
path: "/api/v1/assets"
tags: ["assets", "assets"]
---

# Upload a chat attachment

`POST /api/v1/assets`

## Request

- Base URL: `https://api.gnosari.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gnosari.com/api/v1/assets`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-AUTH-TOKEN`

Validate, store, and register a chat attachment; return its stable reference.

## Headers

- `X-Access-Password` string, nullable

## Response `201`

Successful Response

- AssetUploadResponse: Response for a successful ``POST /assets`` upload. Carries the stable attachment reference the chat UI keeps and later sends on the WS payload as ``attachments:[asset_id]``. No signed URL is returned here.
  - `asset_id` string, uuid, required: Stable attachment reference (asset UUID).
  - `filename` string, nullable: Original client filename (metadata only).
  - `mime_type` string, required: Server-sniffed MIME type the object was stored with.
  - `size` integer, required: Stored object size in bytes.

## Other responses

- `422`: Validation Error

---

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