Pricing
Where the price of a minute comes from
A call has four components bought from other people and one of our own. Below is a real 32-second call with all five.
Thirty-two seconds, itemised
On 2026-09-05 we placed a call through Twilio to a Romanian number. It lasted 32 seconds. The table on the right is what the system wrote into usage_events for it, not a worked example.
Two rows are zero. Not because transcription and speech are free, but because our registry has no published price for those models yet. A zero there is a gap, not a discount.
The rest adds up to $0.0204 of provider cost. On top of that the platform added €0.0533: the €0.10 per minute floor, applied to 32 seconds.
| anthropic · claude-sonnet-4-6 | 1 027 input tokens · 192 output | $0,005961 |
| elevenlabs · scribe_v2_realtime | 32 seconds | $0,00 |
| elevenlabs · eleven_flash_v2_5 | 642 characters | $0,00 |
| twilio · RO inbound | 1 minute | $0,0144 |
| platform_margin | 32 s of €0.10/min | 0,0533 € |
The figures are read from the database for the call in note 1. Provider costs are in dollars because that is how they report them; the platform floor is in euros.[1]
Ten cents a minute, however cheap the call turns out
Component costs vary enormously. A short call on a small model costs almost nothing; a long one on a large model costs a hundred times more. A percentage markup alone would have left short calls below the cost of keeping them alive.
So there is a floor: €0.10 a minute. If the component margin clears the floor on its own, the floor does nothing. If it does not, it is topped up to it. On the call above the component margin was zero, so the floor paid for everything.
0,10 €
per_minute · EUR / USD
One product in the catalogue, priced per minute in euros and in dollars. It applies to the call billable seconds, not to minutes rounded up.
Three plans, and the ceiling written on each one
The plan covers access and the ceilings below. Minutes are paid separately, out of the credit ledger, at the per-minute floor above.
The cards and the table are read from the products table this installation bills against, not typed into the page. If a price changes on the console, it changes here.
Every ceiling on the table is checked by code in this build, and the row says where. We do not publish a limit nobody enforces.
Starter
€0
per month
No subscription. You pay for the minutes you use and nothing else.
- one simultaneous call
- 500 minutes a month
- 2 assistants
Growth
€199
per month
For teams running campaigns that need more concurrency.
- 10 simultaneous calls
- 10,000 minutes a month
- 15 assistants
Enterprise
€999
per month
High volume, reserved lines, a contract, and no ceiling on the objects a team builds.
- 50 simultaneous calls
- minutes a month — no ceiling
- assistants — no ceiling
| Reserved concurrent line | €25 per line per month. A guaranteed line rather than one from the shared pool. |
|---|---|
| Operator seat | €35 per seat per month, for the operators who take calls in the contact centre. |
| Recording storage | $0.03 per gigabyte. Zero if you keep recordings in your own bucket. |
| Post-call analysis | $0.01 for each call analysed. |
| Extended retention | €99 a month to keep recordings beyond the default policy. |
Plans and add-ons are listed in euros, the currency the per-minute floor above is quoted in. The catalogue holds a separate euro list price rather than converting the dollar one: no exchange rate is configured, and inventing one would put a figure on an invoice no bank would agree with. The two per-unit add-on rows stay in dollars because they are recharges of vendor prices, and the vendors bill us in dollars.
Plan names, prices and every number in the table come from the products and prices tables of this installation. A plan with no published price in the page currency says so rather than borrowing a number from another currency.[2]
Where each plan stops
One row per limit. Read down a column for a plan, or across a row to see where the ceiling moves.
13 of the 13 limits below are checked by code in this build. The rest of this page names the check for each one.
| Limit | Starter | Growth | Enterprise |
|---|---|---|---|
| Simultaneous calls admission | 1 | 10 | 50 |
| Minutes a month admission | 500 | 10,000 | no ceiling |
| Calls a month admission | 1,000 | 25,000 | no ceiling |
| Assistants on create | 2 | 15 | no ceiling |
| Phone numbers on create | 1 | 5 | 100 |
| Operator seats on create | 0 | 3 | 50 |
| Queues on create | 1 | 5 | no ceiling |
| Campaigns on create | 1 | 10 | no ceiling |
| Knowledge bases on create | 1 | 10 | no ceiling |
| Tools on create | 5 | 50 | no ceiling |
| API keys on create | 2 | 10 | 50 |
| API requests a minute rate limiter | 60 | 300 | 1,200 |
| Recording retention, in days retention job | 30 | 90 | 365 |
- Simultaneous calls checked before a call starts
- How many calls may be live at the same moment. Held in Redis and counted atomically, so the eleventh call on a ten-line plan is refused rather than queued.
- Minutes a month checked before a call starts
- Billable minutes summed across the calendar month. Past the ceiling a new call is refused with a payment-required denial rather than started and cut off halfway.
- Calls a month checked before a call starts
- Every call begun in the calendar month, inbound and outbound. A separate ceiling from minutes because a campaign fault that dials ten thousand five-second calls burns almost no minutes and a great deal of carrier goodwill.
- Assistants checked when the object is created
- Assistant drafts kept in the organization, published or not. Deleting one gives the slot back.
- Phone numbers checked when the object is created
- Numbers attached to the organization. A number still porting counts, because it is already reserved with the carrier.
- Operator seats checked when the object is created
- Active operators who can take a handover in the contact centre. Deactivating an operator releases the seat.
- Queues checked when the object is created
- Contact centre queues, each with its own routing strategy, skills and wallboard.
- Campaigns checked when the object is created
- Outbound campaigns held in the organization, running or finished.
- Knowledge bases checked when the object is created
- Document collections an assistant can retrieve from during a call.
- Tools checked when the object is created
- HTTP tools and MCP tools an assistant may call mid-conversation.
- API keys checked when the object is created
- Keys that are neither revoked nor expired. Revoking one frees it immediately.
- API requests a minute applied by the API rate limiter
- Per key, across every REST route. Over it the API answers 429 with a Retry-After header.
- Recording retention, in days applied by the nightly retention job
- How long a recording survives before the nightly retention job deletes it. Longer retention is available as an add-on.
What would this cost us a month
Set the shape of your operation and the page prices it against the same plan rows the table above is drawn from. Nothing is sent anywhere; the arithmetic happens in your browser.
Where a figure would exceed the plan, the row says so — and says whether it is something an add-on can lift or something only a bigger plan allows. Two of the ceilings are hard stops rather than an overage, and those are marked.
The simulator needs JavaScript. The plan table above carries every number it uses, so nothing is hidden from you here — the calculator only does the multiplication.
Platform side, a month
a month, excluding provider costs and VAT
| Line | Quantity | Unit price | Subtotal |
|---|
What this figure does not include
The number above is the platform side and nothing else. Every line below is real money that is not in it, and we would rather you met the list here than on the first invoice.
- 01 Provider costs. Transcription, the model, speech and the carrier are passed through at their own prices and depend entirely on which ones you configure — the itemised call at the top of this page cost $0.0204 in provider components for thirty-two seconds, and a different model would put that anywhere from a fraction of it to many times it. Bring your own keys and this line is zero.
- 02 Number rental. A phone number is metered separately, per number per month; the calculator checks the number against the plan ceiling but does not price the rental.
- 03 Recording storage, post-call analysis and knowledge base embeddings, all of which are metered per unit rather than included in a plan.
- 04 Operator talk minutes. A seat is the monthly licence; the minutes a person actually spends on a handed-over call are a separate per-minute line.
- 05 VAT and any local taxes, which depend on where you are and are added at invoicing.
What we cannot price properly yet
There are four places where our pricing is incomplete. They are written here because you would find them on the first invoice anyway.
- 01 The registry has no published price for every transcription and speech model. Where one is missing the component enters at zero and we carry the real cost until the price is added.
- 02 Volume pricing tiers can be stored in the catalogue but are not yet applied to the calculation.
- 03 Payments run the real Stripe SDK over a faked transport. No live payment has been through the system.
- 04 Provider costs arrive in dollars and the floor is in euros. The rate used for that conversion is not yet fixed by a written policy.
What people ask us
- Why a floor rather than a percentage?
- Because a percentage of almost nothing is still almost nothing, and a call consumes a line, a session and storage regardless. The floor covers the cost of keeping the call alive, whichever model you picked.
- Which currency do I pay in?
- The floor is priced in euros and in dollars. Providers report in dollars. The conversion is the least finished part of billing and the page says so above.
- Can I use my own OpenAI or ElevenLabs keys?
- Yes. Add the credential to your organization and the usage lands on your account with the vendor. The platform then bills only the floor.
- Is there a minimum before a call starts?
- Yes. A call starts only if the wallet can plausibly cover 60 seconds of it. We would rather not start it than cut it off halfway.
- Is there a free trial?
- Not yet. The Starter plan has no subscription, so you can begin with no monthly cost, but minutes are billed from the first call.
Notes
-
1
The call:
01M1RRDYJH6XAJY2M5XQX9Z6XD, in thecalls,call_costsandusage_eventstables. Quantities and provider costs are copied from those rows. -
2
Product and price catalogue:
database/seeders/BillingCatalogSeeder.phpand theproducts/pricestables. The floor is the product “Platform margin floor”, 0.10 per minute.
A number this page cannot give you
The arithmetic here covers a minute of call time. It does not cover porting forty numbers, a committed volume, or what happens when a campaign runs eight hours a day — those are a conversation, and it is a short one.