Overview
Responsible scraping protects both your application and target websites. This guide covers rate limiting strategies, retry logic, and best practices for production use.Why rate limiting matters
Protect target websites
- Prevents server overload
- Respects website resources
- Maintains good standing with site owners
Protect your application
- Avoids IP bans
- Prevents credit waste on failed requests
- Ensures consistent data quality
Legal and ethical compliance
- Respects robots.txt
- Follows terms of service
- Demonstrates good faith usage
ManyPi rate limits
API limits
All plans have the same rate limit:Rate limits are applied per API key. You can create multiple API keys in your dashboard to scale horizontally (e.g., 3 API keys = 180 requests/minute).
While rate limits are the same across plans, your credit allocation varies by plan tier. Higher plans get more monthly credits for more scraping volume.
Rate limit headers
Every API response includes rate limit information:X-RateLimit-Limit: Maximum requests per minute (60)X-RateLimit-Remaining: Requests remaining in current windowX-RateLimit-Reset: Unix timestamp when limit resets
Implementing rate limiting
Simple delay between requests
Token bucket algorithm
More sophisticated rate limiting that allows bursts:Using p-limit for concurrency control
Retry logic
Exponential backoff
Retry failed requests with increasing delays:Retry with jitter
Add randomness to prevent thundering herd:Error handling
Comprehensive error handling
Circuit breaker pattern
Prevent cascading failures:Production patterns
Queue-based processing
Use a queue for reliable, rate-limited scraping:Distributed rate limiting with Redis
Share rate limits across multiple servers:Best practices
Respect target website rate limits
Respect target website rate limits
- Check robots.txt for crawl-delay directives
- Start with 2-3 second delays between requests
- Monitor for 429 (Too Many Requests) responses
- Adjust delays based on response times
Scrape during off-peak hours
Scrape during off-peak hours
Schedule heavy scraping during low-traffic periods:
Cache aggressively
Cache aggressively
Don’t re-scrape data that hasn’t changed:
Monitor and adjust
Monitor and adjust
Track success rates and adjust accordingly:
Use proxy rotation (if needed)
Use proxy rotation (if needed)
For high-volume scraping, consider rotating proxies:
Monitoring rate limits
Check remaining quota
Alert on low quota
Next steps
View usage
Monitor your API usage and rate limits
Upgrade plan
Get higher rate limits with Pro or Business plans
API Reference
See complete API documentation
Contact support
Need custom rate limits? Get in touch
