How to Rate Limit With Upstash Redis + n8n

If you’re exposing n8n webhooks to the public (like WordPress forms or public APIs), n8n’s built-in throttling isn’t always enough because it doesn’t persist state across workflow restarts.

The Solution: Use the Redis Increment (INCR) pattern with Upstash.

  1. Node: Redis Node (Operation: Increment).

  2. Key: rate_limit:{{$json.body.email}}

  3. TTL: 60 (seconds).

  4. The Logic: If the returned value is > 1, use a Respond to Webhook node with a 429 status code to block the spammer before they hit your Google Sheets or Airtable quotas.

Why? It’s atomic, serverless (Upstash has a huge free tier), and works even if your n8n instance reboots.

Here’s the full tutorial guide: Building a Rate Limiter With Upstash Redis and n8n