/fork-nuxt-rate-limit

🚦 Add rate limits to your Nuxt 3 API routes.

Primary LanguageTypeScript

Nuxt Rate Limit

Add rate limits to your Nuxt 3 API routes.

By default, this module will add a rate limit to any requests to a /api endpoint.

Features

  • 🛑 Set rate limits per API route
  • 🕒 Returns seconds until reset
  • ⚡ Takes seconds to setup

Quick Setup

  1. Add nuxt-rate-limit dependency to your project
pnpm add -D nuxt-rate-limit
yarn add --dev nuxt-rate-limit
npm install --save-dev nuxt-rate-limit
  1. Add nuxt-rate-limit to the modules section of nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-rate-limit'],
})

That's it! You can now use Nuxt Rate Limit in your Nuxt app ✨

Options

name type default description
enabled boolean true Enabled/disable the rate limit module
routes object {} Add rate limits per route

Default Rate Limit

By default, we add a rate limit to all of your /api routes. You can override this setting by adding /api/* to the nuxtRateLimit routes in your nuxt.config.ts:

export default defineNuxtConfig({
  nuxtRateLimit: {
    routes: {
      '/api/*': {
        maxRequests: 100,
        intervalSeconds: 60,
      },
    },
  },
})

Different limits per route

You can also add limits per route:

export default defineNuxtConfig({
  nuxtRateLimit: {
    routes: {
      '/api/hello': {
        maxRequests: 5,
        intervalSeconds: 10,
      },
      '/api/goodbye': {
        maxRequests: 15,
        intervalSeconds: 60,
      },
    },
  },
})