https://api.lumos.com, the response you get when you exceed them, and how to retry. For authentication and token setup, see Build and Extend with Lumos.
Current limits
Both limits apply at the same time. A request that would exceed either one is rejected.
- Counted per organization. Every API token in your Lumos organization shares one count. Creating more tokens doesn’t raise the limit.
- Shared across endpoints. Every endpoint draws from the same count. There are no separate per-endpoint limits.
- Moving window. Lumos counts the requests made in the last second and the last minute, not since a fixed reset time. A burst stays counted for the full window after it happens.
- Subject to change. Lumos can adjust these values. Read the rate limit headers on each response instead of hardcoding the numbers.
lsk_) are counted per credential.
Rate limit headers
Lumos returns these headers so your client can track its usage.
On successful responses, these headers describe the 1-second window, so they don’t show how much of the per-minute limit you’ve used. On a
429 response, the headers describe the window you exceeded.
When you exceed a limit
Lumos rejects the request with429 Too Many Requests and doesn’t process it. The response body depends on the endpoint.
/v1 endpoints return the standard error envelope, with type and code set to rate_limited.
/appstore/apps, return a single error string.
/scim/v2 return an error in the SCIM error schema (RFC 7644).
How to back off
- Stop sending requests when you receive a
429. - Wait the number of seconds in the
Retry-Afterheader, then retry the request. - Pace long-running jobs to stay under 4,000 requests per minute.
X-RateLimit-Remainingon successful responses only tracks the 1-second window. - If a response has no
Retry-Afterheader, retry with exponential backoff and random jitter.