---
title: "Create upload handle"
method: POST
path: "/api/v1/public/files/uploads"
tags: ["public"]
---

# Create upload handle

`POST /api/v1/public/files/uploads`

Create a workspace-scoped, short-lived direct upload handle for an allowed file type.

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateUploadHandleRequest
  - `fileName` string, required
  - `mimeType` string, required
  - `sizeBytes` integer, required
  - `purpose` 'knowledge' | 'lead_import' | 'analysis' | 'summarizer', required

## Response `201`

Successful Response

- UploadHandle
  - `id` string, required
  - `fileName` string, required
  - `mimeType` string, required
  - `sizeBytes` integer, required
  - `purpose` string, required
  - `status` string, required
  - `uploadUrl` string, nullable, required
  - `uploadHeaders` object, required
  - `expiresAt` unknown, required

## Other responses

- `422` — Validation Error

## Changes

> 16 revisions in range; 3 could not be searched.

- **2026-08-21** `2a1adc380310` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/outcallerai/apis/fastapi/changes/api/v1/public/files/uploads/post.md)

---

[API](https://skmtc.dev/outcallerai/apis/fastapi.md) · [All operations](https://skmtc.dev/outcallerai/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/outcallerai/fastapi/revisions/6155db644bab/schema)
