---
title: "Upload file"
method: POST
path: "/v1/files"
tags: ["Files"]
---

# Upload file

`POST /v1/files`

## Request

- Base URL: `https://api.tokenlab.sh`
- URL: `https://api.tokenlab.sh/v1/files`
- Auth: HTTP bearer

Uploads a TokenLab/OpenAI-compatible batch or image file. With anthropic-beta: files-api-2025-04-14, uploads an Anthropic Files resource without a purpose field and returns Anthropic file metadata.

## Headers

- `anthropic-beta` string

## Response `200`

Uploaded

- union
  - FileObject: File metadata. Batch files include status; image/reference files may omit status depending on the file purpose.
    - `id` string, required
    - `object` 'file', required
    - `bytes` integer, required
    - `created_at` integer, required
    - `filename` string, required
    - `purpose` 'batch' | 'batch_output' | 'user_data' | 'vision', required: File purpose. batch and batch_output are used by Batches; user_data and vision are used by file-backed image/reference requests.
    - `status` string: Batch file processing status. Image/reference file objects may omit this field.
    - `expires_at` integer, nullable
  - AnthropicFileObject
    - `id` string, required
    - `type` 'file', required
    - `filename` string, required
    - `mime_type` string, required
    - `size_bytes` integer, required
    - `created_at` string, date-time, required
    - `downloadable` boolean
    - `scope` object, nullable
      - `id` string, required
      - `type` 'session', required

## Other responses

- `400`: Bad Request - Invalid input
- `401`: Unauthorized - Invalid or missing API key
- `413`: Bad Request - Invalid input

---

[API](https://skmtc.dev/tokenlab/apis/tokenlab-ai-gateway.md) · [All operations](https://skmtc.dev/tokenlab/apis/tokenlab-ai-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/tokenlab/apis/tokenlab-ai-gateway/revisions/3208bfbcda22?raw)
