Skip to content

Rest

Fresh

Overview

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

SignalWire’s REST API allows you to manage and modify calls and messages made to or from your SignalWire phone numbers. You also have the ability to retrieve and update your account information, retrieve your entire history of calls, messages, transcriptions, media and more.

This can all be achieved by sending HTTP requests to the SignalWire REST API.

The API formerly known as LaML

The Compatibility API and cXML were previously known as “LaML”. laml still appears in endpoint URLs, and the cXML namespace of the REST Client is still titled LaML. Don’t worry, it’s all cXML!

Try it in Postman

For developers who prefer working in Postman, we maintain an official Compatibility API collection with pre-built requests for every cXML endpoint, example payloads, and a configurable environment for your SignalWire credentials. It’s a fully supported alternative to the API playground built into these docs, useful if Postman is already part of your workflow.

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 (referred to as AccountSid in the Compatibility API, see AccountSid vs ProjectID below)
api_tokenYour Auth Token

3

Send your first request

Open any endpoint, try Calls to list the calls on your project, or Messages to send a test SMS, and hit Send. The collection uses your credentials automatically.

Base URL

Each Space on SignalWire gets its own subdomain and each Space will have its own URLs for accessing the REST API.

All calls in the provided examples use the following as the base URL:

https://example.signalwire.com/api/laml/2010-04-01

However, please note that the actual base URL you will use will differ for each Space, since it will be customized to include your unique Space name. For your own custom URL, replace “example” with your unique subdomain.

AccountSid vs ProjectID

To support seamless migration and compatibility with other popular providers, the SignalWire Compatibility API often refers to the AccountSid. The AccountSid is a unique identifier on other providers. On SignalWire, this is known as the Project ID.

Each project within your Space gets its own, unique Project ID and this is used to authenticate requests on the API. This will be the same value as your Project ID but is set as AccountSid for compatibility.

On SignalWire’s API, the AccountSid and Project ID are the same thing.


Create Subprojects

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

This endpoint creates a subproject on the Project you are connecting as.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Request

This endpoint expects an object.

FriendlyNamestringRequired<=250 characters

The name of the Project, up to 250 characters long.

Response

Response containing a newly created subproject account.

sidstringformat: "uuid"

The unique identifier for this Project.

friendly_namestring

The name of the Project.

statusenum

The status of the Project. Always 'active'.

auth_tokenstring

The authorization token for this Project. Always returns 'redacted' for security.

date_createdstring

The date and time this Project was created, in RFC 2822 format.

date_updatedstring

The date and time this Project was last updated, in RFC 2822 format.

typeenum

The type of the Project. Always 'Full'.

owner_account_sidstringformat: "uuid"

The Project ID of the parent project. For parent projects, this is the same as sid.

region_preferencestring

The preferred region for the Project.

uristring

The URI for the Project.

subprojectboolean

Whether this project is a sub-project of another project.

signing_keystring or null

The signing key for the Project. Only returned once when a subproject is created. Subsequent requests return null.

subresource_urisobject

A map of URIs for sub-resources linked to this Project.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Find an Account by ID

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Find a Project (also referred to as Account) by ID.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

SidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Project to retrieve.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for this Project.

friendly_namestring

The name of the Project.

statusenum

The status of the Project. Always 'active'.

auth_tokenstring

The authorization token for this Project. Always returns 'redacted' for security.

date_createdstring

The date and time this Project was created, in RFC 2822 format.

date_updatedstring

The date and time this Project was last updated, in RFC 2822 format.

typeenum

The type of the Project. Always 'Full'.

owner_account_sidstringformat: "uuid"

The Project ID of the parent project. For parent projects, this is the same as sid.

region_preferencestring

The preferred region for the Project.

uristring

The URI for the Project.

subprojectboolean

Whether this project is a sub-project of another project.

signing_keystring or null

The signing key for the Project. Only returned once when a subproject is created. Subsequent requests return null.

subresource_urisobject

A map of URIs for sub-resources linked to this Project.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


List Accounts

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

This endpoint will return a list that contains Project you are connecting as and any subprojects.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Query parameters

FriendlyNamestringOptional

A named unique identifier for the resource. Allowed characters: A-Za-z0-9_-. Maximum of 100 characters.

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of results to return per page. The default is 50, and the maximum is 1000.

PageTokenstringOptional

A token used to retrieve a specific page of results. The token is returned in the response of a previous request.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page. Null if there are no more results.

previous_page_uristring or null

The URI of the previous page. Null if this is the first page.

pageinteger

The current page number (zero-indexed).

page_sizeinteger

The number of results per page.

accountslist of objects

List of accounts.

Show 13 properties

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Update an Account

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update a Project (also referred to as Account).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

SidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Project to retrieve.

Request

This endpoint expects an object.

FriendlyNamestringRequired<=250 characters

The new name for the Project.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for this Project.

friendly_namestring

The name of the Project.

statusenum

The status of the Project. Always 'active'.

Allowed values:active

auth_tokenstring

The authorization token for this Project. Always returns 'redacted' for security.

date_createdstring

The date and time this Project was created, in RFC 2822 format.

date_updatedstring

The date and time this Project was last updated, in RFC 2822 format.

typeenum

The type of the Project. Always 'Full'.

Allowed values:Full

owner_account_sidstringformat: "uuid"

The Project ID of the parent project. For parent projects, this is the same as sid.

region_preferencestring

The preferred region for the Project.

uristring

The URI for the Project.

subprojectboolean

Whether this project is a sub-project of another project.

signing_keystring or null

The signing key for the Project. Only returned once when a subproject is created. Subsequent requests return null.

subresource_urisobject

A map of URIs for sub-resources linked to this Project.

Show 19 properties

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Create an Application

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create an Application.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Account ID that has the Application.

Request

This endpoint expects an object.

FriendlyNamestringRequired<=64 characters

A named unique identifier for the resource.

VoiceUrlstringOptionalformat: "uri"

The URL to request when a phone number receives a call or fax.

VoiceMethodenumOptionalDefaults to POST

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

VoiceFallbackUrlstringOptionalformat: "uri"

The URL SignalWire will request if errors occur when fetching the VoiceUrl.

VoiceFallbackMethodenumOptionalDefaults to POST

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

StatusCallbackstringOptionalformat: "uri"

The URL to pass status updates to the Application.

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.

SmsUrlstringOptionalformat: "uri"

The URL to request when an SMS is received.

SmsMethodenumOptionalDefaults to POST

Whether the request to SmsUrl is a GET or a POST. Default is POST.

SmsFallbackUrlstringOptionalformat: "uri"

The URL SignalWire will request if errors occur when fetching the SmsUrl.

SmsFallbackMethodenumOptionalDefaults to POST

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

SmsStatusCallbackstringOptionalformat: "uri"

The URL to receive status updates for messages sent via this Application.

SmsStatusCallbackMethodenumOptionalDefaults to POST

Whether the request to SmsStatusCallback is a GET or a POST. Default is POST.

Response

Response containing a newly created application.

sidstringformat: "uuid"

The unique identifier for the Application.

account_sidstringformat: "uuid"

The unique identifier for the Account that created this Application.

api_versionstring

The version of the SignalWire API.

date_createdstring

The date, in RFC 2822 GMT format, this Application was created.

date_updatedstring

The date, in RFC 2822 GMT format, this Application was updated.

friendly_namestring

A named unique identifier for the resource.

uristring

The URI for this Application.

voice_urlstring or null

The URL to request when a phone number receives a call or fax.

voice_methodstring or null

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

voice_fallback_urlstring or null

The URL SignalWire will request if errors occur when fetching the VoiceUrl.

voice_fallback_methodstring or null

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

status_callbackstring or null

The URL to pass status updates to the Application.

status_callback_methodstring or null

Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's ID from the database. Always null.

sms_urlstring or null

The URL to request when an SMS is received.

sms_methodstring or null

Whether the request to SmsUrl is a GET or a POST. Default is POST.

sms_fallback_urlstring or null

The URL SignalWire will request if errors occur when fetching the SmsUrl.

sms_fallback_methodstring or null

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

sms_status_callbackstring or null

The URL to receive status updates for messages sent via this Application.

sms_status_callback_methodstring or null

Whether the request to SmsStatusCallback is a GET or a POST. Default is POST.

message_status_callbackstring or null

The URL to receive status updates for messages sent via this Application.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete an Application

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete an Application.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Account ID that has the Application.

SidstringRequiredformat: "uuid"

The Application ID that uniquely identifies the Application.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Find an Application by ID

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Find an Application by ID.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Account ID that has the Application.

SidstringRequiredformat: "uuid"

The Application ID that uniquely identifies the Application.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the Application.

account_sidstringformat: "uuid"

The unique identifier for the Account that created this Application.

api_versionstring

The version of the SignalWire API.

date_createdstring

The date, in RFC 2822 GMT format, this Application was created.

date_updatedstring

The date, in RFC 2822 GMT format, this Application was updated.

friendly_namestring

A named unique identifier for the resource.

uristring

The URI for this Application.

voice_urlstring or null

The URL to request when a phone number receives a call or fax.

voice_methodstring or null

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

voice_fallback_urlstring or null

The URL SignalWire will request if errors occur when fetching the VoiceUrl.

voice_fallback_methodstring or null

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

status_callbackstring or null

The URL to pass status updates to the Application.

status_callback_methodstring or null

Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's ID from the database. Always null.

sms_urlstring or null

The URL to request when an SMS is received.

sms_methodstring or null

Whether the request to SmsUrl is a GET or a POST. Default is POST.

sms_fallback_urlstring or null

The URL SignalWire will request if errors occur when fetching the SmsUrl.

sms_fallback_methodstring or null

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

sms_status_callbackstring or null

The URL to receive status updates for messages sent via this Application.

sms_status_callback_methodstring or null

Whether the request to SmsStatusCallback is a GET or a POST. Default is POST.

message_status_callbackstring or null

The URL to receive status updates for messages sent via this Application.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


List Applications

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

The ability to read all of the applications that are associated with your Account. This will be returned as a list of applications.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Account ID that has the Application.

Query parameters

FriendlyNamestringOptional

Filter by a named unique identifier for the resource.

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of results to return per page. The default is 50, and the maximum is 1000.

PageTokenstringOptional

A token used to retrieve a specific page of results.

Response

The request has succeeded.

uristring

The URI for this resource.

first_page_uristring

The URI for the first page of results.

next_page_uristring or null

The URI for the next page of results. Null if there are no more pages.

previous_page_uristring or null

The URI for the previous page of results. Null if this is the first page.

pageinteger

The current page number. Zero-indexed.

page_sizeinteger

The number of results per page.

applicationslist of objects

List of applications.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Update an Application

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update an Application.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Account ID that has the Application.

SidstringRequiredformat: "uuid"

The Application ID that uniquely identifies the Application.

Request

This endpoint expects an object.

FriendlyNamestringRequired<=64 characters

A named unique identifier for the resource.

VoiceUrlstringOptionalformat: "uri"

The URL to request when a phone number receives a call or fax.

VoiceMethodenumOptionalDefaults to POST

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

VoiceFallbackUrlstringOptionalformat: "uri"

The URL SignalWire will request if errors occur when fetching the VoiceUrl.

VoiceFallbackMethodenumOptionalDefaults to POST

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

StatusCallbackstringOptionalformat: "uri"

The URL to pass status updates to the Application.

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.

Allowed values:GETPOST

SmsUrlstringOptionalformat: "uri"

The URL to request when an SMS is received.

SmsMethodenumOptionalDefaults to POST

Whether the request to SmsUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

SmsFallbackUrlstringOptionalformat: "uri"

The URL SignalWire will request if errors occur when fetching the SmsUrl.

SmsFallbackMethodenumOptionalDefaults to POST

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

SmsStatusCallbackstringOptionalformat: "uri"

The URL to receive status updates for messages sent via this Application.

SmsStatusCallbackMethodenumOptionalDefaults to POST

Whether the request to SmsStatusCallback is a GET or a POST. Default is POST.

Allowed values:GETPOST

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the Application.

account_sidstringformat: "uuid"

The unique identifier for the Account that created this Application.

api_versionstring

The version of the SignalWire API.

date_createdstring

The date, in RFC 2822 GMT format, this Application was created.

date_updatedstring

The date, in RFC 2822 GMT format, this Application was updated.

friendly_namestring

A named unique identifier for the resource.

uristring

The URI for this Application.

voice_urlstring or null

The URL to request when a phone number receives a call or fax.

voice_methodstring or null

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

voice_fallback_urlstring or null

The URL SignalWire will request if errors occur when fetching the VoiceUrl.

voice_fallback_methodstring or null

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

status_callbackstring or null

The URL to pass status updates to the Application.

status_callback_methodstring or null

Whether the request to the StatusCallback URL is a GET or a POST. Default is POST.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's ID from the database. Always null.

sms_urlstring or null

The URL to request when an SMS is received.

sms_methodstring or null

Whether the request to SmsUrl is a GET or a POST. Default is POST.

sms_fallback_urlstring or null

The URL SignalWire will request if errors occur when fetching the SmsUrl.

sms_fallback_methodstring or null

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

sms_status_callbackstring or null

The URL to receive status updates for messages sent via this Application.

sms_status_callback_methodstring or null

Whether the request to SmsStatusCallback is a GET or a POST. Default is POST.

message_status_callbackstring or null

The URL to receive status updates for messages sent via this Application.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List of AvailablePhoneNumber resources

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Returns a list of URIs to phone number resources available to the account, categorized by type (Local, Toll-Free, Mobile, etc) and ISO country.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account to retrieve.

Response

The request has succeeded.

uristring

The URI for the API call.

countrieslist of objects

List of available countries.

Errors

400

Bad Request Error

401

Unauthorized Error


List of AvailablePhoneNumber resources by country

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Returns a list of URIs to phone number resources available to the account in the specified ISO country, categorized by type (Local, Toll-Free, Mobile, etc).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account to retrieve.

IsoCountrystringRequired

The ISO country code of the number.

Response

The request has succeeded.

country_codestring

The ISO country code of the number.

countrystring

The country the number is from.

uristring

The URI for the API call.

betaboolean

New numbers on SignalWire are marked as beta.

subresource_urisobject

URIs for subresources.

Show 2 properties

Errors

400

Bad Request Error

401

Unauthorized Error


Search for available phone numbers that match your criteria.

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Search for Local AvailablePhoneNumbers.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account to retrieve.

IsoCountrystringRequired

The ISO country code of the number.

Query parameters

AreaCodestringOptional

Find numbers in the provided area code. Only available for numbers in US and Canada.

BetabooleanOptional

New numbers on SignalWire are marked as beta.

ContainsstringOptional

Find numbers based off of a pattern. Valid characters are [0-9a-zA-Z].

ExcludeAllAddressRequiredbooleanOptional

Accepted for Twilio compatibility but has no effect on the response.

ExcludeForeignAddressRequiredbooleanOptional

Accepted for Twilio compatibility but has no effect on the response.

ExcludeLocalAddressRequiredbooleanOptional

Accepted for Twilio compatibility but has no effect on the response.

FaxEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

InLocalitystringOptional

Limits search to a city/locality. Requires InRegion to also be set.

InRegionstringOptional

Limits search to same region as number. Must be a two-letter state/province code.

MmsEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

SmsEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

VoiceEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

Response

The request has succeeded.

uristring

The URI for the API call.

available_phone_numberslist of objects

List of available phone numbers.

Show 12 properties

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Find toll-free numbers

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Search for toll-free AvailablePhoneNumbers.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account to retrieve.

IsoCountrystringRequired

The ISO country code of the number.

Query parameters

AreaCodestringOptional

Find numbers in the provided area code. Only available for numbers in US and Canada.

BetabooleanOptional

New numbers on SignalWire are marked as beta.

ContainsstringOptional

Find numbers based off of a pattern. Valid characters are [0-9a-zA-Z].

ExcludeAllAddressRequiredbooleanOptional

Accepted for Twilio compatibility but has no effect on the response.

ExcludeForeignAddressRequiredbooleanOptional

Accepted for Twilio compatibility but has no effect on the response.

ExcludeLocalAddressRequiredbooleanOptional

Accepted for Twilio compatibility but has no effect on the response.

FaxEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

InLocalitystringOptional

Limits search to a city/locality. Requires InRegion to also be set.

InRegionstringOptional

Limits search to same region as number. Must be a two-letter state/province code.

MmsEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

SmsEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

VoiceEnabledbooleanOptional

Not supported. Accepted for Twilio API compatibility.

Response

The request has succeeded.

uristring

The URI for the API call.

available_phone_numberslist of objects

List of available phone numbers.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Create a Call

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create a call.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

Request

This endpoint expects an object.

TostringRequired

The address that received the call. Can be a phone number in E.164 format, a SIP URI, or a client identifier.

FromstringRequired

The address that initiated the call. Must be a phone number in E.164 format for PSTN calls.

UrlstringOptionalformat: "uri"

The URL to handle the call. Required if ApplicationSid and Laml/Twiml are not used.

ApplicationSidstringOptionalformat: "uuid"

The unique identifier of the application used to handle the call. Required if Url and Laml/Twiml are not used.

MethodenumOptionalDefaults to POST

Whether the request to Url is a GET or a POST. Default is POST.

FallbackUrlstringOptionalformat: "uri"

The URL SignalWire will request if errors occur when fetching the Url.

FallbackMethodenumOptionalDefaults to POST

Whether the request to FallbackUrl is a GET or a POST. Default is POST.

StatusCallbackstringOptionalformat: "uri"

The URL SignalWire will send webhooks to on every requested StatusCallbackEvent event. See the Voice status callback webhook for the payload your URL will receive.

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to StatusCallback URL is a GET or a POST. Default is POST.

StatusCallbackEventlist of stringsOptionalDefaults to ["completed"]

The status events that trigger a SignalWire webhook. Valid values: initiated, ringing, answered, completed, ringing_forwarded, ringing_queued. Defaults to completed.

CallerIdstringOptional

The number, in E.164 format, or identifier of the caller. Used to override the From for caller ID purposes.

SendDigitsstringOptionalformat: "^[\d#*wW]{1,32}$"``<=32 characters

The digits to press after a call is connected. Valid characters are 0-9, #, *, w (wait 0.5s), and W (wait 1s).

TimeoutintegerOptional1-600Defaults to 60

The time in seconds SignalWire will wait before assuming the call has no answer. Default is 60 seconds.

MachineDetectionenumOptionalDefaults to none

Whether a human or machine picked up the call. Default is none.

MachineDetectionTimeoutintegerOptional1-120Defaults to 30

The time in seconds SignalWire will wait for machine detection before timing out. Default is 30 seconds.

MachineDetectionSpeechThresholdintegerOptional1000-6000Defaults to 2400

How many milliseconds of voice to decide it is a machine. Default is 2400 milliseconds.

MachineDetectionSpeechEndThresholdintegerOptional500-5000Defaults to 1200

Number of milliseconds to wait for voice to finish. Default is 1200 milliseconds.

MachineDetectionSilenceTimeoutintegerOptional2000-10000Defaults to 5000

Number of milliseconds to wait for initial voice before giving up. Default is 5000 milliseconds.

MachineWordsThresholdintegerOptional1-100Defaults to 6

How many words to count to decide it is a machine. Default is 6.

AsyncAmdbooleanOptionalDefaults to false

Whether or not to execute machine detection asynchronously. Default is false.

AsyncAmdStatusCallbackMethodenumOptionalDefaults to POST

Whether the request to AsyncAmdStatusCallback is a GET or a POST. Default is POST.

AsyncAmdStatusCallbackstringOptionalformat: "uri"

The URL to request when the machine detection is completed.

AsyncAmdPartialResultsbooleanOptionalDefaults to false

Whether or not to report partial (interim) results to the callback url. Default is false.

RecordbooleanOptionalDefaults to false

Whether or not to record a call. Default is false.

RecordingChannelsenumOptionalDefaults to mono

The number of channels in the recording. Default is mono.

RecordingTrackenumOptionalDefaults to both

Specifies whether to record the inbound, outbound, or both audio. Default is both.

RecordingStatusCallbackstringOptionalformat: "uri"

The URL to request when recording is available. See the Recording status callback webhook for the payload your URL will receive.

RecordingStatusCallbackMethodenumOptionalDefaults to POST

Whether the request to RecordingStatusCallback URL is a GET or a POST. Default is POST.

RecordingStatusCallbackEventstringOptionalDefaults to completed

The recording status events that trigger a webhook. Space-separated list. Valid values: completed, in-progress, absent. Default is completed.

TrimenumOptionalDefaults to trim-silence

Whether leading and trailing silence is trimmed from a recording. Default is trim-silence.

SipAuthUsernamestringOptional

The username to authenticate the caller when making an outbound SIP call.

SipAuthPasswordstringOptional

The password to authenticate the caller when making an outbound SIP call.

MaxPricePerMinutestringOptionalformat: "^\d+\.?\d{0,4}$"

The maximum price in USD acceptable for the call to be created. Format: up to 4 decimal places.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the call.

account_sidstringformat: "uuid"

The unique identifier for the account that created this call.

date_createdstring

The date, in RFC 2822 GMT format, this call was created.

date_updatedstring

The date, in RFC 2822 GMT format, this call was updated.

parent_call_sidstring or nullformat: "uuid"

The unique identifier for the call that created this call.

tostring

The address that received the call.

formatted_tostring

The formatted number that received the call.

to_formattedstring

The formatted number that received the call. Alias for formatted_to.

fromstring

The address that initiated the call.

formatted_fromstring

The formatted number that initiated the call.

from_formattedstring

The formatted number that initiated the call. Alias for formatted_from.

phone_number_sidstring or nullformat: "uuid"

The unique identifier for the phone number.

statusenum

The status of the call.

start_timestring or null

The time, in RFC 2822 GMT format, on which the call began.

end_timestring or null

The time, in RFC 2822 GMT format, on which the call was terminated.

durationinteger

The duration, in seconds, of the call.

pricefloat or null

The charge for the call.

price_unitstring

The currency, in ISO 4127 format, for the price of the call.

directionenum

The direction of the call.

answered_byenum or null

Who/what the call was answered by.

api_versionstring

The version of the SignalWire API.

forwarded_fromstring or null

The number this call was forwarded from. Always null.

caller_namestring or null

The caller name. Always null.

uristring

The URI for the call.

subresource_urisobject

A Map of available sub-resources.

annotationstring or null

The annotation for the call. Always null.

group_sidstring or null

The group SID for the call. Always null.

audio_in_mosfloat or null

The Mean Opinion Score for audio quality (1.0-5.0).

sip_result_codestring or null

The SIP result code for the call.

audio_rtt_avginteger or null

The average round-trip time for audio in milliseconds.

audio_rtt_mininteger or null

The minimum round-trip time for audio in milliseconds.

audio_rtt_maxinteger or null

The maximum round-trip time for audio in milliseconds.

audio_out_jitter_mininteger or null

The minimum outbound audio jitter in milliseconds.

audio_out_jitter_maxinteger or null

The maximum outbound audio jitter in milliseconds.

audio_out_jitter_avginteger or null

The average outbound audio jitter in milliseconds.

audio_out_lostinteger or null

The number of outbound audio packets lost.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete a Call

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a call record from your account. If the delete is successful, a 204 response, with no body, will be returned.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

SidstringRequiredformat: "uuid"

The unique identifier for the call.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List all Calls

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all calls.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

Query parameters

EndTimestringOptional

The time, in RFC 2822 GMT format, on which the call was terminated.

EndTime<stringOptional

The time before which the call was terminated.

EndTime>stringOptional

The time after which the call was terminated.

FromstringOptional

The address that initiated the call.

ParentCallSidstringOptionalformat: "uuid"

The unique identifier for the call that created this call.

StartTimestringOptional

The time, in RFC 2822 GMT format, on which the call began.

StartTime<stringOptional

The time before which the call began.

StartTime>stringOptional

The time after which the call began.

StatusenumOptional

The status of the call.

Show 8 enum values

TostringOptional

The address that received the call.

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of results to return per page. The default is 50, and the maximum is 1000.

PageTokenstringOptional

A token used to retrieve a specific page of results. Must start with PA or PB.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page.

previous_page_uristring or null

The URI of the previous page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

callslist of objects

List of calls.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Call

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a call.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

SidstringRequiredformat: "uuid"

The unique identifier for the call.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the call.

account_sidstringformat: "uuid"

The unique identifier for the account that created this call.

date_createdstring

The date, in RFC 2822 GMT format, this call was created.

date_updatedstring

The date, in RFC 2822 GMT format, this call was updated.

parent_call_sidstring or nullformat: "uuid"

The unique identifier for the call that created this call.

tostring

The address that received the call.

formatted_tostring

The formatted number that received the call.

to_formattedstring

The formatted number that received the call. Alias for formatted_to.

fromstring

The address that initiated the call.

formatted_fromstring

The formatted number that initiated the call.

from_formattedstring

The formatted number that initiated the call. Alias for formatted_from.

phone_number_sidstring or nullformat: "uuid"

The unique identifier for the phone number.

statusenum

The status of the call.

Show 8 enum values

start_timestring or null

The time, in RFC 2822 GMT format, on which the call began.

end_timestring or null

The time, in RFC 2822 GMT format, on which the call was terminated.

durationinteger

The duration, in seconds, of the call.

pricefloat or null

The charge for the call.

price_unitstring

The currency, in ISO 4127 format, for the price of the call.

directionenum

The direction of the call.

Allowed values:inboundoutbound

answered_byenum or null

Who/what the call was answered by.

Allowed values:humanmachine

api_versionstring

The version of the SignalWire API.

forwarded_fromstring or null

The number this call was forwarded from. Always null.

caller_namestring or null

The caller name. Always null.

uristring

The URI for the call.

subresource_urisobject

A Map of available sub-resources.

Show 2 properties

annotationstring or null

The annotation for the call. Always null.

group_sidstring or null

The group SID for the call. Always null.

audio_in_mosfloat or null

The Mean Opinion Score for audio quality (1.0-5.0).

sip_result_codestring or null

The SIP result code for the call.

audio_rtt_avginteger or null

The average round-trip time for audio in milliseconds.

audio_rtt_mininteger or null

The minimum round-trip time for audio in milliseconds.

audio_rtt_maxinteger or null

The maximum round-trip time for audio in milliseconds.

audio_out_jitter_mininteger or null

The minimum outbound audio jitter in milliseconds.

audio_out_jitter_maxinteger or null

The maximum outbound audio jitter in milliseconds.

audio_out_jitter_avginteger or null

The average outbound audio jitter in milliseconds.

audio_out_lostinteger or null

The number of outbound audio packets lost.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a Call

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update a call.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

SidstringRequiredformat: "uuid"

The unique identifier for the call.

Request

This endpoint expects an object.

UrlstringOptionalformat: "uri"

The URL to handle the call.

MethodenumOptional

Whether the request to Url is a GET or a POST.

Allowed values:GETPOST

StatusenumOptional

The status to update the call to.

Allowed values:canceledcompleted

FallbackUrlstringOptionalformat: "uri"

The URL SignalWire will request if errors occur.

FallbackMethodenumOptional

Whether the request to FallbackUrl is a GET or a POST.

Allowed values:GETPOST

StatusCallbackstringOptionalformat: "uri"

The URL SignalWire will send webhooks to.

StatusCallbackMethodenumOptional

Whether the request to StatusCallback is a GET or a POST.

Allowed values:GETPOST

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the call.

account_sidstringformat: "uuid"

The unique identifier for the account that created this call.

date_createdstring

The date, in RFC 2822 GMT format, this call was created.

date_updatedstring

The date, in RFC 2822 GMT format, this call was updated.

parent_call_sidstring or nullformat: "uuid"

The unique identifier for the call that created this call.

tostring

The address that received the call.

formatted_tostring

The formatted number that received the call.

to_formattedstring

The formatted number that received the call. Alias for formatted_to.

fromstring

The address that initiated the call.

formatted_fromstring

The formatted number that initiated the call.

from_formattedstring

The formatted number that initiated the call. Alias for formatted_from.

phone_number_sidstring or nullformat: "uuid"

The unique identifier for the phone number.

statusenum

The status of the call.

Show 8 enum values

start_timestring or null

The time, in RFC 2822 GMT format, on which the call began.

end_timestring or null

The time, in RFC 2822 GMT format, on which the call was terminated.

durationinteger

The duration, in seconds, of the call.

pricefloat or null

The charge for the call.

price_unitstring

The currency, in ISO 4127 format, for the price of the call.

directionenum

The direction of the call.

Allowed values:inboundoutbound

answered_byenum or null

Who/what the call was answered by.

Allowed values:humanmachine

api_versionstring

The version of the SignalWire API.

forwarded_fromstring or null

The number this call was forwarded from. Always null.

caller_namestring or null

The caller name. Always null.

uristring

The URI for the call.

subresource_urisobject

A Map of available sub-resources.

Show 2 properties

annotationstring or null

The annotation for the call. Always null.

group_sidstring or null

The group SID for the call. Always null.

audio_in_mosfloat or null

The Mean Opinion Score for audio quality (1.0-5.0).

sip_result_codestring or null

The SIP result code for the call.

audio_rtt_avginteger or null

The average round-trip time for audio in milliseconds.

audio_rtt_mininteger or null

The minimum round-trip time for audio in milliseconds.

audio_rtt_maxinteger or null

The maximum round-trip time for audio in milliseconds.

audio_out_jitter_mininteger or null

The minimum outbound audio jitter in milliseconds.

audio_out_jitter_maxinteger or null

The maximum outbound audio jitter in milliseconds.

audio_out_jitter_avginteger or null

The average outbound audio jitter in milliseconds.

audio_out_lostinteger or null

The number of outbound audio packets lost.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Voice status callback

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Payload sent by SignalWire to your Voice Status Callback URL when the status of a call changes.

Configure this callback using the StatusCallback and StatusCallbackEvent parameters when creating a call via the API or using Dial with Number, SIP, or Conference.

Use StatusCallbackEvent to receive every call progress event, not just the final status, along with current call state and all parameters below.

Payload

The payload of this webhook request is an object.

AccountSidstringRequired

The unique ID of the project this call is associated with.

ApiVersionstringRequired

The version of the SignalWire API. Incoming calls use the API version placed on the number called. Outgoing calls use the version of the REST API request.

AudioInAveragePtimeintegerRequired

The average time between packets for the inbound stream.

AudioInDtmfPacketCountintegerRequired

The number of DTMF packets in the inbound media stream.

AudioInFlushPacketCountintegerRequired

The number of incoming packets removed from the jitter buffer due to buffer overflow or underflow, causing these packets to be discarded or lost.

AudioInJitterMaxVarianceintegerRequired

The maximum variance of jitter for incoming audio RTP packets.

AudioInJitterMinVarianceintegerRequired

The minimum variance of jitter for incoming audio RTP packets.

AudioInLargestJbSizeintegerRequired

The largest jitter buffer size recorded for incoming audio RTP packets during the session.

AudioInMosstringRequired

A mean opinion score on a scale of 1-5 that helps determine audio quality.

AudioInMediaPacketCountintegerRequired

The number of audio packets received in the inbound media stream.

AudioInSkipPacketCountintegerRequired

Increased with every packet not received at a given ptime. Increases with every lost packet from the inbound stream.

AudioOutDtmfPacketCountintegerRequired

The total number of DTMF packets generated in the outbound media stream.

AudioOutMediaPacketCountintegerRequired

The number of audio packets sent in the outbound media stream.

CallbackSourcestringRequired

The source of the status callback.

CallSidstringRequired

A unique identifier for the call.

CallStatusenumRequired

The status of the call.

StatusDescription
initiatedThe initial dial has begun.
ringingThe call is ringing.
in-progressThe call was answered and is in progress.
queuedThe call is ready and in line to initiate.
failedThe call could not be completed. Usually occurs when the phone number does not exist.
busyThe caller encountered a busy signal.
no-answerThe call ended without an answer.
completedThe call was answered and ended normally.
canceledThe REST API canceled the call while it was ringing or queued.

Show 9 enum values

DirectionenumRequired

The direction of the call.

  • outbound-dial: calls launched through the Dial verb.
  • outbound-api: calls launched through the REST API.
  • inbound: inbound calls.

Allowed values:outbound-dialoutbound-apiinbound

FromstringRequired

The phone number that sent this call, in E.164 format.

SequenceNumberintegerRequired

The order in which events occur, starting at 0. Although events are fired in order, they each take time and may not appear in the order you expect.

TimestampstringRequired

The timestamp, in RFC 2822 format, of when the event occurred.

TostringRequired

The phone number of the call recipient, in E.164 format.

CallDurationintegerOptional

The duration, in seconds, of the finished call. Only present on the completed event.

CallerNamestringOptional

The name of the caller. Only available if Caller ID lookup is enabled.

ForwardedFromstringOptional

The number this call was forwarded from.

ParentCallSidstringOptional

A unique identifier for the call that created this call.

RecordingDurationintegerOptional

The duration, in seconds, of the recording.

RecordingSidstringOptional

The unique identifier for the audio recording.

RecordingUrlstringOptional

The URL of the recorded audio call.

SipInviteResultPhrasestringOptional

A textual description of the result of the SIP INVITE request, indicating success or failure with additional details.

SipResultCodestringOptional

The numeric SIP response code received for the INVITE request, indicating the outcome of the call attempt. See the list of SIP response codes for possible values.

Response

200

Webhook received


REST client SDKs

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

SignalWire has clients in a number of different languages that make using the SignalWire Compatibility API possible with your existing application. They are also built to make migrating from other service providers to SignalWire quick and easy.

The Compatibility SDK has two primary components:

  • REST Client: The REST client is used to make API calls for initiating outbound calls and messages, managing phone numbers, retrieving call logs, and other operations. See the REST API documentation for the complete API reference.

  • cXML Builders: The cXML builders do not make API calls directly. Instead, they are helper libraries that enable you to easily generate cXML responses within your language of choice. The SDK provides three response builders for the different channel types:

    • VoiceResponse, Build XML for handling voice calls
    • MessagingResponse, Build XML for handling SMS/MMS messages
    • FaxResponse, Build XML for handling faxes

See the cXML Specification for technical reference on the XML format and available verbs.

Node.js Python Ruby C# / .NET


Getting started with the SDKs

Node.js
Python
Ruby
C#

Installing the SDK

Install the package using NPM:

npm install @signalwire/compatibility-api

Initializing the Client

In order to use the NodeJS client, you must get your Space URL, Project ID, and API Token from your SignalWire Dashboard and initialize the client:

const { RestClient } = require("@signalwire/compatibility-api");

const client = RestClient(
"your-project",
"your-token",
{ signalwireSpaceUrl: "example.signalwire.com" }
);

// You can then use client to make calls, send messages, and more.

Using Environment Variables

Alternatively, you can use an environment variable to pass the Space URL:

  SIGNALWIRE_SPACE_URL=example.signalwire.com

With this approach, signalwireSpaceUrl will be pulled from the .env file instead of having to be passed as an argument:

  const { RestClient } = require("@signalwire/compatibility-api");

  const client = RestClient(
  "your-project",
  "your-token"
  );

Migrating from Twilio*

You can easily migrate from Twilio with minimal changes.

To get started, you will need to replace the Twilio client with the SignalWire client and update the from number to a valid SignalWire number.

Make sure to change the 'From' number!

When migrating to SignalWire, make sure to replace the from numbers with a valid SignalWire number.

// Replace these lines:
const twilio = require('twilio')
const response = new twilio.twiml.VoiceResponse()

// With:
const { RestClient } = require('@signalwire/compatibility-api')
const response = new RestClient.LaML.VoiceResponse()

// Now use response like you did before!
response.say('Hey, welcome to SignalWire!')

*Twilio and TwiML are trademarks of Twilio, Inc. SignalWire, Inc. and its products are not affiliated with or endorsed by Twilio, Inc.


Delete a Participant

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Deleting a participant will take them out of a conference call.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

CallSidstringRequiredformat: "uuid"

The unique identifier for the Participant call connected to this conference.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List all active Participants

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

The ability to read all of the active participants that are associated with this conference call. This will be returned as a list of participants.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

Query parameters

MutedbooleanOptional

Whether or not a participant is muted.

HoldbooleanOptional

Whether or not a participant is on hold.

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of results to return per page. The default is 50, and the maximum is 1000.

PageTokenstringOptional

A token used to retrieve a specific page of results. Must start with PA or PB.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page.

previous_page_uristring or null

The URI of the previous page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

participantslist of objects

List of participants.

Show 13 properties

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Retrieve a Participant

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single participant.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

CallSidstringRequiredformat: "uuid"

The unique identifier for the Participant call connected to this conference.

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier for the account that created this conference.

call_sidstringformat: "uuid"

The unique identifier for the Participant call connected to this conference.

call_sid_to_coachstring or nullformat: "uuid"

The unique identifier of the participant who is being coached.

coachingboolean

Whether the participant is coaching another call.

conference_sidstringformat: "uuid"

The unique identifier for the conference this participant is in.

date_createdstring

The date, in RFC 2822 format, this conference participant was created.

statusenum

The status of the conference call.

Allowed values:completedin-progress

date_updatedstring

The date, in RFC 2822 format, this conference participant was updated.

end_conference_on_exitboolean

Whether or not a conference ends when a participant leaves the conference call.

mutedboolean

Whether or not a participant is muted.

holdboolean

Whether or not a participant is on hold.

start_conference_on_enterboolean

Whether or not a conference will begin when this participant enters the conference call.

uristring

The URI for this conference participant.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a Participant

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update a participant.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

CallSidstringRequiredformat: "uuid"

The unique identifier for the Participant call connected to this conference.

Request

This endpoint expects an object.

AnnounceUrlstringOptionalformat: "uri"

The URL to send conference announcements to.

AnnounceMethodenumOptionalDefaults to POST

Whether the request to AnnounceUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

CoachingbooleanOptional

Whether the participant is coaching another call. Requires CallSidToCoach to be set.

CallSidToCoachstringOptionalformat: "uuid"

The unique identifier of the participant who is being coached. Required when Coaching is true.

HoldbooleanOptional

Whether or not a participant is on hold.

HoldMethodenumOptionalDefaults to GET

Whether the request to HoldUrl is a GET or a POST. Default is GET.

Allowed values:GETPOST

HoldUrlstringOptionalformat: "uri"

The URL to send hold music to that will be played when participant is on hold.

MutedbooleanOptional

Whether or not a participant is muted.

WaitUrlstringOptionalformat: "uri"

The URL for wait music to be played while a conference is not yet started.

WaitMethodenumOptionalDefaults to POST

Whether the request to WaitUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier for the account that created this conference.

call_sidstringformat: "uuid"

The unique identifier for the Participant call connected to this conference.

call_sid_to_coachstring or nullformat: "uuid"

The unique identifier of the participant who is being coached.

coachingboolean

Whether the participant is coaching another call.

conference_sidstringformat: "uuid"

The unique identifier for the conference this participant is in.

date_createdstring

The date, in RFC 2822 format, this conference participant was created.

statusenum

The status of the conference call.

Allowed values:completedin-progress

date_updatedstring

The date, in RFC 2822 format, this conference participant was updated.

end_conference_on_exitboolean

Whether or not a conference ends when a participant leaves the conference call.

mutedboolean

Whether or not a participant is muted.

holdboolean

Whether or not a participant is on hold.

start_conference_on_enterboolean

Whether or not a conference will begin when this participant enters the conference call.

uristring

The URI for this conference participant.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Delete a Conference Recording

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a conference recording. If successful, a 204 response with no body will be returned.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

SidstringRequiredformat: "uuid"

The unique identifier for the recording.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Get a Conference Recording

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Get details for a specific conference recording.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

SidstringRequiredformat: "uuid"

The unique identifier for the recording.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the recording.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this recording.

api_versionstring

The version of the SignalWire API.

call_sidstring or null

The unique identifier for the call. Always null for conference recordings.

conference_sidstring or nullformat: "uuid"

The unique identifier for the conference that is associated with this recording.

channelenum

The number of channels in a recording (singular key). Returns ‘1’ for mono or ‘2’ for stereo.

Allowed values:12

channelsenum

The number of channels in a recording. Returns '1' for mono or '2' for stereo.

Allowed values:12

date_createdstring

The date, in RFC 2822 format, this recording was created.

date_updatedstring

The date, in RFC 2822 format, this recording was updated.

start_timestring or null

The time, in RFC 2822 format, this recording started.

end_timestring or null

The time, in RFC 2822 format, this recording ended.

durationinteger

The length, in seconds, of the recording.

pricestring or null

The cost for the recording.

price_unitstring

The currency of the price of the recording.

sourceenum

How the recording was made.

Allowed values:ConferenceStartConferenceRecording

statusenum

The status of the recording.

Show 7 enum values

error_codestring or null

Further details about a failed recording.

uristring

The URI of the recording.

subresource_urisobject

Subresource URIs.

Show 1 property

encryption_detailsstring or null

Encryption details. Always null.

trimstring

Whether leading and trailing silence is trimmed from a recording.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


List Conference Recordings

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all recordings for a conference.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

Query parameters

DateCreatedstringOptional

Shows recordings that were created on the date provided. Format: YYYY-MM-DD.

DateCreated<stringOptional

Shows recordings that were created before the date provided. Format: YYYY-MM-DD.

DateCreated>stringOptional

Shows recordings that were created after the date provided. Format: YYYY-MM-DD.

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of results to return per page. The default is 50, and the maximum is 1000.

PageTokenstringOptional

A token used to retrieve a specific page of results. Must start with PA or PB.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page.

previous_page_uristring or null

The URI of the previous page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

recordingslist of objects

List of recordings.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Update a Conference Recording

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Pause, resume or stop a conference recording. You can control what happens while recording is paused (replace pause with silence or skip it).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

SidstringRequiredformat: "uuid"

The unique identifier for the recording.

Request

This endpoint expects an object.

StatusenumRequired

The status of the recording.

PauseBehaviorenumOptionalDefaults to silence

What to do while recording is paused. Default is silence.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the recording.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this recording.

api_versionstring

The version of the SignalWire API.

call_sidstring or null

The unique identifier for the call. Always null for conference recordings.

conference_sidstring or nullformat: "uuid"

The unique identifier for the conference that is associated with this recording.

channelenum

The number of channels in a recording (singular key). Returns ‘1’ for mono or ‘2’ for stereo.

channelsenum

The number of channels in a recording. Returns '1' for mono or '2' for stereo.

date_createdstring

The date, in RFC 2822 format, this recording was created.

date_updatedstring

The date, in RFC 2822 format, this recording was updated.

start_timestring or null

The time, in RFC 2822 format, this recording started.

end_timestring or null

The time, in RFC 2822 format, this recording ended.

durationinteger

The length, in seconds, of the recording.

pricestring or null

The cost for the recording.

price_unitstring

The currency of the price of the recording.

sourceenum

How the recording was made.

statusenum

The status of the recording.

error_codestring or null

Further details about a failed recording.

uristring

The URI of the recording.

subresource_urisobject

Subresource URIs.

encryption_detailsstring or null

Encryption details. Always null.

trimstring

Whether leading and trailing silence is trimmed from a recording.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Create a Conference Stream

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create a stream for an existing conference.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

Request

This endpoint expects an object.

UrlstringRequiredformat: "uri"

Absolute or relative URL. A WebSocket connection to the url will be established and audio will start flowing towards the Websocket server. The only supported protocol is wss. For security reasons ws is NOT supported.

NamestringOptional

Unique name for the Stream, per Conference. It is used to stop a Stream by name.

TrackenumOptionalDefaults to both_tracks

This attribute can be one of inbound_track, outbound_track, both_tracks. Default is both_tracks.

Allowed values:inbound_trackoutbound_trackboth_tracks

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to StatusCallback URL is a GET or a POST. Default is POST.

Allowed values:GETPOST

StatusCallbackstringOptionalformat: "uri"

The URL to request to when stream is available.

StreamCodecenumOptional

The audio codec to use for the stream.

Allowed values:PCMUPCMAL16L16@16000hL16@24000h

StreamRealTimebooleanOptional

Enable real-time streaming for the conference stream.

Parameter1.NamestringOptional

Custom parameter name to pass towards the WebSocket server. You can pass up to 99 custom parameters using Parameter1.Name through Parameter99.Name.

Parameter1.ValuestringOptional

Custom parameter value to pass towards the WebSocket server. You can pass up to 99 custom parameters using Parameter1.Value through Parameter99.Value.

Parameter2.NamestringOptional

Custom parameter name to pass towards the WebSocket server.

Parameter2.ValuestringOptional

Custom parameter value to pass towards the WebSocket server.

AuthorizationBearerTokenstringOptional

Bearer token for authorization with the WebSocket server.

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier for the account.

conference_sidstringformat: "uuid"

The unique identifier for the conference.

date_updatedstring

The date, in RFC 2822 GMT format, this stream was updated.

namestring or null

The name of the stream. May be null if not specified when creating the stream.

sidstringformat: "uuid"

The unique identifier for the stream.

statusenum

The status of the stream.

Allowed values:queuedin-progressstopped

uristring

The URI for the stream.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Update Conference Stream

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update an existing conference stream. Commonly used to stop/start streams or modify stream properties.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

ConferenceSidstringRequiredformat: "uuid"

The unique identifier for the conference this participant is in.

SidstringRequiredformat: "uuid"

The unique identifier for the stream.

Request

This endpoint expects an object.

StatusenumRequired

The status of the stream. Only 'stopped' is allowed.

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier for the account.

conference_sidstringformat: "uuid"

The unique identifier for the conference.

date_updatedstring

The date, in RFC 2822 GMT format, this stream was updated.

namestring or null

The name of the stream. May be null if not specified when creating the stream.

sidstringformat: "uuid"

The unique identifier for the stream.

statusenum

The status of the stream.

uristring

The URI for the stream.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List All Conferences

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

The ability to read all of the conferences that are associated with your Account. This will be returned as a list of conferences.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

Query parameters

DateCreatedstringOptional

Shows conferences that were created on the date provided. Format: YYYY-MM-DD.

DateCreated<stringOptional

Shows conferences that were created before the date provided. Format: YYYY-MM-DD.

DateCreated>stringOptional

Shows conferences that were created after the date provided. Format: YYYY-MM-DD.

DateUpdatedstringOptional

Shows conferences that were updated on the date provided. Format: YYYY-MM-DD.

DateUpdated<stringOptional

Shows conferences that were updated before the date provided. Format: YYYY-MM-DD.

DateUpdated>stringOptional

Shows conferences that were updated after the date provided. Format: YYYY-MM-DD.

FriendlyNamestringOptional<=64 characters

A description, up to 64 characters, of the conference room.

StatusenumOptional

The status of this conference.

Allowed values:initin-progresscompleted

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of results to return per page. The default is 50, and the maximum is 1000.

PageTokenstringOptional

A token used to retrieve a specific page of results. Must start with PA or PB.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page.

previous_page_uristring or null

The URI of the previous page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

conferenceslist of objects

List of conferences.

Show 10 properties

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Conference

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single conference.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

SidstringRequiredformat: "uuid"

The unique identifier for this conference.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for this conference.

account_sidstringformat: "uuid"

The unique identifier for the account that created this conference.

date_createdstring

The date, in RFC 2822 format, this conference was created.

date_updatedstring

The date, in RFC 2822 format, this conference was updated.

friendly_namestring

A description, up to 64 characters, of the conference room.

statusenum

The status of this conference.

Allowed values:initin-progresscompleted

api_versionstring

The version of the SignalWire API.

regionstring

The region where this conference audio was mixed.

uristring

The URI for this conference.

subresource_urisobject

The links to associated subresources.

Show 2 properties

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update Conference

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Allows you to modify the properties of a conference.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this conference.

SidstringRequiredformat: "uuid"

The unique identifier for this conference.

Request

This endpoint expects an object.

StatusenumOptional

The status of this conference. Only 'completed' is allowed to end the conference.

Allowed values:completed

AnnounceUrlstringOptionalformat: "uri"

The URL to send conference announcements to.

AnnounceMethodenumOptionalDefaults to POST

Whether the request to AnnounceUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for this conference.

account_sidstringformat: "uuid"

The unique identifier for the account that created this conference.

date_createdstring

The date, in RFC 2822 format, this conference was created.

date_updatedstring

The date, in RFC 2822 format, this conference was updated.

friendly_namestring

A description, up to 64 characters, of the conference room.

statusenum

The status of this conference.

Allowed values:initin-progresscompleted

api_versionstring

The version of the SignalWire API.

regionstring

The region where this conference audio was mixed.

uristring

The URI for this conference.

subresource_urisobject

The links to associated subresources.

Show 2 properties

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Create a cXML Script

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create a cXML script.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this script is associated with.

Request

This endpoint expects an object.

NamestringRequired>=1 character

A friendly name given to the cXML script. Required.

ContentsstringOptional

The cXML contents of the script. Must be valid XML with proper Mustache syntax if templates are used. Defaults to an empty Response element.

Response

Response returned when a cXML script is created.

sidstringformat: "uuid"

The unique identifier of the cXML script on SignalWire.

date_createdstring

The date and time, in ISO 8601 format, the script was created.

date_updatedstring

The date and time, in ISO 8601 format, the script was updated.

date_last_accessedstring or null

The date and time, in ISO 8601 format, the script was last accessed, or null if never accessed.

account_sidstringformat: "uuid"

The unique identifier for the account this script is associated with.

namestring

A friendly name given to the cXML script.

contentsstring

The contents of the cXML script.

request_urlstringformat: "uri"

The unique URL to the raw contents of the cXML script.

num_requestsinteger

The number of times this cXML script has been accessed.

api_versionstring

The version of the SignalWire API.

uristring

The URL of this resource.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete a cXML Script

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a cXML script.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this script is associated with.

SidstringRequiredformat: "uuid"

The unique identifier of the cXML script.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List All cXML Scripts

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Returns a list of your cXML scripts. The scripts are returned sorted by creation date, with the most recent appearing first.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this script is associated with.

Query parameters

NamestringOptional

A friendly name given to the cXML script.

PageintegerOptionalDefaults to 0

The page number to retrieve. Default is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of items per page. Default is 50, maximum is 1000.

PageTokenstringOptional

The token for cursor-based pagination. Must start with ‘PA’ or ‘PB’.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page, or null if there are no more pages.

previous_page_uristring or null

The URI of the previous page, or null if this is the first page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

laml_binslist of objects

List of cXML scripts.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a cXML Script

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a cXML script.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this script is associated with.

SidstringRequiredformat: "uuid"

The unique identifier of the cXML script.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier of the cXML script on SignalWire.

date_createdstring

The date and time, in ISO 8601 format, the script was created.

date_updatedstring

The date and time, in ISO 8601 format, the script was updated.

date_last_accessedstring or null

The date and time, in ISO 8601 format, the script was last accessed, or null if never accessed.

account_sidstringformat: "uuid"

The unique identifier for the account this script is associated with.

namestring

A friendly name given to the cXML script.

contentsstring

The contents of the cXML script.

request_urlstringformat: "uri"

The unique URL to the raw contents of the cXML script.

num_requestsinteger

The number of times this cXML script has been accessed.

api_versionstring

The version of the SignalWire API.

uristring

The URL of this resource.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a cXML Script

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update a cXML script.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice or Messaging or Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this script is associated with.

SidstringRequiredformat: "uuid"

The unique identifier of the cXML script.

Request

This endpoint expects an object.

NamestringRequired>=1 character

A friendly name given to the cXML script. Required.

ContentsstringOptional

The cXML contents of the script. Must be valid XML with proper Mustache syntax if templates are used.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier of the cXML script on SignalWire.

date_createdstring

The date and time, in ISO 8601 format, the script was created.

date_updatedstring

The date and time, in ISO 8601 format, the script was updated.

date_last_accessedstring or null

The date and time, in ISO 8601 format, the script was last accessed, or null if never accessed.

account_sidstringformat: "uuid"

The unique identifier for the account this script is associated with.

namestring

A friendly name given to the cXML script.

contentsstring

The contents of the cXML script.

request_urlstringformat: "uri"

The unique URL to the raw contents of the cXML script.

num_requestsinteger

The number of times this cXML script has been accessed.

api_versionstring

The version of the SignalWire API.

uristring

The URL of this resource.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Error codes

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

The API defines error codes to convey information about possible issues. Below is a list of all error codes as well as possible causes for the error code to appear.

Errors

4000

Error

  • The provided list of capabilities contains invalid capabilities for the phone number
  • The capabilities for the phone number are missing
4001

Error

  • The fee for the operation you are trying to perform costs more than the available balance
10000

Error

  • The argument passed is invalid
  • An attempt was made to cancel an in-progress call
  • An attempt was made to update a completed call
  • An attempt was made to update a conference or conference participant for a completed conference
  • An attempt was made to cancel an in-progress or finished fax
  • A required argument was left blank
  • An attempt was made to redact a message that is still in-progress
10001

Error

  • The operation attempted is not enabled on the Space
10003

Error

  • The permissions passed for the API token contain invalid selections
10004

Error

  • The subproject ID passed does not belong to the project used to authenticate the request
11100

Error

  • The URL passed to update the queue member is invalid
11200

Error

  • The attempt to deliver a webhook to your server timed out
11210

Error

  • DNS resolution failure due to bad hostname
11215

Error

  • Redirected too many times
11217

Error

  • The attempt to deliver a webhook to your server responded with a 4xx or 5xx status code
11220

Error

  • An error occurred during the SSL/TLS handshake
11251

Error

  • There was a fatal protocol violation
11300

Error

  • HTTP version not supported
11750

Error

  • The provided response body is too large
11751

Error

  • The total size of the media message request exceeds the maximum size limit
12100

Error

  • Your CXML document failed to parse. There could be a leading space, a missing or unclosed element, or incorrect attribute
12300

Error

  • The content type of the provided URL is invalid
13221

Error

  • The HTTP method attribute is invalid - it can only be ‘GET’ or ‘POST’
13222

Error

  • The attribute in sendDigits includes an invalid character. It may only contain ‘0123456789ABCD*#wW’
13621

Error

  • The provided event is not a valid recording callback event
13699

Error

  • The provided trim value for the recording is invalid
16002

Error

  • The provided conference attributes are invalid
  • The required conference attributes are missing
  • The participant to be coached is not in the provided conference
20001

Error

  • An unknown error occurred
20002

Error

  • The friendly name is missing
  • The friendly name must be between 1 and 64 characters long
  • The friendly name is invalid
20003

Error

  • There was an authentication error or API access is blocked for this feature
20009

Error

  • An attempt was made to delete a call that is not finished
  • An attempt was made to delete a fax that is not finished
  • An attempt was made to delete a message that is in-progress
  • An attempt was made to delete media for a message that is in-progress
20010

Error

  • The action you are attempting to perform is disabled for the account
20404

Error

  • The resource you are trying to access does not exist
20422

Error

  • The passed document is not a valid CXML document. The CXML document is missing a content type header or contains an invalid parameter/value
20429

Error

  • There were too many requests or throughput was exceeded
20504

Error

  • An internal error occurred
21205

Error

  • A phone call was attempted without a CXML URL or ApplicationSid
21208

Error

  • The provided Timeout parameter was invalid
  • The provided Timeout parameter was not a positive whole integer
21209

Error

  • The Method parameter provided was not GET or POST

  • The passed mode was not valid for the phone number

21210

Error

  • The From number provided was not a purchased or verified number in your project
  • The From number provided was not a purchased number in your project
  • An outbound message was attempted where the From number provided was a verified caller ID
21211

Error

  • The ‘To’ number provided was missing
  • The ‘To’ number provided has an invalid format
21212

Error

  • The From number provided was not E164 while dialing to a phone number
  • The From number provided must be an E164 number, caller ID string, or SIP URI
  • The From number provided must be an E164 number or client identifier
  • The From number provided has invalid format
21213

Error

  • An outbound call was attempted without a From number
21217

Error

  • The To phone number provided does not appear to be valid
21218

Error

  • The provided ApplicationSid is invalid
  • The provided ApplicationSid does not exist
21219

Error

  • The account limitations for this feature have been exceeded
  • The ‘To’ phone number is not a verified caller ID and the account is in Trial mode
  • The ‘To’ phone number is not a verified caller ID as required for Platform Free Trial messaging
21220

Error

  • The call cannot be redirected if it is not in-progress
  • A stream cannot be started for a call or conference in the current state
  • A recording cannot be started for a call that is not in-progress
21234

Error

  • The AMD parameters provided are not valid
21262

Error

  • The AMD status callback URL is missing
21401

Error

  • The phone number you’re attempting to purchase has an invalid format
21402

Error

  • The URL is not valid
  • The URL is not a fully qualified URL
21408

Error

  • The callback URL is not set
21420

Error

  • The passed VoiceApplicationSid or SmsApplicationSid could not be found
21421

Error

  • An area code or number must be provided to purchase a number
21451

Error

  • The area code is not formatted correctly
21456

Error

  • The supplied callback URL is not valid
21475

Error

  • An attempt was made to update a conference with an invalid status
21481

Error

  • The page token supplied was invalid
21601

Error

  • The phone number is not a valid SMS or MMS capable number
  • The phone number is not a voice capable number
  • The phone number is not a fax capable number
21602

Error

  • An attempt was made to send a message without a media URL or text body
21603

Error

  • The format of the ‘To’ or ‘From’ is invalid
  • The ‘From’ number is missing
  • The ‘To’ number has invalid format
  • The ‘To’ number is missing
21604

Error

  • The ‘To’ number is required to send a message
21606

Error

  • The ‘To’ number provided is not a mobile number
21610

Error

  • The message was blocked by the user or sent from a blacklisted number
21611

Error

  • The ‘From’ number has exceeded the maximum number of queued calls, messages, or faxes for the account
21612

Error

  • The Media provided is not supported
21614

Error

  • The ‘To’ number is not a valid mobile number
21617

Error

  • The concatenated message body exceeds the allowed character limit
21620

Error

  • The media URL(s) provided is/was invalid
  • The URL must be HTTP or HTTPS
21623

Error

  • The number of media files exceeds the allowed limit
21624

Error

  • The validity period provided is invalid
21626

Error

  • The callback event is not valid
21628

Error

  • The E911 address provided is invalid for this phone number
21701

Error

  • The number group provided is invalid or unrecognized
21703

Error

  • The number group provided does not have a phone number in the group capable of the operation you are attempting
21705

Error

  • The message was attempted without a From number or Number Group
21717

Error

  • The ‘From’ number must belong to an active campaign
22109

Error

  • The E911 address ID provided is not valid
22121

Error

  • This number was purchased too recently to release
30001

Error

  • The validity period for the message was exceeded
30002

Error

  • The account balance is insufficient to send the message
  • The account balance is insufficient for the operation you are attempting
30003

Error

  • The message was attempted but the destination handset is not reachable
30004

Error

  • The message was attempted but blocked by the destination carrier
30005

Error

  • The message was attempted but the destination handset is unknown
30006

Error

  • The message could not be routed to the destination handset
30007

Error

  • The message was flagged as a carrier violation
  • The message was filtered due to disallowed content
30008

Error

  • The message failed due to an unknown upstream error
30009

Error

  • The message’s validity period has expired at the carrier
30010

Error

  • The max price was exceeded by the cost of the message
  • The max price was exceeded by the cost of the call
30011

Error

  • MMS Sent: Expired, Rejected, Failed, or Not Supported
30022

Error

  • The US A2P 10DLC messaging rate limits were exceeded
30027

Error

  • The US A2P 10DLC T-Mobile Daily Message Limit was reached
31003

Error

  • The request resulted in a connection timeout
31922

Error

  • The websocket URL provided for the stream is invalid
  • The websocket URL schema is not WSS
  • The websocket URL has a trailing whitespace
  • The websocket URL has an embedded whitespace
32009

Error

  • The SIP domain dialed is not a registered endpoint
35125

Error

  • The PFT Campaign daily message cap has been met
  • The sole proprietor campaign daily message cap has been met
50509

Error

  • The redacted message body must be empty
  • An attempt to redact the message by passing a different body was made
53603

Error

  • The URL returned an HTTP redirect
  • The URL exceeded the max amount of HTTP redirects
  • There was an internal failure while attempting to process the media
54453

Error

  • The PageToken provided is invalid or missing
  • A PageToken must be included if your Page value is larger than 0
54454

Error

  • The page size provided is invalid
63011

Error

  • The message could not be delivered to the carrier
63019

Error

  • The media could not be downloaded
90000

Error

  • The wildcard is invalid while searching for available numbers
  • The format for the argument provided is invalid
  • The supplied parameter is unsupported
  • The supplied parameter can only be used in combination with InRegion
  • The E911 address cannot be set on creation - update the record after it is created
  • The specified capability could not be restricted on purchase

Warnings

13000

Warning

  • The Conference noun cannot be mixed with Number nouns
  • The Conference noun can only be used once inside a Dial verb
13215

Warning

  • The Dial noun has an invalid nested element
  • The only valid nested element for Dial is Number
  • The Dial noun includes too many nouns
  • The Refer noun has an invalid nested element
  • No verbs can be nested within Refer, and Refer cannot be nested in any other verbs
13223

Warning

  • The phone number in Dial is not formatted correctly. It must be E164
  • The phone number in Dial is missing
  • You are attempting to Dial something that is not a phone number
13238

Warning

  • There was an invalid Verb provided in the CXML executed by the waitUrl, holdUrl, or announceUrl
  • The executed CXML contains Dial, Gather, Hangup, or Record - these are not allowed
13243

Warning

  • The provided SIP URI is formatted incorrectly
13254

Warning

  • The SIP URI provided for Dial -> SIP is missing
  • The SIP URI provided for Dial -> SIP is not a public IP address
  • The SIP URI provided for Dial -> SIP does not resolve
13420

Warning

  • The URL provided for Play does not return audio
  • The URL provided for Play has an invalid content type
13750

Warning

  • The verb provided is not currently supported by the API version or your Space
13801

Warning

  • The Refer verb was used on a non SIP call leg
14204

Warning

  • The queue name is too short
  • The queue is missing in the attempt to Enqueue
21201

Warning

  • The outbound phone call request was missing a ‘To’ number
21455

Warning

  • The URL given to Play is not valid
32110

Warning

  • The SIP URI provided is invalid
  • The Refer verb contains an invalid SIP URI
53404

Warning

  • The supplied codecs are unsupported or invalid

Delete Fax Media

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete media for a fax. Cannot delete media for a fax that is in progress (queued, processing, sending, or receiving).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

FaxSidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

SidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

409

Conflict Error


List Fax Media

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all media for a fax.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

FaxSidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

Query parameters

PageintegerOptional>=0Defaults to 0

The page index to retrieve. Zero-indexed.

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when Page > 0.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page, or null if there are no more pages.

previous_page_uristring or null

The URI of the previous page, or null if this is the first page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

medialist of objects

List of media.

fax_medialist of objects

List of fax media (alias for media).

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Retrieve Fax Media

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve media for a fax.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

FaxSidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

SidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

Response

The request has succeeded.

account_sidstring

The unique identifier for the account.

content_typestring

The content type of the media.

date_createdstring

The date, in ISO 8601 format, this media was created.

date_updatedstring

The date, in ISO 8601 format, this media was updated.

fax_sidstring

The unique identifier for the fax.

sidstring

The unique identifier for the media.

uristring

The URI for the media.

urlstring

The URL for the media.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Delete a Fax

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a fax. Cannot delete a fax that is currently in progress (processing, sending, or receiving).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

SidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

409

Conflict Error


List all Faxes

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all faxes.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

Query parameters

PageintegerOptional>=0Defaults to 0

The page index to retrieve. Zero-indexed.

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when Page > 0.

DateCreatedAfterstringOptional

The date, in ISO 8601 format, after which the fax was sent.

DateCreatedOnOrBeforestringOptional

The date, in ISO 8601 format, on or before which the fax was sent.

FromstringOptional

The phone number, in E.164 format, the fax was sent from.

TostringOptional

The phone number, in E.164 format, the fax was sent to.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page, or null if there are no more pages.

previous_page_uristring or null

The URI of the previous page, or null if this is the first page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

faxeslist of objects

List of faxes.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Fax

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a fax.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

SidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

Response

The request has succeeded.

account_sidstring

The unique identifier for the account this fax is associated with.

api_versionstring

The version of the SignalWire API.

date_createdstring

The date and time, in ISO 8601 format, the fax was created.

date_updatedstring

The date and time, in ISO 8601 format, the fax was updated.

directionenum

The direction of the fax.

Allowed values:inboundoutbound

fromstring

The phone number, in E.164 format, the fax was sent from.

media_urlstring or null

The URL hosting the received media, or null if not available.

media_sidstring

The unique identifier for the media instance associated with the fax instance.

num_pagesstring or null

The number of pages in the fax document, or null if not yet determined.

pricestring or null

The cost of the fax, or null if not yet calculated.

price_unitstring

The currency, in ISO 4217 format, of the price.

qualityenum

The quality of the fax.

Allowed values:standardfinesuperfine

sidstring

The unique identifier of the fax.

statusenum

The status of the fax.

Show 10 enum values

tostring

The phone number, in E.164 format, the fax was sent to.

durationinteger

The time, in seconds, it took to deliver a fax.

linksobject

The URL links for resources associated with the fax.

Show 1 property

urlstring

The URL of this resource.

error_codestring or null

Error code for this resource, or null if no error.

error_messagestring or null

The description of this error, or null if no error.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Send a Fax

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Send a fax.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

Request

This endpoint expects an object.

MediaUrlstringRequired

The URL hosting the fax media to send.

TostringRequired

The phone number, in E.164 format, or SIP URI the fax will be sent to.

FromstringRequired

The phone number, in E.164 format, or client identifier the fax will be sent from.

QualityenumOptionalDefaults to fine

The quality of the fax. Default is 'fine'.

Allowed values:standardfinesuperfine

StatusCallbackstringOptional

The URL to send status callback requests to when the fax status changes.

StatusCallbackMethodenumOptionalDefaults to POST

The HTTP method to use for status callback requests. Default is 'POST'.

Allowed values:GETPOST

StatusCallbackEventlist of stringsOptional

The events that trigger status callback requests. Valid values: ‘initiated’, ‘ringing’, ‘answered’, ‘completed’, ‘ringing_forwarded’, ‘ringing_queued’. Default is [‘completed’].

StoreMediaenumOptionalDefaults to true

Whether to store the fax media. Default is 'true'.

Allowed values:truefalse

TtlintegerOptional5-300Defaults to 60

Time to live in minutes for the fax. Must be between 5 and 300. Default is 60.

SipAuthUsernamestringOptional

The username for SIP authentication.

SipAuthPasswordstringOptional

The password for SIP authentication.

Response

The request has succeeded.

account_sidstring

The unique identifier for the account this fax is associated with.

api_versionstring

The version of the SignalWire API.

date_createdstring

The date and time, in ISO 8601 format, the fax was created.

date_updatedstring

The date and time, in ISO 8601 format, the fax was updated.

directionenum

The direction of the fax.

Allowed values:inboundoutbound

fromstring

The phone number, in E.164 format, the fax was sent from.

media_urlstring or null

The URL hosting the received media, or null if not available.

media_sidstring

The unique identifier for the media instance associated with the fax instance.

num_pagesstring or null

The number of pages in the fax document, or null if not yet determined.

pricestring or null

The cost of the fax, or null if not yet calculated.

price_unitstring

The currency, in ISO 4217 format, of the price.

qualityenum

The quality of the fax.

Allowed values:standardfinesuperfine

sidstring

The unique identifier of the fax.

statusenum

The status of the fax.

Show 10 enum values

tostring

The phone number, in E.164 format, the fax was sent to.

durationinteger

The time, in seconds, it took to deliver a fax.

linksobject

The URL links for resources associated with the fax.

Show 1 property

urlstring

The URL of this resource.

error_codestring or null

Error code for this resource, or null if no error.

error_messagestring or null

The description of this error, or null if no error.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Update a Fax

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Allows you to cancel a queued fax. Only faxes in ‘queued’ status can be canceled.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Fax.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

SidstringRequiredformat: "uuid"

The Fax ID that uniquely identifies the Fax.

Request

This endpoint expects an object.

StatusenumRequired

The status to set. Only 'canceled' is allowed. The fax must be in 'queued' status to be canceled.

Response

The request has succeeded.

account_sidstring

The unique identifier for the account this fax is associated with.

api_versionstring

The version of the SignalWire API.

date_createdstring

The date and time, in ISO 8601 format, the fax was created.

date_updatedstring

The date and time, in ISO 8601 format, the fax was updated.

directionenum

The direction of the fax.

fromstring

The phone number, in E.164 format, the fax was sent from.

media_urlstring or null

The URL hosting the received media, or null if not available.

media_sidstring

The unique identifier for the media instance associated with the fax instance.

num_pagesstring or null

The number of pages in the fax document, or null if not yet determined.

pricestring or null

The cost of the fax, or null if not yet calculated.

price_unitstring

The currency, in ISO 4217 format, of the price.

qualityenum

The quality of the fax.

sidstring

The unique identifier of the fax.

statusenum

The status of the fax.

tostring

The phone number, in E.164 format, the fax was sent to.

durationinteger

The time, in seconds, it took to deliver a fax.

linksobject

The URL links for resources associated with the fax.

urlstring

The URL of this resource.

error_codestring or null

Error code for this resource, or null if no error.

error_messagestring or null

The description of this error, or null if no error.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Import a Phone Number

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Import a phone number you already own to your SignalWire Space to use with SignalWire APIs.

Note: This is a Partner API. To enable it on your SignalWire Space, contact Sales.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this phone number.

Request

This endpoint expects an object.

numberstringRequiredformat: "^\+\d{5,30}$"``6-31 characters

The phone number to import in E.164 format. Must start with + followed by 5-30 digits.

number_typeenumRequired

The type of phone number being imported.

Allowed values:longcodetollfree

capabilitieslist of enumsOptional

The capabilities to enable for this phone number. If not provided, defaults to all capabilities (sms, voice, fax, mms). If provided, must include at least one capability.

Allowed values:smsvoicefaxmms

Response

The request has succeeded and a new resource has been created as a result.

account_idstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

address_requirementsenum

Whether or not a registered address with SignalWire is required. Always 'none'.

Allowed values:noneanylocalforeign

address_sidstring or null

The unique identifier for the address associated with this phone number. Always null.

api_versionstring

The version of the SignalWire API.

betaboolean

New numbers on SignalWire are marked as beta. Always false.

capabilitiesobject

Whether or not a number can receive calls and messages.

Show 4 properties

country_codestring

The ISO 3166-1 alpha-2 country code for this phone number.

date_createdstring

The date, in RFC 2822 format, this phone number was created.

date_updatedstring

The date, in RFC 2822 format, this phone number was updated.

emergency_address_sidstring or null

The unique identifier of the address associated with E911 for this phone number, or null if not set.

emergency_statusstring

Whether the phone route has an active E911 address associated. 'Active' or 'Inactive'.

friendly_namestring

A formatted version of the number.

identity_sidstring or null

The unique identifier for the identity associated with this phone number. Always null.

originenum

The origin of the phone number.

Allowed values:signalwirehosted

phone_numberstring

The incoming number in E.164 format.

sidstring

The unique identifier for this phone number.

sms_application_sidstring or null

The unique identifier for the application associated with SMS handling on this phone number, or null if not set.

sms_fallback_methodstring

Whether the request to SmsFallbackUrl is a GET or a POST.

sms_fallback_urlstring or null

The URL to request if errors occur when fetching SmsUrl, or null if not set.

sms_methodstring

Whether the request to SmsUrl is a GET or a POST.

sms_urlstring or null

The URL to request when an incoming SMS is received, or null if not set.

status_callbackstring or null

The URL to request to pass status updates to, or null if not set.

status_callback_methodstring

Whether the request to StatusCallback is a GET or a POST.

trunk_sidstring or null

The unique identifier for the Trunk associated with this phone number. Always null.

uristring

The URI for this number.

voice_application_sidstring or null

The unique identifier for the application associated with call handling on this phone number, or null if not set.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's name in the database. Always null.

voice_fallback_methodstring

Whether the request to VoiceFallbackUrl is a GET or a POST.

voice_fallback_urlstring or null

The URL to request if errors occur when fetching Url, or null if not set.

voice_methodstring

Whether the request to Url is a GET or a POST.

voice_urlstring or null

The URL to request when an incoming call is received, or null if not set.

verification_statusstring

The verification status for toll-free numbers. Only present for toll-free numbers.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Create an Incoming Phone Number

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Purchase and provision a new incoming phone number.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this phone number.

Request

This endpoint expects an object.

PhoneNumberstringRequiredformat: "^\+\d{5,17}$"``6-18 characters

The phone number to purchase in E.164 format. Must start with + followed by 5-17 digits.

FriendlyNamestringOptional

A friendly name for the phone number. If not provided, the formatted phone number will be used.

SmsApplicationSidstringOptionalformat: "uuid"

The unique identifier for the application associated with SMS handling on this phone number.

SmsFallbackMethodenumOptionalDefaults to POST

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

SmsFallbackUrlstringOptionalformat: "uri"

The URL to request if errors occur when fetching SmsUrl.

SmsMethodenumOptionalDefaults to POST

Whether the request to SmsUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

SmsUrlstringOptionalformat: "uri"

The URL to request when an incoming SMS is received.

StatusCallbackstringOptionalformat: "uri"

The URL to request to pass status updates to. See the Incoming call status callback webhook for the payload your URL will receive.

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to StatusCallback is a GET or a POST. Default is POST.

Allowed values:GETPOST

VoiceApplicationSidstringOptionalformat: "uuid"

The unique identifier for the application associated with call handling on this phone number.

VoiceFallbackMethodenumOptionalDefaults to POST

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

VoiceFallbackUrlstringOptionalformat: "uri"

The URL to request if errors occur when fetching VoiceUrl.

VoiceMethodenumOptionalDefaults to POST

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

Allowed values:GETPOST

VoiceReceiveModeenumOptionalDefaults to voice

Whether this number can receive voice calls or faxes. Default is voice.

Allowed values:voicefax

VoiceUrlstringOptionalformat: "uri"

The URL to request when an incoming call is received.

Response

Response returned when an incoming phone number is created.

account_idstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

address_requirementsenum

Whether or not a registered address with SignalWire is required. Always 'none'.

Allowed values:noneanylocalforeign

address_sidstring or null

The unique identifier for the address associated with this phone number. Always null.

api_versionstring

The version of the SignalWire API.

betaboolean

New numbers on SignalWire are marked as beta. Always false.

capabilitiesobject

Whether or not a number can receive calls and messages.

Show 4 properties

country_codestring

The ISO 3166-1 alpha-2 country code for this phone number.

date_createdstring

The date, in RFC 2822 format, this phone number was created.

date_updatedstring

The date, in RFC 2822 format, this phone number was updated.

emergency_address_sidstring or null

The unique identifier of the address associated with E911 for this phone number, or null if not set.

emergency_statusstring

Whether the phone route has an active E911 address associated. 'Active' or 'Inactive'.

friendly_namestring

A formatted version of the number.

identity_sidstring or null

The unique identifier for the identity associated with this phone number. Always null.

originenum

The origin of the phone number.

Allowed values:signalwirehosted

phone_numberstring

The incoming number in E.164 format.

sidstring

The unique identifier for this phone number.

sms_application_sidstring or null

The unique identifier for the application associated with SMS handling on this phone number, or null if not set.

sms_fallback_methodstring

Whether the request to SmsFallbackUrl is a GET or a POST.

sms_fallback_urlstring or null

The URL to request if errors occur when fetching SmsUrl, or null if not set.

sms_methodstring

Whether the request to SmsUrl is a GET or a POST.

sms_urlstring or null

The URL to request when an incoming SMS is received, or null if not set.

status_callbackstring or null

The URL to request to pass status updates to, or null if not set.

status_callback_methodstring

Whether the request to StatusCallback is a GET or a POST.

trunk_sidstring or null

The unique identifier for the Trunk associated with this phone number. Always null.

uristring

The URI for this number.

voice_application_sidstring or null

The unique identifier for the application associated with call handling on this phone number, or null if not set.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's name in the database. Always null.

voice_fallback_methodstring

Whether the request to VoiceFallbackUrl is a GET or a POST.

voice_fallback_urlstring or null

The URL to request if errors occur when fetching Url, or null if not set.

voice_methodstring

Whether the request to Url is a GET or a POST.

voice_urlstring or null

The URL to request when an incoming call is received, or null if not set.

verification_statusstring

The verification status for toll-free numbers. Only present for toll-free numbers.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete an incoming phone number

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Release an incoming phone number. The number will be removed from your account.

Note: Numbers cannot be released within a cooldown period after purchase.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this phone number.

SidstringRequiredformat: "uuid"

The unique identifier of the phone number.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

409

Conflict Error

422

Unprocessable Entity Error


List all Incoming Phone Numbers

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all incoming phone numbers.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this phone number.

Query parameters

PageintegerOptional>=0Defaults to 0

The page index to retrieve. Zero-indexed.

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when Page > 0.

PhoneNumberstringOptional

Only show numbers that match this pattern.

FriendlyNamestringOptional

Only show numbers with this friendly name.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page, or null if there are no more pages.

previous_page_uristring or null

The URI of the previous page, or null if this is the first page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

incoming_phone_numberslist of objects

List of incoming phone numbers.

Show 33 properties

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve an incoming phone number

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve an incoming phone number.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this phone number.

SidstringRequiredformat: "uuid"

The unique identifier of the phone number.

Response

The request has succeeded.

account_idstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

address_requirementsenum

Whether or not a registered address with SignalWire is required. Always 'none'.

Allowed values:noneanylocalforeign

address_sidstring or null

The unique identifier for the address associated with this phone number. Always null.

api_versionstring

The version of the SignalWire API.

betaboolean

New numbers on SignalWire are marked as beta. Always false.

capabilitiesobject

Whether or not a number can receive calls and messages.

Show 4 properties

country_codestring

The ISO 3166-1 alpha-2 country code for this phone number.

date_createdstring

The date, in RFC 2822 format, this phone number was created.

date_updatedstring

The date, in RFC 2822 format, this phone number was updated.

emergency_address_sidstring or null

The unique identifier of the address associated with E911 for this phone number, or null if not set.

emergency_statusstring

Whether the phone route has an active E911 address associated. 'Active' or 'Inactive'.

friendly_namestring

A formatted version of the number.

identity_sidstring or null

The unique identifier for the identity associated with this phone number. Always null.

originenum

The origin of the phone number.

Allowed values:signalwirehosted

phone_numberstring

The incoming number in E.164 format.

sidstring

The unique identifier for this phone number.

sms_application_sidstring or null

The unique identifier for the application associated with SMS handling on this phone number, or null if not set.

sms_fallback_methodstring

Whether the request to SmsFallbackUrl is a GET or a POST.

sms_fallback_urlstring or null

The URL to request if errors occur when fetching SmsUrl, or null if not set.

sms_methodstring

Whether the request to SmsUrl is a GET or a POST.

sms_urlstring or null

The URL to request when an incoming SMS is received, or null if not set.

status_callbackstring or null

The URL to request to pass status updates to, or null if not set.

status_callback_methodstring

Whether the request to StatusCallback is a GET or a POST.

trunk_sidstring or null

The unique identifier for the Trunk associated with this phone number. Always null.

uristring

The URI for this number.

voice_application_sidstring or null

The unique identifier for the application associated with call handling on this phone number, or null if not set.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's name in the database. Always null.

voice_fallback_methodstring

Whether the request to VoiceFallbackUrl is a GET or a POST.

voice_fallback_urlstring or null

The URL to request if errors occur when fetching Url, or null if not set.

voice_methodstring

Whether the request to Url is a GET or a POST.

voice_urlstring or null

The URL to request when an incoming call is received, or null if not set.

verification_statusstring

The verification status for toll-free numbers. Only present for toll-free numbers.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update an incoming phone number

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update an incoming phone number.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Numbers.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this phone number.

SidstringRequiredformat: "uuid"

The unique identifier of the phone number.

Request

This endpoint expects an object.

AccountSidstringOptionalformat: "uuid"

The unique identifier for an account to which the number should be transferred. Must be within the same Space.

EmergencyAddressSidstringOptionalformat: "uuid"

The unique identifier of the address associated with E911 for this phone number. Not supported for toll-free numbers or certain providers.

FriendlyNamestringOptional1-255 characters

A friendly name for the phone number.

SmsApplicationSidstringOptionalformat: "uuid"

The unique identifier for the application associated with SMS handling on this phone number.

SmsFallbackMethodenumOptionalDefaults to POST

Whether the request to SmsFallbackUrl is a GET or a POST. Default is POST.

SmsFallbackUrlstringOptionalformat: "uri"

The URL to request if errors occur when fetching SmsUrl.

SmsMethodenumOptionalDefaults to POST

Whether the request to SmsUrl is a GET or a POST. Default is POST.

SmsUrlstringOptionalformat: "uri"

The URL to request when an incoming SMS is received.

StatusCallbackstringOptionalformat: "uri"

The URL to request to pass status updates to.

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to StatusCallback is a GET or a POST. Default is POST.

VoiceApplicationSidstringOptionalformat: "uuid"

The unique identifier for the application associated with call handling on this phone number.

VoiceFallbackMethodenumOptionalDefaults to POST

Whether the request to VoiceFallbackUrl is a GET or a POST. Default is POST.

VoiceFallbackUrlstringOptionalformat: "uri"

The URL to request if errors occur when fetching VoiceUrl.

VoiceMethodenumOptionalDefaults to POST

Whether the request to VoiceUrl is a GET or a POST. Default is POST.

VoiceReceiveModeenumOptional

Whether this number can receive voice calls or faxes.

VoiceUrlstringOptionalformat: "uri"

The URL to request when an incoming call is received.

Response

The request has succeeded.

account_idstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this phone number.

address_requirementsenum

Whether or not a registered address with SignalWire is required. Always 'none'.

address_sidstring or null

The unique identifier for the address associated with this phone number. Always null.

api_versionstring

The version of the SignalWire API.

betaboolean

New numbers on SignalWire are marked as beta. Always false.

capabilitiesobject

Whether or not a number can receive calls and messages.

country_codestring

The ISO 3166-1 alpha-2 country code for this phone number.

date_createdstring

The date, in RFC 2822 format, this phone number was created.

date_updatedstring

The date, in RFC 2822 format, this phone number was updated.

emergency_address_sidstring or null

The unique identifier of the address associated with E911 for this phone number, or null if not set.

emergency_statusstring

Whether the phone route has an active E911 address associated. 'Active' or 'Inactive'.

friendly_namestring

A formatted version of the number.

identity_sidstring or null

The unique identifier for the identity associated with this phone number. Always null.

originenum

The origin of the phone number.

phone_numberstring

The incoming number in E.164 format.

sidstring

The unique identifier for this phone number.

sms_application_sidstring or null

The unique identifier for the application associated with SMS handling on this phone number, or null if not set.

sms_fallback_methodstring

Whether the request to SmsFallbackUrl is a GET or a POST.

sms_fallback_urlstring or null

The URL to request if errors occur when fetching SmsUrl, or null if not set.

sms_methodstring

Whether the request to SmsUrl is a GET or a POST.

sms_urlstring or null

The URL to request when an incoming SMS is received, or null if not set.

status_callbackstring or null

The URL to request to pass status updates to, or null if not set.

status_callback_methodstring

Whether the request to StatusCallback is a GET or a POST.

trunk_sidstring or null

The unique identifier for the Trunk associated with this phone number. Always null.

uristring

The URI for this number.

voice_application_sidstring or null

The unique identifier for the application associated with call handling on this phone number, or null if not set.

voice_caller_id_lookupboolean or null

Whether or not to look up a caller's name in the database. Always null.

voice_fallback_methodstring

Whether the request to VoiceFallbackUrl is a GET or a POST.

voice_fallback_urlstring or null

The URL to request if errors occur when fetching Url, or null if not set.

voice_methodstring

Whether the request to Url is a GET or a POST.

voice_urlstring or null

The URL to request when an incoming call is received, or null if not set.

verification_statusstring

The verification status for toll-free numbers. Only present for toll-free numbers.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Incoming call status callback

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Payload sent by SignalWire to your Inbound Call Status Callback URL for inbound calls to a phone number.

Configure StatusCallback at the phone number level via the dashboard ( Phone Numbers → select a number → Phone Number Settings) or programmatically via the create or update Incoming Phone Number API endpoints.

By default, the webhook fires only when the call is completed or failed, making it well-suited for tracking inbound call success rate, call quality, and total call volume in a call center context.

Payload

The payload of this webhook request is an object.

CallSidstringRequired

A unique identifier for the call. May be used to later retrieve this call from the REST API.

AccountSidstringRequired

The unique ID of the project this call is associated with.

FromstringRequired

The From number in E.164 format.

TostringRequired

The To number in E.164 format.

TimestampstringRequired

The timestamp of the call creation date/time.

CallStatusenumRequired

The status of the call. For this callback, the value will be either failed or completed.

Allowed values:failedcompleted

CallDurationstringRequired

The duration, in seconds, of the call.

AudioInMosstringRequired

A mean opinion score on a scale of 1-5 that represents the quality of the call.

Response

200

Webhook received


Delete Message Media

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete media for a message. Media cannot be deleted if the parent message is still in progress (initiated or queued status).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

MessageSidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

SidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List Message Media

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all media for a message.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

MessageSidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

Query parameters

DateCreatedstringOptional

Only return media created on this particular date, formatted as YYYY-MM-DD in UTC.

DateCreated<stringOptional

Only return media created before this date, formatted as YYYY-MM-DD in UTC.

DateCreated>stringOptional

Only return media created after this date, formatted as YYYY-MM-DD in UTC.

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Default is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of items per page. Default is 50, maximum is 1000.

PageTokenstringOptional

The token for cursor-based pagination. Must start with ‘PA’ or ‘PB’.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page, or null if there are no more pages.

previous_page_uristring or null

The URI of the previous page, or null if this is the first page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

media_listlist of objects

List of media.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve Message Media

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve media for a message.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

MessageSidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

SidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier for the account.

content_typestring

The content type of the media.

date_createdstring

The date, in RFC 2822 GMT format, this media was created.

date_updatedstring

The date, in RFC 2822 GMT format, this media was updated.

parent_sidstringformat: "uuid"

The unique identifier for the message.

sidstringformat: "uuid"

The unique identifier for the media.

uristring

The URI for the media.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Create a Message

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create and send a message.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

Request

This endpoint expects an object.

TostringRequired

The phone number in E.164 format that will receive the message.

FromstringOptional

The phone number in E.164 format that will send the message. Either From or MessagingServiceSid must be provided.

BodystringOptional

The text of the message. Either Body or MediaUrl must be provided.

MediaUrlstring or list of stringsOptional

URL(s) of media you wish to attach and send with the message. Can be specified multiple times for up to 8 media items.

Show 2 variants

SendAsMmsbooleanOptional

When set to true, forces the message to be sent as an MMS.

ApplicationSidstringOptionalformat: "uuid"

The SID of a SignalWire cXML Application used to configure the message's status callback.

MaxPricestringOptionalformat: "^\d+\.?\d{0,4}$"

The maximum price in USD acceptable for the message to be sent. Format: decimal with up to 4 decimal places.

StatusCallbackstringOptionalformat: "uri"

A URL endpoint to receive callbacks each time the status of the message changes. See the SMS status callback webhook for the payload your URL will receive.

ValidityPeriodintegerOptional1-172800Defaults to 14400

The number of seconds a message will allow being queued before canceling. Must be between 1 and 172800 (48 hours). Default is 14400 (4 hours).

MessagingServiceSidstringOptionalformat: "uuid"

The ID of a number group to use when sending the message. Either From or MessagingServiceSid must be provided.

Response

Response returned when a message is created.

account_sidstringformat: "uuid"

The unique identifier of the project that sent or received this message.

api_versionstring

The version number of the SignalWire cXML REST API used to handle this message.

bodystring or null

The text of the message. Up to 1600 characters long. May be null if filtered for spam.

num_segmentsinteger

The number of segments that make up the entire message.

num_mediainteger

The number of media files that were included with the message.

date_createdstring

The date and time the message was created in RFC 2822 format.

date_sentstring or null

The date and time the message was sent in RFC 2822 format, or null if not yet sent.

date_updatedstring

The date and time the message was last updated in RFC 2822 format.

directionenum

The direction of the message.

Allowed values:inboundoutbound-apioutbound-calloutbound-reply

error_codestring or null

If an error has occurred on the message, the error code will give you a specific code, or null if no error.

error_messagestring or null

A human readable description of the error that occurred, or null if no error.

fromstring

The phone number in E.164 format that sent the message.

pricefloat or null

The cost of the individual message billed to your project, or null if not yet calculated.

price_unitstring

The currency in which price is charged as.

sidstringformat: "uuid"

A unique ID that identifies this specific message.

statusenum

Current status of the message.

Show 7 enum values

tostring

The phone number in E.164 format that received the message.

messaging_service_sidstring or nullformat: "uuid"

If a number group was used when sending an outbound message, the number group's ID will be present, or null otherwise.

uristring

The URI of this particular message.

subresource_urisobject

The URIs for any subresources associated with this message.

Show 1 property

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete a Message

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a message. Messages that are still in progress (queued status) cannot be deleted.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

SidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List all Messages

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all messages.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

Query parameters

DateSentstringOptional

Only return messages sent on this particular date, formatted as YYYY-MM-DD in UTC.

DateSent<stringOptional

Only return messages sent before this date, formatted as YYYY-MM-DD in UTC.

DateSent>stringOptional

Only return messages sent after this date, formatted as YYYY-MM-DD in UTC.

FromstringOptional

The phone number in E.164 format. For inbound messages, this will be the remote phone number who sent the message. For outbound messages, this will be one of your SignalWire phone numbers.

TostringOptional

The phone number in E.164 format that received the message. For inbound messages, this is one of your SignalWire phone numbers; for outbound messages, this is the remote phone number that received the message.

StatusenumOptional

Current status of the message.

Show 7 enum values

PageintegerOptional>=0Defaults to 0

The page number to retrieve. Default is 0.

PageSizeintegerOptional1-1000Defaults to 50

The number of items per page. Default is 50, maximum is 1000.

PageTokenstringOptional

The token for cursor-based pagination. Must start with ‘PA’ or ‘PB’.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page, or null if there are no more pages.

previous_page_uristring or null

The URI of the previous page, or null if this is the first page.

pageinteger

The current page number.

page_sizeinteger

The number of items per page.

messageslist of objects

List of messages.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Message

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single message.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

SidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier of the project that sent or received this message.

api_versionstring

The version number of the SignalWire cXML REST API used to handle this message.

bodystring or null

The text of the message. Up to 1600 characters long. May be null if filtered for spam.

num_segmentsinteger

The number of segments that make up the entire message.

num_mediainteger

The number of media files that were included with the message.

date_createdstring

The date and time the message was created in RFC 2822 format.

date_sentstring or null

The date and time the message was sent in RFC 2822 format, or null if not yet sent.

date_updatedstring

The date and time the message was last updated in RFC 2822 format.

directionenum

The direction of the message.

Allowed values:inboundoutbound-apioutbound-calloutbound-reply

error_codestring or null

If an error has occurred on the message, the error code will give you a specific code, or null if no error.

error_messagestring or null

A human readable description of the error that occurred, or null if no error.

fromstring

The phone number in E.164 format that sent the message.

pricefloat or null

The cost of the individual message billed to your project, or null if not yet calculated.

price_unitstring

The currency in which price is charged as.

sidstringformat: "uuid"

A unique ID that identifies this specific message.

statusenum

Current status of the message.

Show 7 enum values

tostring

The phone number in E.164 format that received the message.

messaging_service_sidstring or nullformat: "uuid"

If a number group was used when sending an outbound message, the number group's ID will be present, or null otherwise.

uristring

The URI of this particular message.

subresource_urisobject

The URIs for any subresources associated with this message.

Show 1 property

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a Message

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update a message body after it has been sent. Currently, the only supported update is redacting the message by setting the body to an empty string. Messages that are still in progress (queued or initiated status) cannot be updated.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Messaging.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier of the project that sent or received this message.

SidstringRequiredformat: "uuid"

A unique ID that identifies this specific message.

Request

This endpoint expects an object.

BodystringRequired<=0 characters

The new body of the message. Must be an empty string to redact the message content.

Response

The request has succeeded.

account_sidstringformat: "uuid"

The unique identifier of the project that sent or received this message.

api_versionstring

The version number of the SignalWire cXML REST API used to handle this message.

bodystring or null

The text of the message. Up to 1600 characters long. May be null if filtered for spam.

num_segmentsinteger

The number of segments that make up the entire message.

num_mediainteger

The number of media files that were included with the message.

date_createdstring

The date and time the message was created in RFC 2822 format.

date_sentstring or null

The date and time the message was sent in RFC 2822 format, or null if not yet sent.

date_updatedstring

The date and time the message was last updated in RFC 2822 format.

directionenum

The direction of the message.

error_codestring or null

If an error has occurred on the message, the error code will give you a specific code, or null if no error.

error_messagestring or null

A human readable description of the error that occurred, or null if no error.

fromstring

The phone number in E.164 format that sent the message.

pricefloat or null

The cost of the individual message billed to your project, or null if not yet calculated.

price_unitstring

The currency in which price is charged as.

sidstringformat: "uuid"

A unique ID that identifies this specific message.

statusenum

Current status of the message.

tostring

The phone number in E.164 format that received the message.

messaging_service_sidstring or nullformat: "uuid"

If a number group was used when sending an outbound message, the number group's ID will be present, or null otherwise.

uristring

The URI of this particular message.

subresource_urisobject

The URIs for any subresources associated with this message.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


SMS status callback

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Payload sent by SignalWire to your SMS Status Callback URL when the status of an SMS/MMS message changes.

Configure this callback using the StatusCallback parameter when sending an outgoing message.

There are 8 possible message statuses:

StatusDescription
queuedThe API request was processed and the message is waiting to be sent.
sendingThe message is being transmitted to the nearest upstream carrier.
sentThe nearest upstream carrier has accepted the message.
deliveredThe nearest upstream carrier confirmed receipt of the message.
undeliveredSignalWire received notice from the upstream carrier that the message was not delivered.
failedSignalWire could not send the message. There is no charge for failed messages.
receivingSignalWire has received and is currently processing an inbound message.
receivedThe inbound message has been received by a number in your account.

SignalWire only marks a message as delivered when it receives a Delivery Receipt (DLR) from the receiving carrier confirming entry into the end carrier’s network. sent means the message left SignalWire and reached the downstream peer. Some carriers send delayed DLRs; others send none at all. MMS messages never receive DLRs, so they will only ever reach sent status.

Payload

The payload of this webhook request is an object.

MessageStatusenumRequired

The current status of the message at the time of the callback. One of: queued, sending, sent, delivered, undelivered, failed, receiving, received.

Show 8 enum values

MessageSidstringRequired

The unique ID of this message.

AccountSidstringRequired

The unique ID of the project this message is associated with.

FromstringRequired

The From number of the message.

TostringRequired

The To number of the message.

BodystringRequired

The body of the message.

NumMediaintegerRequired

The number of media files that were included with the message.

NumSegmentsintegerRequired

The number of segments that make up the entire message. If the body exceeds 160 GSM-7 characters or 70 UCS-2 characters, it is automatically split into smaller segments that are annotated for reconstruction on the recipient handset.

ErrorCodestringOptional

If the message has failed or is undelivered, the error code may provide more information about what went wrong.

Response

200

Webhook received


Paging

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

For resources that return many instances, the API will return partial “pages” of results. These results will contain meta information about the entire list of results you can use to see more of the list.

AttributeTypeDescription
uristringThe current page’s URI.
first_page_uristringThe first page in the result set’s URI.
next_page_uristringThe next page in the result set’s URI.
previous_page_uristringThe previous page in the result set’s URI.
pageintegerThe current page number, using zero-based number (so the first page would be 0).
page_sizestringThe number of results per page. The last page may have fewer items.

Here is an example of a paged result of messages with one message per page.

{
  "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages?Page=0&PageSize=1",
  "first_page_uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages?Page=0&PageSize=1",
  "next_page_uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages?Page=1&PageSize=1&PageToken=PA95f7fba1-aeb7-4750-9092-47525b7a7cad",
  "previous_page_uri": null,
  "page": 0,
  "page_size": 1,
  "messages": [\
    {\
      "account_sid": "446e9986-0848-4d46-a617-48793c5f5e07",\
      "api_version": "2010-04-01",\
      "body": "Hello World!",\
      "num_segments": 1,\
      "num_media": 0,\
      "date_created": "Tue, 14 Aug 2018 19:37:39 +0000",\
      "date_sent": "Tue, 14 Aug 2018 19:37:41 +0000",\
      "date_updated": "Tue, 14 Aug 2018 19:37:44 +0000",\
      "direction": "outbound-api",\
      "error_code": null,\
      "error_message": null,\
      "from": "+15551234567",\
      "price": 0.005,\
      "price_unit": "USD",\
      "sid": "8a8e5ec4-071a-408e-948c-2429da869cc9",\
      "status": "delivered",\
      "to": "+15557654321",\
      "uri": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/8a8e5ec4-071a-408e-948c-2429da869cc9",\
      "subresource_uris": {\
        "media": "/api/laml/2010-04-01/Accounts/446e9986-0848-4d46-a617-48793c5f5e07/Messages/8a8e5ec4-071a-408e-948c-2429da869cc9/Media"\
      }\
    }\
  ]
}
Always use the latest next and previous page URIs

You should always use the returned next_page_uri or previous_page_uri when traversing to the next or previous page in the result set. This will ensure you properly page through all of resources and your result set is not affected by new resources being created, or paging scheme changing.


List All Queue Members

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve all members currently waiting in a queue. Results are returned as a paginated list ordered by enqueue time.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

QueueSidstringRequiredformat: "uuid"

The unique identifier for the queue.

Query parameters

PageintegerOptional>=0Defaults to 0

The page number to retrieve (zero-indexed).

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when navigating to pages beyond the first.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page. Null if there are no more pages.

previous_page_uristring or null

The URI of the previous page. Null if this is the first page.

pageinteger

The current page number (zero-indexed).

page_sizeinteger

The number of items per page.

queue_memberslist of objects

List of queue members.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Retrieve a Queue Member

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single queue member by call SID. Use the special value Front to retrieve the member at the front of the queue.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

QueueSidstringRequiredformat: "uuid"

The unique identifier for the queue.

CallSidstringRequired

The unique identifier for the call, or the special value 'Front' to reference the member at the front of the queue.

Response

The request has succeeded.

call_sidstringformat: "uuid"

The unique identifier for the call.

account_sidstringformat: "uuid"

The unique identifier for the account.

queue_sidstringformat: "uuid"

The unique identifier for the queue.

date_enqueuedstring

The date and time, in RFC 2822 format, when the member was enqueued.

positioninteger>=1

The position of the member in the queue (1-indexed).

wait_timeinteger>=0

The wait time, in seconds, since the member was enqueued.

member_typestring

The type of the queue member.

uristring

The URI of this resource, relative to the API base URL.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a Queue Member

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Dequeue a member from a queue and redirect them to a new URL. Use the special value Front for the CallSid to dequeue the member at the front of the queue.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

QueueSidstringRequiredformat: "uuid"

The unique identifier for the queue.

CallSidstringRequired

The unique identifier for the call, or the special value 'Front' to reference the member at the front of the queue.

Request

This endpoint expects an object.

UrlstringRequiredformat: "uri"

The URL to redirect the dequeued member to. This URL should return cXML instructions for handling the call.

MethodenumOptionalDefaults to POST

The HTTP method to use when requesting the URL. Default is POST.

Response

The request has succeeded.

call_sidstringformat: "uuid"

The unique identifier for the call.

account_sidstringformat: "uuid"

The unique identifier for the account.

queue_sidstringformat: "uuid"

The unique identifier for the queue.

date_enqueuedstring

The date and time, in RFC 2822 format, when the member was enqueued.

positioninteger>=1

The position of the member in the queue (1-indexed).

wait_timeinteger>=0

The wait time, in seconds, since the member was enqueued.

member_typestring

The type of the queue member.

uristring

The URI of this resource, relative to the API base URL.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Create a Queue

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create a call queue. Queue names must be unique among active queues within an account and can only contain alphanumeric characters and underscores. Deleted queue names can be reused.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

Request

This endpoint expects an object.

FriendlyNamestringRequiredformat: "^\w+$"``>=1 character

A unique name for the queue. Must contain only alphanumeric characters and underscores.

MaxSizeintegerOptional

The maximum number of calls that are allowed to wait in a queue. Must be a positive integer.

Response

Response returned when a queue is successfully created.

sidstringformat: "uuid"

The unique identifier for the queue.

account_sidstringformat: "uuid"

The unique identifier for the account this Queue is associated with.

friendly_namestring

A description that distinguishes a queue.

max_sizeinteger or null

The maximum number of calls that are allowed to wait in a queue. Null if no limit is set.

current_sizeinteger>=0

The number of calls currently waiting in the queue.

average_wait_timeinteger>=0

The average wait time, in seconds, of callers in a queue.

date_createdstring

The date and time, in RFC 2822 format, the Queue was created.

date_updatedstring

The date and time, in RFC 2822 format, the Queue was updated.

api_versionstring

The version of the SignalWire API.

uristring

The URI of this resource, relative to the API base URL.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete a Queue

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a call queue. Only empty queues can be deleted - attempting to delete a queue with members will return a 422 error.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

SidstringRequiredformat: "uuid"

The unique identifier for the queue.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List All Queues

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve all queues associated with your account. Results are returned as a paginated list.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

Query parameters

PageintegerOptional>=0Defaults to 0

The page number to retrieve (zero-indexed).

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when navigating to pages beyond the first.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page. Null if there are no more pages.

previous_page_uristring or null

The URI of the previous page. Null if this is the first page.

pageinteger

The current page number (zero-indexed).

page_sizeinteger

The number of items per page.

queueslist of objects

List of queues.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Queue

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single queue by its unique identifier.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

SidstringRequiredformat: "uuid"

The unique identifier for the queue.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the queue.

account_sidstringformat: "uuid"

The unique identifier for the account this Queue is associated with.

friendly_namestring

A description that distinguishes a queue.

max_sizeinteger or null

The maximum number of calls that are allowed to wait in a queue. Null if no limit is set.

current_sizeinteger>=0

The number of calls currently waiting in the queue.

average_wait_timeinteger>=0

The average wait time, in seconds, of callers in a queue.

date_createdstring

The date and time, in RFC 2822 format, the Queue was created.

date_updatedstring

The date and time, in RFC 2822 format, the Queue was updated.

api_versionstring

The version of the SignalWire API.

uristring

The URI of this resource, relative to the API base URL.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a Queue

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Modify the properties of a call queue. Queue names must be unique among active queues within an account. Deleted queue names can be reused.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account this Queue is associated with.

SidstringRequiredformat: "uuid"

The unique identifier for the queue.

Request

This endpoint expects an object.

FriendlyNamestringRequiredformat: "^\w+$"``>=1 character

A unique name for the queue. Must contain only alphanumeric characters and underscores.

MaxSizeintegerOptional

The maximum number of calls that are allowed to wait in a queue. Must be a positive integer.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the queue.

account_sidstringformat: "uuid"

The unique identifier for the account this Queue is associated with.

friendly_namestring

A description that distinguishes a queue.

max_sizeinteger or null

The maximum number of calls that are allowed to wait in a queue. Null if no limit is set.

current_sizeinteger>=0

The number of calls currently waiting in the queue.

average_wait_timeinteger>=0

The average wait time, in seconds, of callers in a queue.

date_createdstring

The date and time, in RFC 2822 format, the Queue was created.

date_updatedstring

The date and time, in RFC 2822 format, the Queue was updated.

api_versionstring

The version of the SignalWire API.

uristring

The URI of this resource, relative to the API base URL.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


Delete a Recording Transcription

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete a recording transcription from your account. If the delete is successful, a 204 response, with no body, will be returned.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this transcription.

SidstringRequiredformat: "uuid"

The unique identifier for the transcription.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List all Transcriptions

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all transcriptions. Results are returned as a paginated list ordered by creation date (newest first).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this transcription.

Query parameters

DateCreatedstringOptional

Filter by transcriptions created on this exact date (RFC 2822 format).

DateCreated<stringOptional

Filter by transcriptions created before this date (RFC 2822 format).

DateCreated>stringOptional

Filter by transcriptions created after this date (RFC 2822 format).

PageintegerOptional>=0Defaults to 0

The page number to retrieve (zero-indexed).

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when navigating to pages beyond the first.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page. Null if there are no more pages.

previous_page_uristring or null

The URI of the previous page. Null if this is the first page.

pageinteger

The current page number (zero-indexed).

page_sizeinteger

The number of items per page.

transcriptionslist of objects

List of transcriptions.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Transcription

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single recording transcription.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that created this transcription.

SidstringRequiredformat: "uuid"

The unique identifier for the transcription.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the transcription.

account_sidstringformat: "uuid"

The unique identifier for the account that created this transcription.

api_versionstring

The version of the SignalWire API.

recording_sidstringformat: "uuid"

The unique identifier for the recording that this transcription was created from.

date_createdstring

The date, in RFC 2822 format, this transcription was created.

date_updatedstring

The date, in RFC 2822 format, this transcription was updated.

durationinteger>=0

The duration, in seconds, of the transcribed audio.

pricestring or null

The charge for the transcription. Null if cost has not been calculated.

price_unitstring

The currency, in ISO 4217 format, for the price of the transcription.

statusstring

The status of the transcription. Always 'completed' for transcriptions returned by the API.

transcription_textstring or null

The text content of the transcription. Null if transcription text is not available.

typestring

The type of the transcription. Currently always an empty string.

uristring

The URI of this resource, relative to the API base URL.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Transcription status callback

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Payload sent by SignalWire to your Transcription Status Callback URL when the status of a transcription changes.

Configure this callback by enabling transcription on a recording via the Record verb (transcribe=true) and setting transcribeCallback to your webhook URL.

Your app can use these parameters to handle the transcription, for example, uploading the text to your CRM, sending it via email, or forwarding the body via SignalWire SMS.

Payload

The payload of this webhook request is an object.

TranscriptionSidstringRequired

The unique, 34-character ID of the transcription.

TranscriptionTextstringRequired

The text of the transcription.

TranscriptionStatusenumRequired

The status of the transcription.

Allowed values:completedfailed

TranscriptionUrlstringRequired

The URL for the transcription's REST API resource.

RecordingSidstringRequired

The unique, 34-character identifier for the recording from which the transcription was generated.

RecordingUrlstringRequired

The URL for the audio recording from which the transcription was generated.

Response

200

Webhook received


Create a Recording

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create a recording.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

CallSidstringRequiredformat: "uuid"

The unique identifier for the call.

Request

This endpoint expects an object.

RecordingChannelsenumOptionalDefaults to mono

The number of channels in the recording. Can be mono (both legs of call recorded under one channel into one recording file) or dual (each leg of call recorded in separate channels into one recording file). Default is mono.

Allowed values:monodual

RecordingStatusCallbackstringOptionalformat: "uri"

The URL to request to when recording is available. See the Recording status callback webhook for the payload your URL will receive.

RecordingStatusCallbackEventstringOptionalDefaults to completed

The different recording statuses. To specify multiple events, separate with a space. Valid values: completed, in-progress, absent. Default is completed.

RecordingStatusCallbackMethodenumOptionalDefaults to POST

Whether the request to RecordingStatusCallback URL is a GET or a POST. Default is POST.

Allowed values:GETPOST

RecordingTrackenumOptionalDefaults to both

Specifies whether to record the inbound audio to SignalWire from the called party or the outbound audio from SignalWire to the called party or both the inbound and outbound audio. Default is both.

Allowed values:inboundoutboundboth

TrimenumOptionalDefaults to do-not-trim

Whether leading and trailing silence is trimmed from a recording. Default is do-not-trim.

Allowed values:trim-silencedo-not-trim

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the recording.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this recording.

api_versionstring

The version of the SignalWire API.

call_sidstring or nullformat: "uuid"

The unique identifier for the call that is associated with this recording. Null if this is a conference recording.

conference_sidstring or nullformat: "uuid"

The unique identifier for the conference that is associated with this recording. Null if this is a call recording.

channelenum

The number of channels in a recording (singular key). Returns ‘1’ for mono or ‘2’ for stereo.

Allowed values:12

channelsenum

The number of channels in a recording. Returns '1' for mono or '2' for stereo.

Allowed values:12

date_createdstring

The date, in RFC 2822 format, this recording was created.

date_updatedstring

The date, in RFC 2822 format, this recording was updated.

start_timestring or null

The time, in RFC 2822 format, this recording started.

end_timestring or null

The time, in RFC 2822 format, this recording ended.

durationinteger

The length, in seconds, of the recording.

pricestring or null

The cost for the recording.

price_unitstring

The currency of the price of the recording.

sourceenum

How the recording was made.

Show 7 enum values

statusenum

The status of the recording.

Show 7 enum values

error_codestring or null

Further details about a failed recording.

uristring

The URI of the recording.

subresource_urisobject

Subresource URIs.

Show 1 property

encryption_detailsstring or null

Encryption details. Always null.

trimstring

Whether leading and trailing silence is trimmed from a recording.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Delete a Recording.

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete recording. If the delete is successful, a 204 response, with no body, will be returned.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this recording.

SidstringRequiredformat: "uuid"

The unique identifier for the recording.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error


List all Recordings

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

List all recordings. Results are returned as a paginated list ordered by creation date (newest first).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this recording.

Query parameters

DateCreatedstringOptional

Filter by recordings created on this exact date (RFC 2822 format).

DateCreated<stringOptional

Filter by recordings created before this date (RFC 2822 format).

DateCreated>stringOptional

Filter by recordings created after this date (RFC 2822 format).

CallSidstringOptionalformat: "uuid"

Filter by recordings associated with a specific call.

ConferenceSidstringOptionalformat: "uuid"

Filter by recordings associated with a specific conference.

PageintegerOptional>=0Defaults to 0

The page number to retrieve (zero-indexed).

PageSizeintegerOptional1-1000Defaults to 50

The number of results per page. Default is 50, maximum is 1000.

PageTokenstringOptional

Token for cursor-based pagination. Required when navigating to pages beyond the first.

Response

The request has succeeded.

uristring

The URI of the current page.

first_page_uristring

The URI of the first page.

next_page_uristring or null

The URI of the next page. Null if there are no more pages.

previous_page_uristring or null

The URI of the previous page. Null if this is the first page.

pageinteger

The current page number (zero-indexed).

page_sizeinteger

The number of items per page.

recordingslist of objects

List of recordings.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Retrieve a Recording

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Retrieve a single recording media or its metadata.

This endpoint supports two different access methods with different authentication requirements:

Public Access (No Authentication Required)

Recording audio files can be accessed directly without authentication. This is useful for external applications to embed recording URLs without exposing SignalWire API credentials. SignalWire recording URLs are long and random, making them difficult to guess or exploit unless you reveal the URL.

Retrieve WAV file

When a recording URI has no extension or a .wav extension, the request will return a binary WAV version of the recording file.

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.wav

Retrieve MP3 file

Setting an extension of “.mp3” on the URI returns a binary MP3 version of the recording. For example:

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.mp3

Authenticated Access (Voice Scope Required)

Retrieve Metadata

A recording’s metadata, such as duration, cost, time, can be returned by setting the Recording URI’s extension to .json. This requires authentication with a Voice-scoped API token.

GET https://example.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Recordings/{Sid}.json

Permissions

The API token used to authenticate must have the following scopes enabled to make a successful request: Voice.

This permission is only required for authenticated requests to retrieve recording metadata (.json extension).

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the account that is associated with this recording.

SidstringRequiredformat: "uuid"

The unique identifier for the recording.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the recording.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this recording.

api_versionstring

The version of the SignalWire API.

call_sidstring or nullformat: "uuid"

The unique identifier for the call that is associated with this recording. Null if this is a conference recording.

conference_sidstring or nullformat: "uuid"

The unique identifier for the conference that is associated with this recording. Null if this is a call recording.

channelenum

The number of channels in a recording (singular key). Returns ‘1’ for mono or ‘2’ for stereo.

channelsenum

The number of channels in a recording. Returns '1' for mono or '2' for stereo.

date_createdstring

The date, in RFC 2822 format, this recording was created.

date_updatedstring

The date, in RFC 2822 format, this recording was updated.

start_timestring or null

The time, in RFC 2822 format, this recording started.

end_timestring or null

The time, in RFC 2822 format, this recording ended.

durationinteger>=0

The length, in seconds, of the recording.

pricestring or null

The cost for the recording.

price_unitstring

The currency of the price of the recording.

sourceenum

How the recording was made.

statusenum

The status of the recording.

error_codestring or null

Further details about a failed recording.

uristring

The URI of the recording.

subresource_urisobject

Subresource URIs.

encryption_detailsstring or null

Encryption details. Always null.

trimstring

Whether leading and trailing silence is trimmed from a recording.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update a Recording

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Pause, resume or stop a Recording. You can control what happens while recording is paused (replace pause with silence or skip it).

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

CallSidstringRequiredformat: "uuid"

The unique identifier for the call.

SidstringRequiredformat: "uuid"

The unique identifier for the call.

Request

This endpoint expects an object.

StatusenumRequired

The status of the recording.

PauseBehaviorenumOptionalDefaults to silence

What to do while recording is paused. Default is silence.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the recording.

account_sidstringformat: "uuid"

The unique identifier for the account that is associated with this recording.

api_versionstring

The version of the SignalWire API.

call_sidstring or nullformat: "uuid"

The unique identifier for the call that is associated with this recording. Null if this is a conference recording.

conference_sidstring or nullformat: "uuid"

The unique identifier for the conference that is associated with this recording. Null if this is a call recording.

channelenum

The number of channels in a recording (singular key). Returns ‘1’ for mono or ‘2’ for stereo.

channelsenum

The number of channels in a recording. Returns '1' for mono or '2' for stereo.

date_createdstring

The date, in RFC 2822 format, this recording was created.

date_updatedstring

The date, in RFC 2822 format, this recording was updated.

start_timestring or null

The time, in RFC 2822 format, this recording started.

end_timestring or null

The time, in RFC 2822 format, this recording ended.

durationinteger

The length, in seconds, of the recording.

pricestring or null

The cost for the recording.

price_unitstring

The currency of the price of the recording.

sourceenum

How the recording was made.

statusenum

The status of the recording.

error_codestring or null

Further details about a failed recording.

uristring

The URI of the recording.

subresource_urisobject

Subresource URIs.

encryption_detailsstring or null

Encryption details. Always null.

trimstring

Whether leading and trailing silence is trimmed from a recording.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Recording status callback

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Payload sent by SignalWire to your RecordingStatusCallback URL when a recording status event occurs.

Recordings are not always available immediately, especially at high call volumes. This callback lets your app react as soon as a recording is ready, whether that means uploading it to external storage, sending it via email, or forwarding the URL via SMS.

Configure RecordingStatusCallback when creating a call via the API or when using Dial, Conference, or Record.

Use RecordingStatusCallbackEvent to request callbacks for specific events. If omitted, only the completed event is sent. Possible values: in-progress, completed, absent.

StatusDescription
in-progressThe recording has begun.
completedThe file is available for access.
absentThe recording was too short or the call was silent, no audio was detected.

Payload

The payload of this webhook request is an object.

AccountSidstringRequired

The unique ID of the project this call is associated with.

CallSidstringRequired

A unique identifier for the call. May be used to later retrieve this call from the REST API.

RecordingSidstringRequired

The unique identifier for the recording.

RecordingUrlstringRequired

The URL for the audio recording.

RecordingStatusenumRequired

The status of the recording.

  • in-progress: Recording has begun.
  • completed: File is available.
  • absent: Recording was too short or no audio was detected.

Allowed values:in-progresscompletedabsent

RecordingDurationintegerRequired

The duration, in seconds, of the recording.

RecordingChannelsintegerRequired

The number of channels in the recording.

RecordingSourcestringRequired

The type of call that initiated the recording.

Response

200

Webhook received


Create a Stream

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Create a stream.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

CallSidstringRequiredformat: "uuid"

The unique identifier for the call.

Request

This endpoint expects an object.

UrlstringRequiredformat: "uri"

Absolute or relative URL. A WebSocket connection to the url will be established and audio will start flowing towards the Websocket server. The only supported protocol is wss. For security reasons ws is NOT supported.

NamestringOptional

Unique name for the Stream, per Call. It is used to stop a Stream by name.

TrackenumOptionalDefaults to both_tracks

This attribute can be one of inbound_track, outbound_track, both_tracks. Default is both_tracks.

StatusCallbackMethodenumOptionalDefaults to POST

Whether the request to StatusCallback URL is a GET or a POST. Default is POST.

StatusCallbackstringOptionalformat: "uri"

The URL to request to when stream is available.

Parameter1.NamestringOptional

Custom parameter name to pass towards the WebSocket server. You can pass up to 99 custom parameters using Parameter1.Name through Parameter99.Name.

Parameter1.ValuestringOptional

Custom parameter value to pass towards the WebSocket server. You can pass up to 99 custom parameters using Parameter1.Value through Parameter99.Value.

Parameter2.NamestringOptional

Custom parameter name to pass towards the WebSocket server.

Parameter2.ValuestringOptional

Custom parameter value to pass towards the WebSocket server.

AuthorizationBearerTokenstringOptional

Bearer token for authorization with the WebSocket server.

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the stream.

account_sidstringformat: "uuid"

The unique identifier for the account.

call_sidstringformat: "uuid"

The unique identifier for the call.

namestring

The name of the stream.

statusenum

The status of the stream.

date_updatedstring

The date, in RFC 2822 GMT format, this stream was updated.

uristring

The URI for the stream.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Stop a Stream

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Stop a Stream.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Voice.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The Project ID that uniquely identifies the Account.

CallSidstringRequiredformat: "uuid"

The unique identifier for the call.

SidstringRequiredformat: "uuid"

The unique identifier for the call.

Request

This endpoint expects an object.

StatusenumRequired

The status of the stream. Only 'stopped' is allowed.

Allowed values:stopped

Response

The request has succeeded.

sidstringformat: "uuid"

The unique identifier for the stream.

account_sidstringformat: "uuid"

The unique identifier for the account.

call_sidstringformat: "uuid"

The unique identifier for the call.

namestring

The name of the stream.

statusenum

The status of the stream.

Allowed values:queuedin-progressstopped

date_updatedstring

The date, in RFC 2822 GMT format, this stream was updated.

uristring

The URI for the stream.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

503

Service Unavailable Error


Generate a new API Token

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Generate an API Token for a project to be used to authenticate requests within the project.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the project you want to use to authenticate this request.

Request

This endpoint expects an object.

namestringRequired>=1 character

The name representing the project API token.

permissionslist of stringsRequired

The permissions you would like to enable for this project API token. Valid permissions are: calling, chat, datasphere, fax, management, messaging, numbers, pubsub, storage, tasking, and video.

subproject_idstringOptionalformat: "uuid"

The unique identifier of the subproject you would like to create a token for. Must belong to the parent project.

Response

The request has succeeded.

idstringformat: "uuid"

The unique identifier of the created API Token.

namestring>=1 character

The name of the created API Token.

permissionslist of strings

The permissions enabled for this token.

tokenstring

The API token that can be used along with the project ID for basic authentication.

Errors

400

Bad Request Error

401

Unauthorized Error

422

Unprocessable Entity Error


Delete an API Token

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Delete an API Token. This action cannot be undone.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the project you want to use to authenticate this request.

token_idstringRequiredformat: "uuid"

The unique identifier of the project API token.

Response

204 No Content response.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error


Update an API Token

For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.

Update an API Token’s name or permissions.

Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: Management.

Learn more about API scopes.

Authentication

AuthorizationBasic

SignalWire Basic Authentication using Project ID and API Token.

The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password.

Example:

Authorization: Basic base64(project_id:token)

Path parameters

AccountSidstringRequiredformat: "uuid"

The unique identifier for the project you want to use to authenticate this request.

token_idstringRequiredformat: "uuid"

The unique identifier of the project API token.

Request

This endpoint expects an object.

namestringOptional>=1 character

The name representing the project API token.

permissionslist of stringsOptional

The permissions you would like to enable for this project API token. If not provided, existing permissions are kept. Valid permissions are: calling, chat, datasphere, fax, management, messaging, numbers, pubsub, storage, tasking, and video.

Response

The request has succeeded.

idstringformat: "uuid"

The unique identifier of the created API Token.

namestring>=1 character

The name of the created API Token.

permissionslist of strings

The permissions enabled for this token.

tokenstring

The API token that can be used along with the project ID for basic authentication.

Errors

400

Bad Request Error

401

Unauthorized Error

404

Not Found Error

422

Unprocessable Entity Error

SignalWire Developer Documentation