---
title: "POST /files"
method: POST
path: "/files"
tags: ["files"]
---

# POST /files

`POST /files`

Upload a short-lived file for temporary staging.

## Response `200`

File uploaded

- TempFile — Short-lived upload metadata returned by POST /files.
  - `content_length` integer, required — Size of the uploaded payload in bytes.
  - `content_type` string, required — MIME type as reported by the client.
  - `created_at` string, date-time, required — Time the file was uploaded.
  - `expires_at` string, date-time, required — When the download URL is expected to stop working (~24h after upload).
  - `name` string, required — Original filename (sanitized — slashes / control characters replaced).
  - `url` string, required — Download URL. Anyone with this URL can fetch the file until it expires.

## Other responses

- `413` — File exceeds 100MB limit
- `429` — Per-user rate limit exceeded

---

[API](https://skmtc.net/timbal-ai/apis/timbal-platform-api.md) · [All operations](https://skmtc.net/timbal-ai/apis/timbal-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/timbal-ai/timbal-platform-api/revisions/dd7e398ce0d3/schema)
