Current Limits
Two windows are enforced simultaneously on every request:
A request is accepted only if both windows have budget remaining. If either window is exhausted, the API returns
429 Too Many Requests.
Need higher limits for production workloads (e.g. ingesting data for many brands/domains)? Contact us at team@qwairy.co.
Rate Limit Headers
Every response, including429s, includes headers for both windows:
Example Headers
Handling Rate Limits
When either window is exceeded, the API returns429 Too Many Requests with a body indicating which window was hit:
limit field is either "burst" (per-minute) or "daily". Retry-After and the X-RateLimit-*-Reset headers are always aligned with the actual blocker, so you can trust Retry-After without having to inspect the payload.
Best Practices
Trust Retry-After
Use the
Retry-After header as-is. It already reflects whichever window (minute or day) is the real blocker.Watch both remaining headers
Monitor
X-RateLimit-Remaining and X-RateLimit-Daily-Remaining to throttle proactively.Cache responses
Store and reuse data that doesn’t change frequently (brands, competitors, topics).
Batch and filter
Use query filters (
provider, period, limit) to fetch only the data you need.Retry Logic Example
Optimizing API Usage
Use Filtering Parameters
Instead of fetching all data and filtering client-side, use query parameters:Cache Static Data
Some data changes infrequently and can be cached:- Brands list: Changes rarely
- Competitors list: Changes when you add/remove competitors
- Topics/Tags: Changes when you modify your workspace

