Overview
Welcome to the SignalWire REST API. Every capability on the platform — placing calls, sending messages, managing phone numbers, running video rooms, building AI agents — is reachable through a consistent set of HTTP endpoints under your Space’s subdomain.
Requests and responses are JSON over HTTPS, authenticated with your Project ID and API token. Endpoints follow standard REST conventions: predictable resource URLs, conventional HTTP verbs, and structured status codes for every outcome — including errors.
Core concepts
Before making your first call, get oriented with the shared conventions across every endpoint:
Authenticate with Basic Auth using your Project ID and API token, or use Bearer tokens for client-side apps.
Every request goes through your Space’s subdomain over HTTPS. See how to find your subdomain and how request URLs are structured.
UTC ISO 8601 timestamps, E.164 phone numbers, and case-sensitive parameter names across every request and response.
List endpoints return paged results. Use the links envelope to walk through the full set safely.
HTTP status codes, the structured error response shape, and a full reference of error code values.
Use the REST API from your code
The SignalWire Server SDKs wrap every REST endpoint in idiomatic, type-safe client libraries — use them in production code instead of crafting HTTP requests by hand. Each SDK exposes the full REST surface (phone numbers, calling, messaging, video, fabric resources, and more) through namespaced resource objects with standard CRUD operations. Pick the language that matches your stack from the Server SDKs overview.
Try it in Postman
For developers who prefer working in Postman, we maintain an official collection that mirrors every REST endpoint with pre-built requests, example payloads, and a configurable environment for your SignalWire credentials. It’s a fully supported alternative to the API playground built into these docs.
Open the collection in Postman
Click Run in Postman to fork the collection into your own Postman workspace.
Set your environment variables
Open the collection’s Variables tab and fill in space, project_id, and auth_token from the API pane of your SignalWire Dashboard.
Be sure to subscribe to the SignalWire Community for information on new features and changes to the API and language libraries.