Rate Limits
Understand API throttling, quota management, and how to optimize your integration with Sitemap.xml.
Overview
To ensure platform stability and fair usage across all tenants, Sitemap.xml enforces rate limits on all API endpoints. Limits are calculated using a sliding window algorithm and apply per API key, not per user or IP address.
RateLimit-Remaining and RateLimit-Reset headers to help you adjust your request pacing.
Tier-Based Limits
Rate limits scale with your subscription tier. All limits are measured in requests per minute (RPM) and requests per hour (RPH).
| Plan | Requests/Min | Requests/Hour | Concurrent Jobs |
|---|---|---|---|
| Free Starter | 10 | 600 | 1 |
| Pro Professional | 200 | 10,000 | 10 |
| Enterprise Enterprise | 2,000+ | 100,000+ | Unlimited |
429 Too Many Requests response until the hour window resets. Requests are not queued; they are rejected immediately.
Endpoint-Specific Constraints
Certain heavy-processing endpoints have stricter limits to protect infrastructure:
POST /v1/sitemaps/generate— Max 1 RPS (Starter), 5 RPS (Pro)POST /v1/indexing/submit— Batched by 100 URLs max per callGET /v1/analytics/dashboard— Cached for 5 minutes; unlimited readsDELETE /v1/sitemaps/:id— Rate-limited to 5 per minute to prevent accidental mass deletion
Handling 429 Responses
When you exceed a rate limit, the API returns a 429 status code with a JSON body and specific headers:
Retry-After: 45
RateLimit-Remaining: 0
RateLimit-Reset: 1715428800
{ "error": "rate_limit_exceeded", "message": "You have exceeded your hourly request quota.", "retry_after_seconds": 45 }
Always respect the Retry-After header. Implementing exponential backoff with jitter is strongly recommended.
Best Practices
- Batch requests: Use bulk endpoints where available to reduce round trips.
- Cache responses: Many endpoints support
If-None-MatchETag headers. - Monitor headers: Check
RateLimit-Remainingbefore making heavy calls. - Asynchronous workflows: For large sitemap generations, use webhooks instead of polling.
- Retry strategy: Use exponential backoff: 1s → 2s → 4s → 8s → cap at 30s.
Requesting Limit Increases
Need higher throughput for your integration? Enterprise customers can request custom rate limits through their dashboard. Pro users may apply for a temporary burst allowance during traffic spikes.
Need Higher Limits?
Upgrade to Professional or contact our solutions team for a custom throughput plan.
View Pricing & Upgrade