Skip to main content

Voice SDKs

Three client paths, all against the same REST API and media pipeline.

TypeScript

Generated from the OpenAPI spec, or hand-rolled against the REST API. Configure a base URL and an auth header, and an outbound call is a handful of lines. The SDK guide covers:
  • Placing an outbound call, minimally
  • Outbound calls with idempotency and retries
  • Inbound webhook handlers for Express and Next.js App Router
Send an Idempotency-Key on POST /make-call. It gives you 24-hour replay protection, so a retry after a network timeout will not place a second real call.

Python

The same surface for Python services, including webhook signature verification.

Web SDK (browser calls)

POST /voice/web-calls mints a signed browser voice session — a WebSocket URL plus a start message.
Because a web call uses the same media protocol and pipeline as a phone call, it inherits the entire platform — agents, custom tools, transfers with no-answer recovery, evals, billing — with nothing extra to configure.
No phone number is involved, so a browser call needs no Twilio number provisioning. It is the fastest way to exercise an agent end to end while building.

Verifying webhooks

All three SDK paths need the same verification: HMAC-SHA256 over the raw request body, compared in constant time. See Webhooks. The same helper also covers custom tool call invocations, which are signed identically.