Protect your API endpoints with configurable rate limiting. Supports fixed window, sliding window, and token bucket algorithms with multiple storage backends.
Flexible rate limiting with multiple algorithms and storage backends
Serverless Redis-based rate limiting with edge support
UPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENProcess-local rate limiting for development and single-instance apps
Rate limit an API route
Apply rate limiting middleware to an endpoint
import { ratelimit } from '@/lib/ratelimit'
export async function POST(req: Request) {
const ip = req.headers.get('x-forwarded-for') ?? 'unknown'
const { success, remaining } = await ratelimit.limit(ip, {
requests: 10,
window: '1m',
})
if (!success) {
return Response.json({ error: 'Too many requests' }, { status: 429 })
}
// Handle request...
}Add rate limiting to your Primstack project with a single command:
prim ratelimit init