Authorization: Bearer <credential>. Use an API key on your server, an upload token in a browser.
API keys
Create keys under Settings → API keys. Two scopes control Blob Storage:
The full preset includes both. Give automation the narrowest scope: a job that only serves downloads needs
blob:read. A key missing a scope is refused with API_KEY_SCOPE_DENIED. See Scopes.
Upload tokens
Never put an API key in a browser. Instead your backend asks for an upload token, which is short-lived, limited and bound to your API key (revoking the key kills its tokens). The token only works on the upload routes and carries the rules you fixed:path(one exact file) orprefix(a folder),visibility,cache_control,content_disposition,expires_atandmetadata;max_sizeandallowed_extensions(1 to 20);overwrite(defaultfalse): without it, an upload with the token never replaces an existing file;expires_infrom 60 to 3600 seconds (default 900) andmax_usesfrom 1 to 100 (default 1).
path always adds a random suffix to the file name so users cannot overwrite each other. Using a token outside its path, folder or fixed options answers BLOB_UPLOAD_TOKEN_CONSTRAINT, an extension it doesn’t allow answers BLOCKED_FILE_TYPE, and a file above its max_size answers BLOB_FILE_TOO_LARGE; an expired or revoked one answers BLOB_UPLOAD_TOKEN_INVALID.
Workspaces
Add?workspace_id=<id> (or the SDK’s workspace option) to act on the Blob Storage of a workspace’s owner. Files and quota belong to the owner. A member needs a workspace permission:
Existing workspace roles do not receive these permissions automatically; the owner grants them explicitly. Without them the call answers
WORKSPACE_PERMISSION_DENIED. See Workspaces.