from slowapi import Limiter from slowapi.util import get_remote_address from slowapi.errors import RateLimitExceeded from fastapi.responses import JSONResponse from fastapi import Request # создаём limiter с глобальным лимитом limiter = Limiter(key_func=get_remote_address, default_limits=["10/minute"]) # обработчик ошибок async def ratelimit_handler(request: Request, exc: RateLimitExceeded): return JSONResponse( status_code=429, content={"detail": "Too many requests, try again later."}, )