Generate a presigned upload URL
Answers a JSON string: a presigned storage URL, valid for 11 hours. Send the whole file to it in one HTTP PUT, the bytes as the body, with Content-Type exactly the upload’s mimeType (it is part of the signature: another value is refused by storage with 403) and no Streamloop credentials. Storage answers 200 with no body; then POST /uploads//complete. Ask again for a fresh URL after it expires. The answer is never null: an upload already completed is 409 UPLOAD_ALREADY_COMPLETED, and a removed one 422 UPLOAD_REMOVED.
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).
Path Parameters
Resource identifier.
Response
Successful response.