Upload media to a node
Initiates a media upload for a node. Returns a signed upload URL - the client uploads directly to that URL (server never proxies file bytes). For video: returns a Mux TUS resumable upload URL. After upload completes, the Mux webhook automatically updates the media status to "ready". For image: returns a Supabase Storage presigned PUT URL. Media is immediately ready after upload. Only works on node types that support media: choice, open, scale, button. If the node already has media, the old media is replaced.
Authorization
AuthorizationRequired
Bearer <token>API key (cf_*) passed as Bearer token
In: header
Request Body
application/jsonRequiredmedia_typeRequired
stringType of media - video (plays) or still (static image/color, optional audio)
Value in:
"video" | "still"media_sourcestringHow the media was created
Default:
"uploaded"Value in: "uploaded" | "recorded"Path Parameters
formIdRequired
stringFormat:
"uuid"nodeIdRequired
stringFormat:
"uuid"Upload URL created