Rate Limits
Learn about API rate limits and how to handle them.
PlaceIQ enforces rate limits to ensure fair usage and API stability. Understand how limits work and how to handle them.
Rate Limits by Plan
| Plan | Requests/Minute | Requests/Month | Burst Limit |
|---|---|---|---|
| Starter | 60 | 1,000 | 10 |
| Growth | 300 | 10,000 | 50 |
| Enterprise | 1,000 | 100,000 | 100 |
| Custom | Custom | Unlimited | Custom |
Rate Limit Headers
Every API response includes headers to help you track your rate limit status:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per minute |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the limit resets |
Retry-After | Seconds to wait (only on 429 responses) |
Example Response Headers
HTTP/2 200 OK
Content-Type: application/json
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1708675200Handling Rate Limits
When you exceed the rate limit, you'll receive a 429 Too Many Requests response:
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please wait before making more requests.",
"status": 429,
"details": {
"limit": 60,
"window": "60s",
"retry_after": 45
}
}
}Implementing Retry Logic
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get("Retry-After") || 60;
console.log(`Rate limited. Retrying in ${retryAfter}s...`);
await new Promise(r => setTimeout(r, retryAfter * 1000));
continue;
}
return response;
}
throw new Error("Max retries exceeded");
}Best Practices
Cache responses
Truth Scores update every 4 hours. Cache responses to reduce API calls and improve performance.
Use webhooks for updates
Instead of polling, use webhooks to receive notifications when scores change.
Implement exponential backoff
When retrying after a rate limit, increase the delay between retries to avoid further limits.
Monitor your usage
Check the rate limit headers and your dashboard to track usage and plan upgrades.
Need Higher Limits?
If you consistently hit rate limits, consider upgrading your plan or contact us for a custom solution.