Tried is prepaid and pay as you go. You buy credit, and each call, chat and metered feature draws it down. There is no subscription plan. Billing is per workspace and is managed by admins on the Billing page.
How a call is priced#
All prices are in Australian dollars (AUD), excluding GST. GST is added on invoices.
A voice call is the sum of per-minute components. The price of each component depends on the agent's configuration, and the agent builder shows the total as Cost in the header before you deploy (see Estimated latency and cost).
There is no telephony charge. You bring your own numbers over SIP or your own Twilio account, and your carrier bills the phone line as it does today. Web calls cost the same as phone calls.
| Component | Price per minute | Cost line (product) |
Applies to |
|---|---|---|---|
| Voice infrastructure | $0.08 | voice_infra |
Every call. Includes speech recognition, turn-taking, media, recording and analysis |
| LLM | by model, below | the model name, for example gpt-5.6-terra |
Every call with an LLM engine |
| Voice | by tier, below | voice_premium or voice_standard |
Every call |
| Knowledge base | $0.01 | knowledge_base |
Agents with at least one knowledge base |
| Recording retention | $0.001 per extra 30 days | recording_retention_<days>d |
Workspaces that keep recordings longer than the included 30 days. See Recording retention |
The lowest all-in rate is $0.16 per minute: GPT-4.1 mini ($0.02) with a Standard voice ($0.06) plus voice infrastructure ($0.08). The default agent, GPT-5.6 Terra with a Premium voice, is $0.30 per minute.
LLM prices#
| Model | $/min |
|---|---|
gpt-5.6-terra (default) |
0.10 |
gpt-5.6-luna |
0.01 |
gpt-5.5 |
0.24 |
gpt-5.4-mini |
0.036 |
gpt-4.1 |
0.07 |
gpt-4.1-mini |
0.02 |
claude-opus-5-5 |
0.18 |
claude-sonnet-5-5 |
0.09 |
claude-haiku-5-5 |
0.006 |
claude-sonnet-4-6 |
0.12 |
claude-haiku-4-5 |
0.045 |
gemini-3.5-flash |
0.018 |
gemini-3-flash-preview |
0.015 |
gemini-2.5-flash |
0.009 |
Voice prices#
| Voice tier | voice_model |
$/min |
|---|---|---|
| Premium (default) | eleven_v4_turbo |
0.12 |
| Standard | eleven_flash_v2_5 |
0.06 |
Agents moved from Retell with another voice_model are billed at that model's rate, on a voice_<voice_model> line. See Voice.
Example#
An agent on gpt-5.6-terra with a Premium voice and a knowledge base:
| Line | $/min |
|---|---|
| Voice infra | 0.08 |
LLM (gpt-5.6-terra) |
0.10 |
| Voice (Premium) | 0.12 |
| Knowledge base | 0.01 |
| Total | 0.31 |
A 2 minute 10 second call costs 130 / 60 x 0.31 = $0.672. On the Standard tier the same call costs $0.542.
Per-second billing#
Duration is rounded up to the next whole second, and each line costs unit_price x seconds / 60. There is no minimum and no per-minute rounding. The result is stored on the call as call_cost:
{
"call_cost": {
"product_costs": [
{ "product": "voice_infra", "unit_price": 0.08, "cost": 0.173333 },
{ "product": "gpt-5.6-terra", "unit_price": 0.1, "cost": 0.216667 },
{ "product": "voice_premium", "unit_price": 0.12, "cost": 0.26 },
{ "product": "knowledge_base", "unit_price": 0.01, "cost": 0.021667 }
],
"total_duration_seconds": 130,
"combined_cost": 0.671667
}
}See The call object for the other call fields.
Additional usage lines#
These lines are added to call_cost after the call when they apply:
Line (product) |
Price | When |
|---|---|---|
s2s_gpt-realtime |
$0.45/min | Speech-to-speech engine. Replaces the LLM and TTS lines (their cost becomes 0) |
s2s_gpt-realtime-mini |
$0.15/min | As above |
llm_node_<node_id>_<model> |
that model's $/min | Conversation flow nodes with their own model, billed for the time spent in the node. The agent's LLM line covers the remaining time |
llm_prompt_length |
LLM cost x (tokens / 4,000 minus 1) | Prompts over 4,000 tokens scale the LLM cost linearly |
llm_priority |
0.5 x the LLM cost | model_high_priority or model_ultrafast (x1.5 on the LLM line) |
guardrail |
$0.01/min | Guardrail input or output topics are configured |
batch_dial |
$0.01 per dial | Each dial attempt from a batch call |
concurrency_burst |
$0.15/min | Calls admitted above your concurrency limit with burst on |
Transfers add no charge: the transferred leg runs on your own trunk, so your carrier bills it.
Other usage#
| Usage | Price |
|---|---|
| Chats | $0.003 per message, on the chat's chat_cost |
| Contact memory | $0.01 per conversation saved to memory |
| AI Quality Assurance | First 100 analysed minutes each calendar month (UTC) free, then $0.15/min |
| Conductor | Free daily credits, then $0.30 per credit with pay-as-you-go on, up to your monthly limit |
| Purchased concurrency | $12 per slot per month above the included limit (20 by default) |
GET /billing/platform-usage breaks down contact memory, QA minutes and Conductor credits for the current month.
Credit balance#
The Credit balance card shows the balance, how much has been added and used, and the status Active or Out of credit. Every new workspace gets a $15 Free trial credit grant the first time billing is read.
The balance is credits added minus the cost of calls. Platform usage (contact memory, QA, Conductor) and purchased concurrency are recorded as negative entries in the credit ledger.
Buy credits#
Admins click Buy credits and pick $20, $50, $100, $500 or a custom amount between $5 and $10,000.
- The dialog calls
POST /billing/add-credits, which charges the saved card. WithSTRIPE_SECRET_KEYset on the API Needs keys, the charge goes through Stripe. - Without it, no card is charged and the credit is added immediately with a mock payment reference.
POST /billing/checkoutis the hosted alternative: with Stripe it returns a Stripe Checkout URL. The credit is added when Stripe reports the payment toPOST /webhooks/stripe(see below).
Stripe webhook#
Credit bought through Stripe Checkout (/billing/checkout or /billing/checkout-session in payment mode) is added when Stripe calls the API. In the Stripe dashboard, add a webhook endpoint at https://<your API host>/webhooks/stripe for checkout.session.completed and checkout.session.async_payment_succeeded, then set its signing secret as STRIPE_WEBHOOK_SECRET on the API Needs keys.
Requests without a valid stripe-signature (or older than five minutes) get 401. Each paid session adds its amount as a purchase credit and a paid invoice once, however many times Stripe retries it.
Every purchase creates an invoice.
What happens at zero#
When the balance is zero or below, new phone calls, web calls, registered calls, batch calls and chats are refused with 402 and error_code: "credit_exhausted". Calls already in progress continue. Outbound calls also check the balance before dialling (Insufficient credit balance. Add credits to place calls.).
Auto-recharge#
Auto-recharge buys credit automatically when the balance falls below a threshold. It needs a saved card.
| Field | API field | Default rules |
|---|---|---|
| When balance is below ($) | auto_recharge_below |
0 to 10,000 |
| Add ($) | auto_recharge_amount |
5 to 10,000 |
The check runs every minute and right after you change the settings. A failed charge is not retried until the next check; the attempt is reported as auto_recharge_failed by POST /billing/check. Each successful recharge gets an invoice of kind auto_recharge.
Monthly budget#
Set Budget per calendar month ($) to cap spend. Month usage counts call costs, chat costs and platform usage since the first of the month (UTC).
- At 80%, Tried sends a
budget_alertwebhook to the workspace webhook URL. - At 100%, it sends
budget_reached, and new calls and chats return402witherror_code: "budget_reached"until you raise the budget or the month ends.
Each alert is sent once per month. The card shows the percentage used, or Reached: new calls blocked.
{
"event": "budget_alert",
"billing": { "month": "2026-10", "monthly_budget": 500, "month_usage": 401.25, "percent": 80.3, "threshold": 80 }
}Payment methods#
The Payment method card shows the saved card (brand, last four digits, expiry).
- With Stripe Needs keys: Add card opens Stripe Elements against a SetupIntent.
Card details go straight to Stripe. We keep only the brand, last four digits and expiry.Tried creates one Stripe customer per workspace. Customer portal opens Stripe's billing portal, where you can manage cards and see Stripe receipts. - Without Stripe: the card form is a test form.
Test mode: Stripe isn't configured, so the card is not checked or charged.
| API (admin for writes) | Purpose |
|---|---|
GET /billing/payment-methods |
Saved cards |
POST /billing/payment-methods/setup-intent |
SetupIntent client_secret and publishable key for Elements |
POST /billing/payment-methods/default |
Make a card the default |
DELETE /billing/payment-methods/:id |
Remove a card |
POST /billing/checkout-session |
Stripe Checkout in setup or payment mode |
POST /billing/portal |
Customer portal URL |
Invoices#
Every credit purchase and auto-recharge creates an invoice numbered TR-<yyyymm>-<digits>, listed in the invoices table with Number, Date, Type, Status and Amount. View opens a printable HTML invoice (GET /billing/invoices/:id/html) with a Print or save as PDF button.
POST /billing/invoices/usage with { "month": "2026-09" } creates a usage statement for a past month: a record of usage that was drawn from prepaid credit, marked paid.
Account states#
| State | Label | When | Blocks |
|---|---|---|---|
active |
Active | Default | Nothing |
invoice_past_due |
Invoice Past Due | An invoice is unpaid for 1 day or more | Nothing; a warning banner |
invoice_overdue |
Invoice Overdue | An invoice is unpaid for 14 days or more | New calls, batch calls and chats (402, error_code: "invoice_overdue") |
verification_needed |
Verification Needed | Set by operations | Outbound phone calls and batch calls (402, error_code: "verification_needed") |
States are derived from unpaid invoices unless the operations team pins one. GET /account-status returns the state, label, reason and what it blocks. When a state is not active, a banner across the dashboard explains it with Open billing or Verify business. See Business verification.
Billing API summary#
| Method and path | Purpose |
|---|---|
GET /billing |
Balance, totals and credit transactions |
GET /billing/usage |
Daily cost, minutes and cost by product (default last 30 days, tz default Australia/Sydney) |
GET /billing/settings, PATCH /billing/settings |
Auto-recharge and budget |
POST /billing/add-credits |
Buy credits with the saved card (admin) |
GET /billing/invoices |
Up to 200 most recent invoices |
GET /concurrency-billing |
Included and purchased concurrency, monthly charges |