---
title: "Upload a file against an upload-session token"
method: POST
path: "/v1/upload/{token}"
tags: ["Documents"]
---

# Upload a file against an upload-session token

`POST /v1/upload/{token}`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/upload/{token}`
- Auth: none required

Accepts the file for an upload session. This route is public: no
`Authorization` header is required or read, because the single-use,
short-lived session token in the path IS the credential. The token is
claimed atomically, so a second request with the same token gets
`404` even if it races the first.

Send the file as `multipart/form-data` in the `file` field. The
default size cap is 500 MB. On success the document is stored and
extraction is enqueued; the returned `status` is normally `queued`
(`uploaded` when the queue is temporarily unavailable, in which case
`POST /v1/extract` still processes the document inline).

## Path parameters

- `token` string, uuid, required

## Response `201`

File accepted and extraction enqueued.

- object
  - `document_id` string, uuid, required
  - `status` string, required: Document status after upload, normally `queued`.
  - `filename` string, required

## Other responses

- `400`: No file was included in the multipart body.
- `404`: Upload token not found, expired, or already used.
- `429`: Daily rate limit exceeded.

---

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