- 200
- Deduplicated — identical bytes were already stored for this account, and the existing asset is returned
- 201
- Created
- 400
- Body is not a JSON object, `base64` missing or not a string, not valid base64, decodes to nothing, invalid `metadata`, or `retentionExempt` sent together with `expiresInDays`
- 401
- Missing, malformed, revoked or expired API key
- 403
- Missing scope: assets:write, or this account is not enrolled in Majra
- 409
- Upload could not be committed under write contention — retry
- 413
- Decoded asset exceeds the per-asset size limit, or the account storage quota is reached
- 415
- Unsupported media type. Allowed: png, jpeg, gif, webp, avif, mp4, webm, mp3, ogg, wav
- 429
- Too many uploads (300/hour per key and IP), or the platform-wide storage ceiling is reached
- 500
- Bytes could not be stored
- 503
- Majra is not enabled on this deployment