app.rate_limit

Rate limiting middleware for FastAPI.

Usage:

from app.rate_limit import RateLimitMiddleware

# In main.py: app.add_middleware(RateLimitMiddleware, requests_per_minute=60)

Classes

RateLimitMiddleware(app[, ...])

Simple in-memory rate limiting middleware.

class app.rate_limit.RateLimitMiddleware(app, requests_per_minute=60, burst_size=10)[source]

Bases: BaseHTTPMiddleware

Simple in-memory rate limiting middleware.

Tracks requests per client IP and enforces rate limits. For production, consider using Redis or a dedicated rate limiting service.

Parameters:
  • requests_per_minute (int) – Maximum requests allowed per minute per client

  • burst_size (int) – Maximum burst size (allows short bursts above the rate)

async dispatch(request, call_next)[source]

Process the request and enforce rate limiting.

Parameters:

request (Request)