npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-rate-limit

v1.7.3

Published

n8n community node for rate limit using Redis

Readme

n8n Rate Limit Node with Redis

This is a custom node for n8n that allows you to implement a rate-limiting mechanism in your workflows using a Redis instance. It's perfect for preventing downstream services from being overloaded or for controlling API usage on a per-user basis.

Features

  • Flexible Time Windows: Configure limits per minute, hour, or day.
  • Dynamic Keys: Use n8n expressions to create unique rate-limiting keys for different users, IP addresses, or any other data from your workflow.
  • Custom Block Duration: Configure a specific duration to block requests after the limit is reached, independent of the rate limit window.
  • Atomic Operations: Uses Lua scripts to ensure rate limiting and blocking operations are atomic and accurate to prevent race conditions.
  • Dual Outputs: Easily branch your workflow based on whether the rate limit has been exceeded or not.
  • Standard Redis Credentials: Uses a dedicated credential type for easy configuration.

Installation on local n8n instance

  1. Clone this repository.
  2. Navigate to the repository's root directory.
  3. Install dependencies: npm install
  4. Build the node: npm run build
  5. Link the node to your n8n installation:
    • Run npm link in this project's directory.
    • Run npm link n8n-nodes-rate-limit in your n8n installation directory.
  6. Restart your n8n instance.

Installation on n8n cloud

  1. Go to the n8n Settings.
  2. Select the "Community nodes" menu.
  3. Click on the "Install" button.
  4. Enter the package name: n8n-nodes-rate-limit.
  5. Click on the "Install" button.
  6. Restart your n8n instance.

How to Use

After installation, you will find the Rate Limit node under the "Transform" section.

Credentials

First, you'll need to configure your Redis credentials. Select the corresponding Redis credential from the credentials dropdown or create a new one and fill in your Redis connection details (host, port, password, etc.).

Parameters

  • Redis Key: The unique key used to store the counter in Redis. You can use n8n expressions here to make the key dynamic. For example, to limit based on a user ID from an incoming webhook, you could use rate-limit-{{ $json.body.userId }}.
  • Limit: The maximum number of requests allowed within the specified time window. For example, 100.
  • Time Period: The duration of the time window. For example, 15.
  • Time Unit: The unit for the time period. The options are Minutes, Hours, or Days.
  • Redis Block Key: The unique key used to store the block status in Redis. Like the main key, this supports expressions (e.g., rate-limit-block-{{ $json.body.userId }}).
  • Block Time Period: The duration to block requests after the limit is reached.
  • Block Time Unit: The unit for the block time period.

Example Configuration: To allow a user 100 requests every 15 minutes, but block them for 1 hour if they exceed that limit:

  • Limit: 100
  • Time Period: 15
  • Time Unit: Minutes
  • Block Time Period: 1
  • Block Time Unit: Hours

Outputs

The node has two outputs:

  1. Not Exceeded (Top Output): If the current request count for the key is less than or equal to the limit, the workflow data will be passed through this output.
  2. Exceeded (Bottom Output): If the limit has been surpassed, the data will be passed through this output. You can connect this to a node that sends an error message, for example.

License

MIT