Voice as an API, not a SIP stack you have to learn
Place calls, inspect them, and react to what happens — through a versioned REST API, signed webhooks, and a browser SDK. Sandbox environments let you build against real behavior before anything touches production traffic.
Predictable, versioned, and idempotent where it counts
Create a call, hang it up, send DTMF, or pull recordings and usage — through one consistently designed API. Every resource is authenticated, permission-scoped, rate-limited, and documented with a real OpenAPI specification.
- Idempotency keys on write operations — a retried request never double-creates a call
- Consistent pagination and error shape across every endpoint
- Every request and response is request-ID traceable, end to end
Know what happened, signed and on time
Call status, recording completion, streaming session events and low-balance alerts arrive as signed webhooks with automatic retry and a full delivery history — inspect exactly what was sent and re-deliver on demand.
- HMAC signature with timestamp — reject anything replayed or forged
- Exponential backoff with a maximum retry policy
- Endpoint auto-suspension after repeated failures, so a dead endpoint doesn't spin forever
Add calling to your web app in a few method calls
A JavaScript SDK wraps the browser calling connection: connect, place or answer a call, mute, send digits, and pick input/output devices — with normalized call-state events so your UI never has to speak signaling directly.
- No permanent credential ever ships to the browser
- Automatic reconnect handling on network changes
- Works behind restrictive NAT and firewalls
Sandbox environments, per project
Development, staging and production are separate environments within the same project — with their own connections, routes and numbers — so integration testing never risks a production route or a real customer call.
Developer platform, answered directly
Is there a sandbox environment to test against?
Yes — every project includes development, staging and production environments, each with its own isolated connections, routes, and numbers, so you can build and test integrations without any risk to live traffic.
Are webhook deliveries retried automatically?
Yes. Failed webhook deliveries retry with exponential backoff up to a configured maximum, and every delivery attempt — successful or not — is recorded in a delivery history you can inspect and manually replay.
Can I safely retry a call-creation request?
Yes — write operations accept an idempotency key, so a retried request (for example after a network timeout) never creates a duplicate call.