Example customer view
AI allowances for SaaS products
Give every customer an AI allowance.
Set how much AI usage each subscription plan includes. Before your app sends a request to OpenAI or Anthropic, TenantCap checks whether that customer has enough left. After the request, it updates their balance using the actual usage reported by the provider.
Your app keeps its prompts, API keys, and direct provider connection. TenantCap adds the customer allowance check beside the AI calls you choose.
For SaaS founders and product teams whose applications call OpenAI or Anthropic from TypeScript or Node.js.
Customer
Acme workspace
The problem
Your AI provider gives you one bill. Your customers have different plans.
A Starter customer and a Pro customer should not receive the same amount of AI usage. OpenAI or Anthropic sees requests from your application, but it does not know what each customer purchased from you.
Most usage tools tell you what happened after an AI request. By then, the provider has already done the work and the cost already exists.
TenantCap lets your app check one customer's remaining amount first. If the next request does not fit, your app can stop it before sending anything to the AI provider.
Try the example
See what happens when a customer reaches their limit.
A Starter customer has used $4.90 of a $5 monthly AI allowance. Their next request may cost $0.20, so it should stop before the provider. Move the customer to Pro and the request can continue.
Interactive customer example
Starter has $0.10 remaining
Check whether a request that may cost $0.20 fits, then move the customer to Pro and see how the balance changes.
Next AI request
BALANCE CHECKCustomer plan
Starter plan
- Customer
- Acme workspace
- Possible cost
- $0.20
- AI provider
- Not contacted
What happens next
Does Starter have enough left?
Starter has only $0.10 remaining, while the next request may cost $0.20.
Customer balance
LIVE EXAMPLE- Monthly limit
- $5.00
- Used
- $4.90
- Set aside
- $0.00
- Remaining
- $0.10
Starter has $0.10 remaining after $4.90 of its $5.00 monthly allowance was used.
AI provider
Waiting for the exampleThis example never sends a real AI request.
Step by step
What happened
- The balance has not been checked yet.
How it works
Check the balance, make the AI request, update what remains.
Your application adds a small TenantCap check around the AI calls where customer limits matter. The rest of your provider connection stays in your code.
Check the customer’s balance
TenantCap looks at the customer, their subscription plan, and the estimated cost of the next request. If the request does not fit, your app gets a clear reason to stop.
Customer + plan + estimated costMake the AI request
If enough remains, your existing code calls OpenAI or Anthropic directly. TenantCap does not receive the prompt or hold your provider API key.
Your app → OpenAI or AnthropicUpdate what remains
After the response, TenantCap uses the provider-reported usage to update that customer’s balance. Your product can then show the new amount remaining.
Reported usage → new balance
The amount checked before a request is an estimate. The final provider usage may differ, so TenantCap updates the balance afterward and your provider invoice remains authoritative.
Your subscription plans
Set the AI amount included with each plan.
You decide how much AI usage a Trial, Starter, or Pro customer receives. The values below are examples, not product guarantees or provider prices.
| Plan | Monthly example | Per-request max | Status |
|---|---|---|---|
| Trial | $1 per month | $0.10 per request | Example |
| Starter | $5 per month | $0.25 per request | Example |
| Pro | $30 per month | $2 per request | Example |
What the customer sees
Give customers a balance they can understand.
Your product can show each customer how much AI usage remains, when it resets, and what to do when the limit is reached. The example below shows a Pro customer after one selected request.
Turn a stopped request into a useful message.
type TenantCapRefusal = {
reason: "MONTHLY_ALLOWANCE_EXHAUSTED";
remaining: "$0.06";
requiredReservation: "$0.18";
suggestedAction: "SHOW_UPGRADE";
};This structured reason lets your app show an upgrade or wait message instead of a generic error. It applies only to the calls your application chooses to protect.
What TenantCap stores
Your prompts, responses, and provider keys stay in your app.
TenantCap needs only the limited information used to check and update an allowance: an anonymous customer ID, project and plan identifiers, provider and model, estimated usage, reported usage, status, and timestamps.
TenantCap does not need the prompt, response content, attachment, embedding, provider key, end-user name, or end-user email to make an allowance decision.
Your code chooses which calls to protect, which customer plan to apply, and how to explain the resulting balance. Calls outside that integration remain invisible to TenantCap.
How it differs
TenantCap solves one narrow problem.
Other products route AI traffic, help developers inspect requests, or count usage after it happens. TenantCap focuses on whether one customer's next AI request fits the amount included with their plan.
| Option | Primary layer | How the path differs |
|---|---|---|
| LiteLLM | Routes model requests through a gateway | A gateway gives your application a new route to AI providers. TenantCap keeps your direct provider connection and adds a customer allowance check beside selected calls. |
| Portkey | Routes and manages AI traffic | AI operations platforms can manage model traffic through a shared layer. TenantCap has a narrower purpose: decide whether one customer’s request fits the AI amount included with their plan. |
| Helicone | Helps developers inspect AI requests | Observability tools explain what happened across model requests. TenantCap makes a plan decision before a selected request and gives the customer a balance your product can display. |
| Vercel AI Gateway | Provides a hosted route to AI providers | A hosted gateway sits between your application and model providers. TenantCap leaves the provider call in your application and checks the customer’s allowance around it. |
| OpenMeter | Counts product usage | General metering helps a company count usage for billing or reporting. TenantCap also decides whether a selected AI request fits before it is sent, then updates the customer’s balance afterward. |
| A custom Redis/database ledger | Stores balances your team builds itself | A custom ledger gives your team storage and full control, while your team designs the rules and edge cases. TenantCap packages the customer limit, pre-request check, balance update, and refusal into one focused workflow. |
A gateway changes the route
A gateway sends AI requests through another service. TenantCap leaves the OpenAI or Anthropic request in your application and adds the customer balance check beside it.
Counting usage happens afterward
General metering tells you how much was used. TenantCap also checks whether enough remains before a selected request is sent, then updates the balance afterward.
The balance belongs in your product
Developer tools can explain system activity to your team. TenantCap gives your product a simple amount that one customer can understand.
First version
What the first version includes.
The Founding pilot starts with a focused integration for SaaS teams using OpenAI or Anthropic from TypeScript or Node.js.
Founding pilot scope
- TypeScript tools for selected OpenAI and Anthropic text requests
- A different AI limit for each customer’s subscription plan
- A balance check before each selected request
- A balance update using provider-reported usage after the response
- A clear refusal when the customer does not have enough remaining
- A balance your product can show to the customer
What it does not do
The limits are part of the product.
TenantCap helps enforce the AI amount included with one customer's plan. It does not control every AI call or replace the other systems your business already relies on.
TenantCap sees only the AI calls your application chooses to protect.
Calls outside the TenantCap integration remain invisible and cannot be stopped.
The OpenAI or Anthropic invoice remains the official record of what you owe.
The amount checked before a request is an estimate, so the final provider charge could be higher.
TenantCap does not replace your billing system, payment records, monitoring tools, or security controls.
TenantCap limits selected customer calls, not your entire provider account.
Founding access
Join the Founding pilot.
The $49 is applied to your first month of Founding access, with a focused package for qualifying SaaS teams.
- One project
- Up to 100 active customer policies
- Up to 50,000 selected AI calls
- OpenAI and Anthropic text calls
- Plan-specific customer allowances
- No bespoke implementation
Fully refundable if the pilot does not proceed before your access begins.
Common questions
What you should know before joining.
These questions cover how TenantCap fits your application and what Founding access includes.
Would TenantCap receive my prompts or API keys?
No. Your application keeps the prompt, model response, and provider API key. It continues calling OpenAI or Anthropic directly. TenantCap receives only the limited identifiers and usage information needed to check and update a customer’s allowance.
What happens when a customer has too little remaining?
For a call protected by TenantCap, your app receives a clear refusal before sending the request to the AI provider. Your product can then explain the limit, ask the customer to wait, or offer an upgrade.
Would the amount always match my provider bill?
No. The pre-request amount is an estimate used to decide whether the request fits. TenantCap updates the balance after the response using provider-reported usage, while the provider invoice remains authoritative.
Would TenantCap cover every AI call in my account?
No. It covers only the calls your application chooses to protect with TenantCap. Other calls remain invisible and cannot be stopped by TenantCap.
Who is the Founding pilot for?
The Founding pilot is for TypeScript or Node.js SaaS teams that call OpenAI or Anthropic directly, serve at least 20 customer accounts, and need different AI allowances for different subscription plans.
What would the $49 Founding payment buy?
It reserves one qualified place in the Founding pilot and is applied to the first month of access. That month includes one project, up to 100 active customer policies, and up to 50,000 selected OpenAI or Anthropic text calls. The payment remains refundable if the pilot does not proceed before access begins.
Start with one customer limit
Decide whether this belongs in your SaaS product.
If your app calls OpenAI or Anthropic directly and your plans include different amounts of AI usage, the qualification asks whether your team fits the Founding pilot.