Plans
- A plan’s credits equal its monthly price. On an annual plan you pay twelve discounted months up front, and you still get that month’s credits every month.
- Plan credits reset each month. Credits you don’t use in a period do not carry over to the next one.
- Enterprise adds SSO, white-label, and contract pricing. Contact sales.
The free trial
Every new workspace starts with a one-time $5 trial credit, which is valid for 30 days. No card is needed. While you are on the trial:- each call lasts at most 15 minutes;
- only one call can run at a time;
- outbound phone calls are not available;
- models are limited to the Gemini Flash family.
Top-ups
Top-ups come in packs of $10, $25, $50, or $100, or any custom amount of $10 or more.- Top-up credits roll over. They never reset at the end of a period.
- Spending order: trial credit first, then this month’s plan credits, then rolled-over credits and top-ups.
- Overdraft: a call that runs past zero can leave a small overdraft. It is capped at the larger of 5% of your plan and rolled-over credits or $0.50, and your next top-up or renewal repays it first.
What things cost
Voice and video calls: per minute, billed to the second
A call’s price per minute is the sum of the components it runs. Those are the voice model or speech-to-text, the LLM, and text-to-speech, plus a $0.05/min platform fee, plus any add-ons you switch on. Typical stacks:- Bring your own keys and the component is free. If a scenario uses your own vendor key for a component, that component costs $0 on Waterr. You pay only the platform fee and any components Waterr hosts. The same applies to a custom agent endpoint and to a phone number on your own carrier.
- Failed calls are free. You are refunded in full when a call fails on our side or a vendor’s, or when the agent never speaks, as long as it billed for under 30 seconds.
- Each extra human participant beyond the first adds $0.007/min.
Add-ons, per minute while on
Phone calls
Carrier minutes are added on top of the call’s stack price. They cost from about $0.009/min** (inbound) to **$0.022/min (outbound), depending on the carrier and direction. A number on your own carrier costs $0.Text chat, desktop app, and API model usage
These are billed per token at the model provider’s list price × 1.6. A text chat therefore costs a little per message, depending on how long the message is. A typed session inside a meeting pays the $0.05/min platform fee but none of the voice components, and its replies bill per message by tokens.The live rate card
Every price above comes from the public rate card, and that is the source of truth. It lists each component’sper_minute_sell (per-minute items) or unit_sell (per-token and per-character items):
per_meeting component is charged once per call. A per_seat component is charged once for each agent in the call.
Quote an agent before you run it
To see what one of your agents will cost per minute,POST /pricing/quote with the agent’s scenario id. It prices the exact stack a call would get, including bring-your-own-key components at $0:
conditional lists add-ons that bill only if they are used during the call, such as Deep Think during a turn.
When the balance runs out
Before a call: 402 and 429
Creating a meeting is checked against your balance and your plan. You need at least one minute at the agent’s price, and at least $0.10 in any case. You also need a free concurrency slot.
Branch on the top-level code. The structured error object carries the generic class: payment_required for a 402 and rate_limited for a 429.
per_minuteandminutes_leftappear when the agent could be priced.- On a 402, top up or upgrade, then retry the request unchanged.
- A 429
concurrency_limitis not a request-rate limit. Retrying with backoff only works once one of your calls ends.
During a call: credits_low and credits_exhausted
A live call deducts from your balance as it runs. Two server messages reach the client over the call’s RTVI channel:
server message
Sent once, when about 90 seconds of balance are left at this call’s rate. Use it to prompt a top-up.
server message
When the balance reaches zero, the agent says a short goodbye and the call ends with reason
credits_exhausted. The usual post-call transcript, analysis, and webhooks still run.Billing endpoints
These are served athttps://waterr.ai/backend/api/billing. GET /plans is public. Every other endpoint authenticates with a wai_ API key or a signed-in session, and acts on that workspace’s balance.
Prices are always decided by the server. You name a plan or a pack, and never send an amount. Payments go through Razorpay checkout. Each purchase endpoint returns what the checkout needs (key_id plus a subscription_id or order_id), and the matching /confirm call grants the credits. A confirm can be retried safely: a replay returns alreadyProcessed: true.
{ code, message } shape. Common codes are unsupported_currency, invalid_interval, unknown_pack, invalid_amount, no_subscription, no_change, and invalid_signature.
The request-rate limits on the REST API are not a billing control, and they are the same on every plan. Separately, each plan’s
api_limits (requests per minute, hour, and day) govern its model API traffic. Starter allows 60/1,000/10,000, Growth 200/5,000/50,000, and Scale 600/20,000/200,000.
