Skip to main content
POST
Start a file upload

Authorizations

Authorization
string
header
required

An API key from Settings > API & MCP.

Headers

Idempotency-Key
string

Any unique string (e.g. a UUID). A retry with the same key and request returns the first answer (Idempotent-Replayed: true, ids only) instead of doing it twice. Kept 24 hours.

Maximum string length: 255

Query Parameters

workspace_id
string<uuid>

The workspace to act in. Optional when the key has a default or a lock, or you belong to one workspace.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
as_user
string<uuid>

API keys of owners and admins only (not OAuth apps): act as this member of the workspace (like View As). Every use is audited.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json
filename
string
required
Required string length: 1 - 255
content_type
string
required

The file's MIME type, e.g. audio/mpeg, video/mp4, application/pdf, image/png.

Required string length: 3 - 100
size_bytes
integer
required

The exact size of the file in bytes (the upload URL only accepts this size).

Required range: x <= 9007199254740991
title
string
Maximum string length: 200
idea_id
string<uuid>

One of your ideas this input is for.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
orientation
enum<string>

For a video: its orientation, when known.

Available options:
horizontal,
vertical

Response

Created

object
string
required
Allowed value: "input_upload"
id
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
workspace_id
string<uuid>
required

Pass it on later calls if you work in several workspaces.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
status
enum<string>
required
Available options:
pending,
completing,
completed,
failed,
expired
media_type
enum<string>
required
Available options:
video,
audio,
pdf,
image
size_bytes
number
required
expires_at
string
required

Complete the upload before this time.

uploaded
boolean | null
required

While pending: whether the file has arrived (then call complete).

upload
object | null
required
input
object | null
required
error
object | null
required