Appearance
Rest
FreshOverview
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:
| Variable | Value |
|---|---|
space_name | Your Space subdomain (e.g., example) |
project_id | Your Project ID (referred to as AccountSid in the Compatibility API, see AccountSid vs ProjectID below) |
api_token | Your 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.
| Status | Description |
|---|---|
initiated | The initial dial has begun. |
ringing | The call is ringing. |
in-progress | The call was answered and is in progress. |
queued | The call is ready and in line to initiate. |
failed | The call could not be completed. Usually occurs when the phone number does not exist. |
busy | The caller encountered a busy signal. |
no-answer | The call ended without an answer. |
completed | The call was answered and ended normally. |
canceled | The 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 callsMessagingResponse, Build XML for handling SMS/MMS messagesFaxResponse, 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-apiInitializing 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.comWith 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:
| Status | Description |
|---|---|
queued | The API request was processed and the message is waiting to be sent. |
sending | The message is being transmitted to the nearest upstream carrier. |
sent | The nearest upstream carrier has accepted the message. |
delivered | The nearest upstream carrier confirmed receipt of the message. |
undelivered | SignalWire received notice from the upstream carrier that the message was not delivered. |
failed | SignalWire could not send the message. There is no charge for failed messages. |
receiving | SignalWire has received and is currently processing an inbound message. |
received | The 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.
| Attribute | Type | Description |
|---|---|---|
uri | string | The current page’s URI. |
first_page_uri | string | The first page in the result set’s URI. |
next_page_uri | string | The next page in the result set’s URI. |
previous_page_uri | string | The previous page in the result set’s URI. |
page | integer | The current page number, using zero-based number (so the first page would be 0). |
page_size | string | The 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.
| Status | Description |
|---|---|
in-progress | The recording has begun. |
completed | The file is available for access. |
absent | The 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
