Plans are allowances
A simple API's plans might look like this (example numbers):
| Plan | Allowance |
|---|---|
| Free | 10,000 lookups / month |
| Pro | 500,000 / month |
| Scale | Unlimited |
An AI product would write the same table in credits:
| Plan | Allowance |
|---|---|
| Free | 1,000 credits / month |
| Pro | 10,000 credits / month |
| Enterprise | Custom |
Different unit. Same structure: who → how much → what happens at the limit.
What you build vs. what Vibe does
- You decide what the plans are and what a credit is worth.
- Vibe counts usage per customer, enforces it before each call, and keeps the record.
- Stripe takes payment when someone upgrades or buys more, and receives usage reports from UsageFlow when you connect it.
A plan can change what runs
A budget doesn't have to be a single cliff. Your app asks for the same model on every call. The policy decides what actually runs:
Free → cheaper model, capped output
Pro → claude-sonnet-5
At 0 → blocked, upgrade prompt
The application code stays the same. Only the policy changes.
Where the money happens
Blocking is the moment a customer feels the limit. That's the right moment to show them an upgrade. Free hits its cap, and Pro is one click away.
Policy → usage → budget → runtime → billing
That's the whole model in five words:
- Policy: what is this customer allowed to do?
- Usage: how much have they used?
- Budget: how much can they use?
- Runtime: should this request run?
- Billing: do they need to buy more?
A production API can already walk through the first four.
FAQ
Is a budget the same as a plan?
A plan usually comes with a budget. You can also give one customer a custom budget.
Can each plan have different rules?
Yes. Policies can differ by plan.
Where does Stripe come in?
At the upgrade and top-up step, and for usage reports.