Create an upload
Creates an upload record for a direct single-PUT transfer. Its id (obj_…) is the media id everywhere: what POST /playlists//operations takes in addObjects.objectIds and what a playlist’s items (objectID) and liveItems (objectId) name. name needs a file extension; mimeType must suit type (video, audio or image) and is the Content-Type the PUT must send. A file may be at most 15 GB, but one PUT carries at most 5 GB, so import a bigger file with POST /uploads/from-link instead; a fileSize given here is checked now (422 FILE_TOO_LARGE), and the stored size is checked again on complete. A name without an extension or a mimeType that doesn’t suit type is 422 INVALID_INPUT. Next: POST /uploads//upload-url, PUT the bytes to that URL, then POST /uploads//complete.
Authorizations
OAuth 2.1 authorization-code flow with PKCE.
Headers
Workspace this request operates in — the workspace id (wksp_…) or the organization id, from GET /workspaces. Required with an API key, which carries no workspace (400 WORKSPACE_REQUIRED without it). With an OAuth token it defaults to the workspace the token was issued for. Responds 403 WORKSPACE_FORBIDDEN when the caller is not a current member, rather than falling back to another workspace.
Optional client-generated key. A repeated request with the same key, method and path (by the same caller in the same workspace) replays the original response, with Idempotency-Replayed: true, for 24 hours instead of running again — safe retries. The same key with a different body is refused with 422 IDEMPOTENCY_KEY_REUSED (nothing runs): use a new key for each new request. A 5xx answer is not remembered (a retry runs).
Body
audio, video, image Response
Created.
audio, video, image