Base URL
Quick start
Build a working integration
A full worked example — create a contact, trigger a call, and verify the webhook that reports the result.
1
Create an API key
In the dashboard, go to API keys and create one with only the permissions you need. Copy it — it’s shown once. See Authentication.
2
Make a request
3
Handle the envelope
Every response carries
success and message, with payload under data. See below.Response shape
Successful responses:success: false and an appropriate status code:
Branch on the HTTP status code and on
success — not on the text of message, which is written for humans and may change.Endpoints
Calls
List, search, retrieve, trigger, and delete calls. Transcripts and recordings.
Contacts
Full CRUD over your contact records.
SMS
Send messages and read conversations.
Conventions
Pagination
Pagination
List endpoints take
page (default 1) and limit (default 50, or 20 on some endpoints). Request one page at a time rather than a very large limit.Phone numbers
Phone numbers
Send phone numbers in E.164 format —
+14155551234. Numbers submitted when creating a contact are normalized to E.164 automatically; elsewhere, send them already formatted.Timestamps
Timestamps
ISO 8601, UTC. Date filters accept
YYYY-MM-DD.Multi-location
Multi-location
Pass
x-location-id to scope a request to one location. Omit it to cover the whole workspace.Also available
Webhooks
Receive events as they happen instead of polling.
MCP server
Let an AI assistant query your workspace directly.
