Rate limits
API requests are capped per minute, separately from your credit balance. When the rate limit trips, calls return 429 rate_limited.
For credit costs and plan tiers, see Pricing.
Per-minute limits
| Plan | Rate limit (req/min) |
|---|---|
| Free | 20 |
| Monthly | 200 |
| Annual | 300 |
| Enterprise | custom |
The window is sliding — based on the last 60 seconds, not a calendar minute.
429 response
{ "error": { "code": "rate_limited", "message": "Rate limit exceeded for plan 'monthly' (200/min)", "request_id": "..." } }Handling 429
- Back off with exponential jitter. Don’t retry faster than once every 2 seconds.
- Use async + webhooks for any batch over ~50 — sync calls have a 5-min ceiling.
- Cache aggressively on your side for static fields (zpid, address, year built) so you don’t burn your rate limit re-fetching the same property.