---
title: "Initialize a file upload against a session"
method: POST
path: "/upload-sessions/{token}/files"
tags: ["Upload Sessions"]
---

# Initialize a file upload against a session

`POST /upload-sessions/{token}/files`

Creates a pending asset and returns presigned upload URL(s), gated by the session's remaining file count and the org's plan size limit.

## Path parameters

- `token` string, required — Upload session bearer token

## Request body

- object
  - `filename` string, required — Original filename
  - `size` integer, required — File size in bytes
  - `contentType` string — MIME content type

## Response `200`

Deduplicated — a ready asset with this checksum already exists

- object
  - `status` string, required — presigned | multipart | deduplicated
  - `data` object, required
    - `id` string, required — Asset ID
    - `filename` string, nullable, required — Display filename
    - `status` string, required — pending | uploading | ready | failed | expired
    - `url` string — Stable content URL — present only once the asset is ready
  - `upload` unknown

## Other responses

- `201` — Pending asset created with presigned upload URL(s)
- `403` — Session has reached its file cap
- `404` — Unknown token
- `410` — Session expired or no longer active
- `413` — File exceeds the org's plan upload size limit

## Changes

- **2026-08-29** `4d10ec4266ee` — 1 info
  - api operation id `addUploadSessionFile` was added
- **2026-07-26** `ad4351c79853` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/rendobar/apis/rendobar-api/changes/upload-sessions/:token/files/post.md)

---

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