nuxt-rate-limit
v1.2.0
Published
Nuxt Rate Limit
Downloads
1,299
Readme
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
- 🧾 Response x-ratelimit headers
Quick Setup
- 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
- Add
nuxt-rate-limit
to themodules
section ofnuxt.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 |
| headers
| boolean
| true
| Add x-ratelimit headers to response |
| statusMessage
| string
| Too many requests. Please try again in :value: seconds.
| Customize error message. :value:
will be replaced by seconds until reset |
| 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,
},
},
},
})