Skip to main content

Overview

Responsible scraping protects both your application and target websites. This guide covers rate limiting strategies, retry logic, and best practices for production use.
Important: Excessive requests can get your IP blocked and violate website terms of service. Always implement rate limiting.

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
  • 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.
Pro tip: Create separate API keys for different services or environments (production, staging, batch jobs) to isolate rate limits and improve reliability.

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 window
  • X-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

  • 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
Schedule heavy scraping during low-traffic periods:
Don’t re-scrape data that hasn’t changed:
Track success rates and adjust accordingly:
For high-volume scraping, consider rotating proxies:
Always use legitimate proxy services and respect website terms of service.

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