Billing and Usage
The fastest way to get surprised in production is to ignore balance, usage, and failed top-ups until after launch.
Track them from day one.
Pricing
Your $5 signup credit covers roughly 38 minutes of webhook calls, 19 minutes of hosted calls, 250 SMS to US/CA, or 2 months of one phone number. Pick whichever combination fits your test plan.
Credits never expire. Saperly does not gift-card-economics your signup grant or any prepaid balance. Whatever you fund stays funded.
You’re charged only for connected call time. International voice is the Zone A rate × the zone multiplier (Zone B = ×2, Zone C = ×3). SMS uses its own zone table — see SMS zones.
Phone numbers are billed $2.50 every 30 days after the line is created — your first number’s first 30 days are free.
Cost examples
Examples below assume Zone A destinations (US/CA); international rates use Zone B (×2) or Zone C (×3) multipliers. For the full destination table, see Voice zones.
402 insufficient_credits. Inbound calls still connect and are billed normally after they complete. Add a card in the portal before going to production.Check balance
Add funds
Top-ups run through Stripe Checkout from the portal — visit /billing and pick an amount. Programmatic top-up is not exposed at v0.5.3; postpaid auto-charge against your saved card covers the steady-state path.
Review transactions
Each transaction in the response looks like this:
amount_credits and balance_after_credits fields carry US cents (e.g. -130 means -8.70). The *_credits field names are a v0.5.2.0 carry-over and will be renamed to *_cents in v0.6.x; the values are already cents-honest. The transactions endpoint uses cursor pagination: pass cursor from the previous response and check has_more and next_cursor to paginate.Track daily usage
Track monthly usage
Low-balance warnings
Saperly surfaces balance warnings directly in the developer portal so you don’t get caught by a failed call:
- Below $3 — warning banner on the dashboard, amber pill next to your balance.
- Below $1 — critical banner, red pill.
- Below $0 — postpaid auto-charge attempts against your saved card. If no card is on file, outbound calls stop dialing until you add one.
These warnings are in-app only for launch. Email notifications are coming post-launch — until then, poll GET /v1/billing/balance if you need external alerting.
Top up any amount or save a card to clear the banner.
What to alert on
- low balance
- unusual call-minute spikes
- repeated webhook delivery failures
- high failed outbound call rates
Suggested first dashboard
If you are building your own ops dashboard, start with:
- balance
- calls today
- minutes today
- SMS inbound and outbound
- webhook failures
- last 10 call outcomes
That is enough to catch most operational problems early.
Optimization tips
- Use webhook mode instead of hosted mode when you can. It’s half the cost (0.26 per minute) because you provide the AI.
- Keep calls concise by tuning your system_prompt to be direct.
- Monitor daily usage to catch runaway calls early.
- Set up balance alerts before going to production.
