Default limit
| Value | |
|---|---|
| Window | 1 minute (rolling) |
| Default cap | 600 requests per minute per key |
Response headers
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the window |
X-RateLimit-Reset | Unix timestamp (seconds) when the window resets |
Retry-After | Seconds to wait before retrying after a 429 |
When limited
You receive HTTP429 with error code rate_limit_exceeded:
Best practices
- Cache read responses where appropriate (item lists, location metadata).
- Use exponential backoff when retrying after
429. - Respect the
Retry-Afterheader rather than hammering the API. - Split high-volume sync jobs across time or use bulk endpoints (
POST /items/bulkaccepts up to 100 items per request).
Workspace usage limits
Separate from request rate limits, workspaces have plan limits on total items, transfers per billing cycle, and locations. Exceeding those returns403 with code exceeded_limit, not 429.