Rate Limiting
The Products Manager API enforces rate limits to ensure fair usage and platform stability.
Rate limit headers
Every API response includes headers that tell you your current rate limit status:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Example response headers
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1710000000
Limits by plan
| Plan | Requests / minute | Requests / day |
|---|---|---|
| Starter | 60 | 10,000 |
| Growth | 300 | 100,000 |
| Enterprise | 1,000 | Unlimited |
Handling rate limit errors
When you exceed the limit, the API returns 429 Too Many Requests:
429 Response
{
"error": "rate_limit_exceeded",
"message": "Too many requests. Please retry after the reset time.",
"retry_after": 42
}
The retry_after field gives the number of seconds to wait before retrying.
Retry strategy
We recommend exponential backoff with jitter:
Simple retry with curl
# Wait for Retry-After header value, then retry
curl -w "%{http_code}" https://api.productsmanager.app/api/v1/products \
-H "Authorization: Bearer {api_key}"
For bulk operations (imports, exports, batch updates), prefer scheduling jobs during off-peak hours to avoid hitting limits.