Skip to content

API Rate Limiting with Upstash

Template featuring API Rate limiting at the edge with Redis using Upstash.

Framework Next.js
Use Case Edge Functions
CSS Tailwind
Database Upstash
Publisher ▲ Vercel

API Rate Limiting with Upstash

This example features API Rate limiting at the edge with Redis using Upstash.

The pattern for rate limiting is inspired by the GitHub API.

Demo

https://edge-functions-api-rate-limit.vercel.app

One-Click Deploy

Deploy the example using Vercel:

Getting Started

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example https://github.com/vercel/examples/tree/main/edge-functions/api-rate-limit api-rate-limit
# or
yarn create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/api-rate-limit api-rate-limit

You'll need to have an account with Upstash. Once that's done, copy the .env.example file in this directory to .env.local (which will be ignored by Git):

cp .env.example .env.local

Then open .env.local and set the environment variables to match the REST API of your database. It should look like this:

UPSTASH_REST_API_DOMAIN = "us1-shiny-firefly-12345.upstash.io"
UPSTASH_REST_API_TOKEN = "your-api-token"

Next, run Next.js in development mode:

npm install
npm run dev

# or

yarn
yarn dev

Deploy it to the cloud with Vercel (Documentation).

API Rate Limiting with Upstash

Template featuring API Rate limiting at the edge with Redis using Upstash.

Framework Next.js
Use Case Edge Functions
CSS Tailwind
Database Upstash
Publisher ▲ Vercel

API Rate Limiting with Upstash

This example features API Rate limiting at the edge with Redis using Upstash.

The pattern for rate limiting is inspired by the GitHub API.

Demo

https://edge-functions-api-rate-limit.vercel.app

One-Click Deploy

Deploy the example using Vercel:

Getting Started

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example https://github.com/vercel/examples/tree/main/edge-functions/api-rate-limit api-rate-limit
# or
yarn create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/api-rate-limit api-rate-limit

You'll need to have an account with Upstash. Once that's done, copy the .env.example file in this directory to .env.local (which will be ignored by Git):

cp .env.example .env.local

Then open .env.local and set the environment variables to match the REST API of your database. It should look like this:

UPSTASH_REST_API_DOMAIN = "us1-shiny-firefly-12345.upstash.io"
UPSTASH_REST_API_TOKEN = "your-api-token"

Next, run Next.js in development mode:

npm install
npm run dev

# or

yarn
yarn dev

Deploy it to the cloud with Vercel (Documentation).

Unleash New Possibilities

Deploy your app on Vercel and unlock its full potential