For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
  • Core
    • Overview
    • Authorization
    • Base URL
    • Data formats
    • Paging
    • Error codes
    • Permissions
  • Calling
  • Datasphere
  • Logs
  • Messaging
  • Phone Number Management
  • Platform
  • Resource Management
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Core concepts
  • Use the REST API from your code
  • Try it in Postman
Core

Overview

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page

Authorization

Next
Built with

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:

Authorization

Authenticate with Basic Auth using your Project ID and API token, or use Bearer tokens for client-side apps.

Base URL

Every request goes through your Space’s subdomain over HTTPS. See how to find your subdomain and how request URLs are structured.

Data formats

UTC ISO 8601 timestamps, E.164 phone numbers, and case-sensitive parameter names across every request and response.

Paging

List endpoints return paged results. Use the links envelope to walk through the full set safely.

Error codes

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.

1

Open the collection in Postman

Click Run in Postman to fork the collection into your own Postman workspace.

Run In Postman

2

Set your credentials

Open the collection’s Variables tab and fill in the three values from the API pane of your SignalWire Dashboard:

VariableValue
space_nameYour Space subdomain (e.g., example)
project_idYour Project ID
api_tokenYour API Token
Subscriber endpoints (optional)

A small number of endpoints — those scoped to an individual subscriber rather than a project — authenticate with a Subscriber Access Token (SAT) instead of Basic Auth. If you plan to call those, also set the subscriber_token variable to a token generated via the Create Subscriber Token endpoint. Endpoints that need it have their Authorization tab set to Bearer Token referencing {{subscriber_token}}; you don’t need to set it to use the rest of the collection.

3

Send your first request

Open any endpoint — try Phone Numbers to list the numbers on your project, or Messages to fire off a test SMS — and hit Send. The collection uses your credentials automatically.

Be sure to subscribe to the SignalWire Community for information on new features and changes to the API and language libraries.