Skip to main content
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.

Next steps

Voice API

Full endpoint reference for calls, agents and numbers.

Webhooks

Signature verification, shared by all three SDK paths.

Voice quickstart

A first call, end to end.

Voice agents

Configuring what the agent says.
Last modified on August 29, 2026