Spending limits for every user of your AI app.

Give every user their own key and a prepaid credit balance. Each call deducts credits — at zero, the request is blocked before your model runs. No surprise bills, no free riders.

Free plan · No credit card · <5ms checks
your-ai-app · user: ava@acme.co
A
Ava sends a request
ReqKey checks her credits
✓ allowed
The model does the workyour gateway · OpenAI · Claude · Groq
● working…
How did it end?
ReqKey settles the credits
12 cr
1,240 tokens → Ava pays 12 cr88 cr left
You set the policy · ReqKey settles the credits · your payment stack takes the money
FOUR WORKLOADS · ONE BALANCE

Watch it meter every workload

Chat, images, agents, video — Ava's same prepaid balance enforces all of them. Watch a month of her usage play out below.

your-ai-app · user: ava@acme.co
01Ava sends a message — ReqKey meters the tokens
WHAT AVA SEESyour app
ASummarize this contract for me
validate<5ms
WHAT REQKEY DOES
prepaid balance100 cr
tokens metered
rate limit · req/min1/10
WHY AI APPS NEED THIS

Your model bill is a sum of other people's behavior.

Every request costs you money

Each chat message or render hits your OpenAI or Anthropic account. A free user in a retry loop is real spend — and bots find unprotected AI endpoints fast.

Providers don't do per-user limits

OpenAI and Anthropic cap your total spend, not each of your customers. There is no per-user switch to flip on their dashboards — that layer is yours to build.

A few users consume most of it

In credit-priced AI products, a handful of heavy users typically drive the bulk of model spend. Without hard caps, they decide your margin — not you.

HOW IT WORKS

Three steps, no gateway, no ledger to build

01
Create a key for each user

When someone signs up, one API call creates their consumer and key with a prepaid balance — 100 credits on your free tier, 5,000 on Pro. Refills run monthly on their plan.

02
Price your features in credits

You choose the exchange rate: 1 credit per chat message, 40 per image, 400 per video clip, 2 per agent step. One currency across every model and provider — reprice anytime without touching keys.

03
Validate — we deduct, and block at zero

Before your model call, one request checks the key and deducts the price. Valid → run the call. 402 → show your paywall. The whole check takes under 5ms.

before your model callPOST /key/validate
// user asks for an image — 40 credits
{
  "key": "myai_kX3…9f",
  "credits": 40,
  "resource": "/v1/images"
}
 
// balance covers it
200 { "valid": true, "creditsRemaining": 60 }
 
// balance doesn't — request never reaches your model
402 { "valid": false, "message": "Credit limit exceeded" }
WHERE REQKEY SITS

In front of your model spend. Never in its way.

Keep your gateway — Vercel AI Gateway, Portkey, OpenRouter all stay exactly where they are. ReqKey answers a different question, one step earlier and inside your own API: is this user allowed to spend right now? One <5ms check before the model call, nothing during it — your prompts and streams never pass through us.

YOUR USERS
ava@acme.coben@nova.devmia@loop.so
each with a key + prepaid credits
01request
INSIDE YOUR API
ReqKey checkone call · <5ms
Key validRate limit okCredits deducted
Out of credits? 402 — the model is never called.
02allowed
ANY PROVIDER OR GATEWAY
OpenAIAnthropicGeminiVercel AI GatewayPortkeyOpenRouterYour own GPUs
your model call, untouched
03 response streams straight back to your user — never through ReqKey
Read the streaming guide
EVERYTHING INCLUDED

The whole credit system, not just the counter

Prepaid credits & refills

Plans with monthly, weekly, or daily refills — reset or accumulate. Trials and carryover included.

Per-user rate limits

A runaway agent or a scripted free account can't hammer your model endpoints — limits hold per key.

Controlled overage

A stream that finishes past zero lands in the overage allowance — nobody gets cut off mid-answer.

Low-credit alerts

Shadow limits fire warnings before anyone hits zero, so your users top up instead of churning.

Per-user analytics

Who spends what, on which feature, at what latency — every validated request is logged and queryable.

Instant revoke

Suspend, reroll, or revoke any key from the dashboard or one API call — no deploy, effective immediately.

What AI builders ask us

Per-user limits, streaming, providers, and where billing fits.

Can I set a spending limit per user on OpenAI's API?

Not from OpenAI — provider limits cap your whole account, not each of your customers. ReqKey adds the missing layer: every user's key carries its own prepaid balance and hard cap, enforced on each call.

How do I add a credit system to my AI app?

Without ReqKey: a ledger table, race-condition handling, refill crons, and webhook glue. With ReqKey: create a key with a credit limit and call validate before each model call — the ledger, refills, and blocking are already done.

Which model providers does it work with?

All of them. ReqKey never proxies your model call, so OpenAI, Anthropic, Gemini, Mistral, open-source, or your own GPUs all meter the same way — in your credits, at your prices.

What happens when a user runs out mid-stream?

Enable overage: the final settle lands in the overage allowance, the answer finishes, and the user tops up afterwards. You set the overage cap, so exposure stays bounded.

Is this a billing or invoicing tool?

No — pair it with Stripe, Paddle, or your payment stack. They take the payment; your webhook recharges ReqKey credits; ReqKey enforces at request time. They invoice after the fact — we block at zero.

Do you add latency to AI responses?

One <5ms check before the call, zero during it. We're not in the streaming path at all — a 20-second generation costs the same overhead as an instant one.

Stop absorbing your users' AI costs.

Issue your first key in five minutes — 100,000 requests/month free.

Start free
Plans from $25/mo · see pricing