Free for 5M requests a month

Ship your API.We'll handle the keys.

API keys, credits, rate limits, and request analytics for the API you sell — added with one SDK call inside your own middleware. No gateway in front of your traffic.

Start building free
  • 7 official SDKs
  • Under 5ms per check
  • 100M+ requests validated

Official SDKs with drop-in middleware for the stack you already run

  • Python
  • Node.js
  • Go
  • Rust
  • PHP
  • .NET
  • Java
API requests validated
100M+
Average key validation
<5ms
Average analytics ingest
<5ms
Check and log, end to end
<10ms

Months of plumbing, or one call.

Selling access to an API means building a small billing-grade system around it before you ship a single feature. ReqKey is that system, already running.

How ReqKey works
  • Issuing and storing keysPrefixed keys per customer, scoped to the APIs they may call
  • Usage quotasA credit balance per customer, charged any amount per call
  • Monthly resetsRefills every hour, day, week, or month — reset or top up
  • Abuse controlSliding-window rate limits that answer 429 with Retry-After
  • Usage logsEvery request, status, and latency logged in under 5ms
  • Low-balance warningsShadow limits and email alerts on thresholds you choose
  • Revoking a leaked keyDisable or reroll it from the dashboard — no deploy
  • Counting across regionsOne balance, synced between regions, never double-counted
  • Knowing who changed whatAn audit log with the actor, IP, and a before/after diff

Live in an afternoon. Three steps, one of them code.

ReqKey runs inside your API, not in front of it. Your server asks us one question per request and gets an answer in under 5ms; your traffic never passes through us.

  1. 1

    Create an API and its plans

    Name the API you sell, then define plans: how many credits each customer gets, how often they refill, and how fast they may call.

  2. 2

    Give every customer a key

    When someone signs up, create a consumer and a key — from the dashboard or one API call. All of a customer’s keys share one balance.

  3. 3

    Add the middleware

    Install the SDK and wrap your routes. Every request is checked, charged, and logged before your handler runs.

server.tsnpm install reqkey
import express from "express";
import { reqkey } from "reqkey/express";
 
const app = express();
 
app.use(
reqkey({
projectKey: process.env.REQKEY_PROJECT_KEY,
apiId: "api_payments",
keyName: "x-api-key",
excludePaths: ["/health"],
}),
);
 
app.post("/payments", (req, res) => {
// Key checked, 1 credit charged, request logged.
res.json({ creditsRemaining: req.reqkey.creditsRemaining });
});
Also: Express, Next.js, NestJS, Fastify, Koa, HonoNode.js setup guide

Every request gets one of these answers

  • 200Valid key, credits charged — your handler runs
  • 402Out of credits
  • 403Key disabled, or not allowed on this API
  • 429Over the rate limit — no credits charged

If ReqKey can't be reached

You choose: fail closed and return a 503, or fail open and let traffic through. Invalid keys are denied either way, and a validation is never retried, so no one is charged twice.

Where ReqKey sits

Your customer
Your APIReqKey, under 5ms
Your handler

Responses go straight back to your customer. ReqKey sees the key check and the log line, nothing else.

The business side of your API, already built.

Keys, credits, rate limits, and traffic in one dashboard — and every part of it available through the API, so your signup flow can create customers on its own.

A key for every customer, controlled without a deploy

Each customer is a consumer with as many keys as they need — production, staging, a teammate’s laptop. Keys carry your prefix, can be limited to specific APIs, and change state the moment you click.

  • Custom prefixes like payments_, scoped to one API or all of them
  • Disable, reroll, or delete a key instantly
  • Deleted keys stay recoverable for 7 days
Explore key management
A
Acme Corp
Starter plan · 3 keys · one shared balance
active
payments_7Hq2…xK9e
Production · All APIs
Active
payments_Lm4v…P0aT
Staging · Payments API
Active
payments_Zt8e…b1Qw
Old laptop · All APIs
Disabled
Reroll keyDisable
Key rerolled. The old value stopped working immediately.

Sell usage in credits. Refills run themselves.

Put customers on plans with a credit allowance, a refill schedule, and a rate limit. Charge 1 credit for a search and 40 for a video render — you decide the price of each call.

  • Refill hourly, daily, weekly, or monthly — reset or top up
  • Shadow limits warn before a balance runs dry
  • Optional overage so good customers never hit a wall
Explore plans and credits
Starterplan
Credits
10,000
Refill
Every 30 days
On refill
Reset
Rate limit
20 / second
Warn at
1,000 left
Globexrefills in 6 days
1,360 credits left
8,640 usedwarning line
You price each call
  • /v1/search−1 cr
  • /v1/images−5 cr
  • /v1/video−40 cr

Stop runaway clients before they cost you

A scraper, a retry loop, a leaked key: rate limits cut them off per customer, in a sliding window you set from one second to one day. Blocked calls answer 429 with Retry-After and cost the customer nothing.

  • Per-customer limits, shared across all their keys
  • Changes take effect in about 200ms
  • Set on a plan or on a single customer
How rate limits work
Hooli · requests per second
limit 20 per 1-second window
allowed 429
429Retry-After: 1s0 cr
429Retry-After: 1s0 cr
200POST /v1/search−1 cr

Every request, searchable the moment it lands

Method, endpoint, status, latency, location, and the customer behind it — logged in under 5ms and charted over any window. Go from a spike on the chart to the exact request that caused it.

  • Filter by endpoint, customer, method, status, or location
  • Open any request to see its headers and body
  • Query the same data from the analytics API
Explore API traffic
Requests
1.28M
Error rate
0.42%
Avg latency
38ms
POST/v1/charges20138ms
GET/v1/charges/ch_9120012ms
POST/v1/refunds4024ms
GET/v1/usage4293ms

And the parts you'd forget until launch day.

Alerts

Email alerts on request volume, error rate, latency, failed validations, or key changes — with cooldowns, so one incident is one email.

Audit log

Every key, consumer, plan, and credit change: who made it, from which IP, and a before/after diff of exactly what changed.

Region sync

Checks run in the region nearest your server. Balances stay in sync between regions, so a customer is never double-counted.

Teams

Invite teammates by email or link as owners, admins, or members. Pro plans have no per-seat fees.

Analytics API

Query stats, time series, breakdowns, and request logs to build a usage page for your own customers.

Set up with your AI assistant

Connect Claude Code, Cursor, or Codex to the ReqKey MCP server and let it wire ReqKey into your codebase for you.

The real dashboard, not a mockup.

What you see after signing up. Everything here can also be done with one API call.

Every customer with their plan, remaining credits, keys, and status — recharge or disable in a click.

ReqKey dashboard — Consumers

Built for anyone who hands out API keys.

Paid APIs

Sell access in plans and credits. Take payment with your own provider; ReqKey keeps the count and enforces it.

AI apps

Give every user a credit balance so one heavy user can’t run up your model bill.

ReqKey for AI apps

Partner and internal APIs

Give each partner or service its own key, scope, and limits, and see exactly who calls what.

Free public APIs

Hand out free keys with rate limits, so one scraper can’t take the API down for everyone else.

Pay for requests, not seats.

Start free with 5 million requests a month. Pro tiers run from 10M to 1B requests, with your whole team included.

Free
$0 /mo

For side projects and first launches.

Start for free
  • 5 million free requests every month
  • 1,000 API keys
  • Unlimited APIs
  • Single-member workspace
ProMost popular
$25 /mo

For APIs in production with real customers.

Start with Pro
  • 100,000 API keys
  • Unlimited consumers, projects & APIs
  • Key validations + traffic logs, one meter
  • Teams included — no per-seat fees
  • 30-day traffic logs · 180-day audit logs
  • Analytics API for your own user dashboards
  • No hard cutoffs when you cross your plan
Enterprise
Custom

Everything in Pro, sized to your traffic.

Contact sales
  • Everything in Pro
  • Volume pricing past 1B requests
  • Unlimited projects & APIs
  • SLA & custom contracts
  • Dedicated support

Need the full tier ladder? Compare every plan

Questions developers ask before they ship.

Something else? Ask the team or read the docs.

  • No. ReqKey is one SDK call inside your own middleware — no proxy, no DNS change, no gateway. Your responses go straight to your customers; only the key check and the log line reach us.

  • Key checks average under 5ms from the region nearest your server, and logging the request averages under 5ms too. You set a timeout budget; if it’s exceeded, your failure mode applies instead of the request hanging.

  • You choose. Fail closed (the default) returns a 503 so nothing slips through unchecked; fail open lets traffic pass so your API never depends on ours. Validations are never retried automatically, so nobody is charged twice.

  • No. ReqKey meters and enforces usage — credits, limits, and logs. You take payment through your own payment provider and recharge or change a customer’s plan when they pay.

  • One key validation or one logged API call. Teammates, keys, and APIs don’t add to the count, and no plan rate-limits your own traffic.

  • You decide what’s captured. Headers, bodies, and client IPs are opt-in, sensitive headers can be excluded, and API keys and credentials are always stripped before anything is logged.

  • Yes. Connect Claude Code, Cursor, Codex, or any MCP client to the ReqKey MCP server. It can read the docs, create your API and plans, and write the integration — without ever seeing your root key.

Issue your first keyin five minutes.

Free for your first 5 million requests every month. No card, no gateway, no rewrite.