next-rate-limit
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

Next Rate Limit

Update to next.js Api Route Limiting Example

Installation

# Using npm
> npm install next-rate-limit
# Using yarn
> yarn add next-rate-limit
# Using pnpm
> pnpm add next-rate-limit

Usage

Importing

import rateLimit from 'next-rate-limit';

Examples

import rateLimit from 'next-rate-limit';
import { NextRequest, NextResponse } from 'next/server';

const limiter = rateLimit({
  interval: 60 * 1000, // 1 minute
  uniqueTokenPerInterval: 500 // Max 500 users per minute
});

export function GET(req: NextRequest) {
  try {
    const headers = limiter.checkNext(req, 10);

    return NextResponse.json(
      {
        limit: headers.get('X-RateLimit-Limit'),
        remaining: headers.get('X-RateLimit-Remaining')
      },
      { headers }
    );
  } catch {
    return NextResponse.json({ error: 'Rate limit exceeded' }, { status: 429 });
  }
}

See original repo linked for full example.

Configuration

interval

number

See lru-cache ttl

Defaults to 60000 ms (= 1 minute).

uniqueTokenPerInterval

number

See lru-cache max

Defaults to 500.

Readme

Keywords

none

Package Sidebar

Install

npm i next-rate-limit

Weekly Downloads

32

Version

0.0.3

License

MIT

Unpacked Size

9.48 kB

Total Files

9

Last publish

Collaborators

  • aw1875