Plans and trials
What each tier includes, and how the free trial is bounded.
Every number on this page is read at build time from @upapi/plans, the same
module the pricing page and the billing system use. It cannot drift from what
you are actually charged.
Tiers
| Plan | Price / month | Units / month | Requests / minute | Trial units |
|---|---|---|---|---|
| Free | USD 0 | 1,000 | 10 | — |
| Starter | USD 29 | 100,000 | 60 | 10,000 |
| Pro | USD 99 | 500,000 | 300 | 50,000 |
| Scale | USD 499 | 5,000,000 | 1,000 | 500,000 |
"Units" are weighted — see Rate limits for what an individual call costs. Quota is pooled across every key in your organization and resets at the start of each UTC calendar month.
You only pay for calls we actually ran: requests we reject before running them, throttled calls, idempotent replays and cache hits all cost zero units. What you are charged for is the exact table.
Plans also govern how many operations and products you may configure, and whether hosted functions are available.
Trials
Every paid tier starts with a 14-day free trial. A trial is limited in time and in volume: it includes 10% of the tier’s monthly units for the whole trial, not per month.
That second limit is the one to plan around. A trial is not simply "the paid plan for two weeks" — it is a bounded evaluation budget, sized so you can test the platform end to end before you are billed for anything. When either limit is reached the trial stops: time runs out, or the units do.
A trial takes a card; the free tier does not
Starting a trial means completing checkout, and checkout collects a payment method — the card is validated with a zero-amount authorisation and charged only when the trial converts. If you want to try upAPI without entering card details at all, use the Free tier above: it is a real, permanent plan with its own monthly units and no payment method on file.
While a trial is live, X-Trial-Units-Limit and X-Trial-Units-Remaining
appear on every gateway response and a trial block appears in
/api/usage. Both disappear once the trial ends.
Spending the trial's units returns 429 QUOTA_EXCEEDED, with Retry-After set
to the time remaining until the trial ends. It is deliberately not
RATE_LIMITED: no window refills here, so a client backing off on the burst code
would retry until the trial expired.
One trial per organization
The trial budget belongs to the organization, and an organization can only trial once. Switching tiers mid-trial does not restart the clock or top up the units — the original end date and the cumulative budget both carry over, and the switch itself is free.
Changing plan
Billing lives at Dashboard → Billing. Plan changes take effect immediately for rate limits and quota; you do not need to re-issue keys.
You will get a notification when consumption crosses 70% and 90% of your monthly quota, so a plan change is a decision rather than a surprise.