Skip to content

Authentication & scopes

Send the platform API secret as a Bearer token on every request:

Authorization: Bearer <platform_api_secret>

Treat the secret like a password: use TLS, store it in a vault or env vars, and rotate it if exposed.

The credential is issued for your Fleet workspace. Catalog, users, devices, carts, and orders are always scoped to that workspace. You do not pass a workspace ID in requests.

ScopeWhat you can do
READAll GET operations (catalog, carts, orders, users, devices).
WRITEEverything READ can do, plus POST / PATCH / DELETE on carts (including validate), users, and devices.

Calling a mutation with a READ key returns { "error": "INSUFFICIENT_SCOPE" } (status code depends on operation).

From the live configuration of the platform route limiter:

EnvironmentWindowMax requests (per window)How it is counted
Production1 minute100Primarily per platform API credential (after your key is recognized).
Sandbox1 minute300Same idea: per credential in normal authenticated traffic.

Responses may include standard RateLimit-* headers. If the limit is exceeded, the API returns 429.

Availability: Rate limiting depends on Fleet’s counter backend. If it is unavailable, the gateway may return 503. Retry with short backoff.