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 AI balance example

Customer

Acme workspace

Pro
AI included this month$30Pro plan example
Before the requestCheck what remains
After the responseUpdate the balance

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.

tenantcap / customer-exampleBrowser-only example

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.

Ready
No real AI or payment call occurs.This example runs entirely in your browser.

Next AI request

BALANCE CHECK

Customer plan

Starter plan

May cost $0.20
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 example

This example never sends a real AI request.

Step by step

What happened

0 events
  1. 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.

  1. 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 cost
  2. Make 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 Anthropic
  3. Update 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.

Example plan values, not product guarantees
PlanMonthly examplePer-request maxStatus
Trial$1 per month$0.10 per requestExample
Starter$5 per month$0.25 per requestExample
Pro$30 per month$2 per requestExample

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.

Example customer view

Acme workspace

Pro plan example
$11.58remaining
What your app receives

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.

Stays in your applicationPrompt + response + provider keyYour existing TypeScript route
Your direct provider callOpenAI or AnthropicSelected request

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.

Adjacent tools and the TenantCap boundary
OptionPrimary layerHow the path differs
LiteLLMRoutes model requests through a gatewayA 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.
PortkeyRoutes and manages AI trafficAI 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.
HeliconeHelps developers inspect AI requestsObservability 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 GatewayProvides a hosted route to AI providersA 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.
OpenMeterCounts product usageGeneral 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 ledgerStores balances your team builds itselfA 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.

Founding access$49applied to the first month
  • 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
Check whether your team qualifies

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.

Check your team’s fit$49 applied when access begins