EIVUS

API Rate Limiting on Your Server

Protect APIs with rate limits and throttling; tools and strategies.

Back to blog

Rate limiting prevents abuse and ensures fair use. Implement at the app (e.g. middleware) or edge (WAF, nginx). Use per-IP or per-key limits; return 429 and Retry-After. Tier-III networks often add DDoS protection upstream.

Why rate limit

  • Abuse: Bots and scrapers can overload your API or consume quota. Rate limits cap how much one client can do.
  • Fair use: Ensures one heavy user does not starve others. Per-user or per-key limits support quota and tiers.
  • Cost and stability: Reduces surprise traffic spikes and helps you size and budget capacity.

Where to implement

  • Application: Middleware or decorator that checks request count per key/IP and returns 429 when over limit. Full control; can use Redis for distributed limits.
  • Edge: Nginx limit_req, WAF, or API gateway. Offloads work from the app; consistent across all endpoints. Combine with app-level for per-user/key limits.
  • Provider: Some hosts offer DDoS mitigation and basic rate limiting at the network edge. Complements app/edge limits.

How to implement

  • Per-IP: Simple; good for anonymous or unauthenticated traffic. Can be bypassed with many IPs (botnets).
  • Per API key or user: Better for authenticated APIs; ties limit to identity. Use when you have keys or sessions.
  • Sliding or fixed window: Count requests in a time window; sliding is fairer but slightly more work. Return 429 Too Many Requests and Retry-After header so clients can back off.

Summary

Rate limit at app or edge; use per-IP or per-key; return 429 and Retry-After. Reduces abuse and ensures fair use; combine with provider DDoS protection for volumetric attacks.

Clients who trust us