Upload a content file

Accepts a multipart file upload, detects its type, optionally converts/resizes it, stores it in S3, and creates (or replaces) a content record. Processing runs asynchronously by default; pass ?wait=true to block until done.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
boolean
Defaults to false

Block until processing completes and return the created content object(s).

Body Params
file
required

The file to upload. Max 1 GB overall; images additionally capped at 20 MB and 16 000 x 16 000 px (auto-resized to 4 096 x 4 096 if exceeded). Type is detected from magic bytes, falling back to file extension. Supported types: png, jpg, gif, svg, mp4, webm, ogg, mov, avi, pdf, ppt, pptx, doc, docx, xls, xlsx, vtt, srt, zip. No Content-Type header validation is performed.

string

Override the uploaded file's name. Falls back to the multipart filename.

string

MongoDB ObjectID of the destination media folder.

string
enum
Defaults to upload

upload creates a new content record; replace updates an existing one.

Allowed:
string

Required when upload_state=replace. MongoDB ObjectID of the content to replace.

string

ID of the associated filesync entry.

string

Original filename of the content being replaced.

string

S3 path of the file being replaced.

string

Google Drive file ID, when the source originates from Google Drive.

string

Google account email associated with the Drive source.

boolean

Set to true when the file originates from a Canva export.

string

Canva design ID.

string

Canva export URL.

string

Page ID that owns this content (e.g. for webshot content).

boolean
Defaults to false

If true, the created content record is hidden from the media library (e.g. subtitles).

string

AI prompt ID that triggered this upload.

webshot
object

Webshot metadata. Only relevant when content originates from a web screenshot.

Headers
string
required

Token <token> or Bearer <token>. Alternatively pass ?token= as a query param.

string

Optional idempotency / tracing identifier.

Responses

401

Missing or invalid authentication token.

403

Authenticated user lacks the required media upload permission.

415

Unsupported file type detected from magic bytes / extension.

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json