Authentication
API keys identify your application, your storage account, and the operations you may perform.
API keys
Keys have the format sk_live_<random> or sk_test_<random> with 256 bits of cryptographically secure randomness. The platform stores only a keyed hash — if you lose a key it cannot be recovered, only rotated.
X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # or Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Permissions
Each key carries a subset of these permissions:
containers.read List and inspect containers, read usage files.read Download files, list items, view file info files.write Upload files, create folders, rename items files.delete Delete files and folders files.copy Copy items (async jobs) files.move Move items metadata.read Read custom metadata metadata.write Update custom metadata storage.admin All of the above
Requests without the required permission return HTTP 403 with error code MISSING_PERMISSION.
Key security
- Store keys in a secret manager or environment variables — never in code or client-side bundles.
- Use separate keys per application so each can be rotated independently.
- Set expiry dates and IP allowlists where your administrator supports them.
- Rotate keys periodically: your administrator issues a replacement and revokes the old key immediately.
- If a key leaks, request an immediate revocation — the old key stops working within seconds.
Failure modes
INVALID_API_KEY 401 Key missing, malformed, revoked, or unknown EXPIRED_API_KEY 401 Key past its expiry date MISSING_PERMISSION 403 Key lacks the permission for this operation IP_NOT_ALLOWED 403 Request IP not in the key's allowlist CUSTOMER_SUSPENDED 403 The customer account is suspended RATE_LIMITED 429 Too many requests — honor Retry-After