---
title: "Upload a task attachment"
method: POST
path: "/v1/uploads"
tags: ["Adam API"]
---

# Upload a task attachment

`POST /v1/uploads`

Uploads bytes for a later task or message. The returned upload id is opaque, expires after 24 hours, and creates no durable file until referenced.

## Response `201`

- CreatePublicApiUploadResponseDto
  - `upload` object, required
    - `id` string, required
    - `name` string, required
    - `mediaType` string, required
    - `size` number, required
    - `expiresAt` string, required

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid Bearer credential
- `402` — Payment or subscription required
- `403` — Credential is missing a required scope
- `404` — Resource not found
- `409` — Request conflict
- `429` — Rate limit exceeded
- `500` — Internal API error

---

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