> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt # Compatibility API ## Docs - [cXML Specification](https://signalwire.com/docs/compatibility-api/cxml.md): Learn about the specification defining cXML, the SignalWire language used to define phone number messaging and calling behavior. - [Compatibility API Webhooks](https://signalwire.com/docs/compatibility-api/guides/webhooks.md): An introduction to using webhooks to receive information and events about calls and messages. - [Common webhook errors](https://signalwire.com/docs/compatibility-api/guides/common-webhook-errors.md) - [Webhook security](https://signalwire.com/docs/compatibility-api/guides/webhook-security.md) - [Receiving your first SMS](https://signalwire.com/docs/compatibility-api/guides/receive-sms.md): Learn how to receive your first SMS using cXML scripts. - [Sending your first SMS](https://signalwire.com/docs/compatibility-api/guides/send-sms.md): Learn how to send your first SMS using the Compatibility REST API. - [Callback for inbound fax](https://signalwire.com/docs/compatibility-api/guides/callback-for-inbound-fax.md): Learn how to secure your callback for inbound fax using cXML bins. - [Add mustache template parameters to cXML responses](https://signalwire.com/docs/compatibility-api/guides/mustache-templates.md): An introduction to saving parameters as mustache variables through XML webhooks. - [Gathering user input](https://signalwire.com/docs/compatibility-api/guides/gather-user-input.md): Use cXML to prompt and receive user input. - [Voice Overview](https://signalwire.com/docs/compatibility-api/cxml/reference/voice.md) - [Conference](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/conference.md) - [Connect](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/connect.md) - [Denoise](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/denoise.md) - [Dial](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/dial.md) - [Echo](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/echo.md) - [Enqueue](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/enqueue.md) - [Gather](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/gather.md) - [Hangup](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/hangup.md) - [Leave](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/leave.md) - [Number](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/number.md) - [Pause](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/pause.md) - [Pay](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/pay.md) - [Parameter](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/pay/parameter.md) - [Prompt](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/pay/prompt.md) - [Play](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/play.md) - [Queue](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/queue.md) - [Record](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/record.md) - [Redirect](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/redirect.md) - [Refer](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/refer.md) - [Reject](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/reject.md) - [Room](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/room.md) - [Say](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/say.md) - [Sip](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/sip.md) - [Sms](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/sms.md) - [Stream](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/stream.md) - [Verto](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/verto.md) - [VirtualAgent](https://signalwire.com/docs/compatibility-api/cxml/reference/voice/virtual-agent.md) - [Messaging Overview](https://signalwire.com/docs/compatibility-api/cxml/reference/messaging.md): - [Message](https://signalwire.com/docs/compatibility-api/cxml/reference/messaging/message.md): - [Redirect](https://signalwire.com/docs/compatibility-api/cxml/reference/messaging/redirect.md): - [Fax Overview](https://signalwire.com/docs/compatibility-api/cxml/reference/fax.md): - [Receive](https://signalwire.com/docs/compatibility-api/cxml/reference/fax/receive.md): - [Reject](https://signalwire.com/docs/compatibility-api/cxml/reference/fax/reject.md): - [Overview](https://signalwire.com/docs/compatibility-api/rest.md) - [Authorization](https://signalwire.com/docs/compatibility-api/authorization.md) - [Error codes](https://signalwire.com/docs/compatibility-api/rest/error-codes.md) - [Paging](https://signalwire.com/docs/compatibility-api/rest/paging.md) - [REST client SDKs](https://signalwire.com/docs/compatibility-api/rest/client-sdks.md) ## API Docs - Compatibility REST API > Calls > Webhooks [Voice status callback](https://signalwire.com/docs/compatibility-api/rest/calls/webhooks/voice-status-callback.md) - Compatibility REST API > Calls [List all Calls](https://signalwire.com/docs/compatibility-api/rest/calls/list-all-calls.md) - Compatibility REST API > Calls [Create a Call](https://signalwire.com/docs/compatibility-api/rest/calls/create-a-call.md) - Compatibility REST API > Calls [Retrieve a Call](https://signalwire.com/docs/compatibility-api/rest/calls/retrieve-a-call.md) - Compatibility REST API > Calls [Update a Call](https://signalwire.com/docs/compatibility-api/rest/calls/update-a-call.md) - Compatibility REST API > Calls [Delete a Call](https://signalwire.com/docs/compatibility-api/rest/calls/delete-a-call.md) - Compatibility REST API > Recordings > Webhooks [Recording status callback](https://signalwire.com/docs/compatibility-api/rest/recordings/webhooks/recording-status-callback.md) - Compatibility REST API > Recordings [Create a Recording](https://signalwire.com/docs/compatibility-api/rest/recordings/create-recording.md) - Compatibility REST API > Recordings [Update a Recording](https://signalwire.com/docs/compatibility-api/rest/recordings/update-recording.md) - Compatibility REST API > Recordings [List all Recordings](https://signalwire.com/docs/compatibility-api/rest/recordings/list-recordings.md) - Compatibility REST API > Recordings [Retrieve a Recording](https://signalwire.com/docs/compatibility-api/rest/recordings/retrieve-recording.md) - Compatibility REST API > Recordings [Delete a Recording.](https://signalwire.com/docs/compatibility-api/rest/recordings/delete-recording.md) - Compatibility REST API > Messages > Webhooks [SMS status callback](https://signalwire.com/docs/compatibility-api/rest/messages/webhooks/sms-status-callback.md) - Compatibility REST API > Messages [List all Messages](https://signalwire.com/docs/compatibility-api/rest/messages/list-messages.md) - Compatibility REST API > Messages [Create a Message](https://signalwire.com/docs/compatibility-api/rest/messages/create-message.md) - Compatibility REST API > Messages [Retrieve a Message](https://signalwire.com/docs/compatibility-api/rest/messages/retrieve-message.md) - Compatibility REST API > Messages [Update a Message](https://signalwire.com/docs/compatibility-api/rest/messages/update-message.md) - Compatibility REST API > Messages [Delete a Message](https://signalwire.com/docs/compatibility-api/rest/messages/delete-message.md) - Compatibility REST API > Incoming Phone Numbers > Webhooks [Incoming call status callback](https://signalwire.com/docs/compatibility-api/rest/incoming-phone-numbers/webhooks/incoming-call-status-callback.md) - Compatibility REST API > Incoming Phone Numbers [List all Incoming Phone Numbers](https://signalwire.com/docs/compatibility-api/rest/incoming-phone-numbers/list-incoming-phone-numbers.md) - Compatibility REST API > Incoming Phone Numbers [Create an Incoming Phone Number](https://signalwire.com/docs/compatibility-api/rest/incoming-phone-numbers/create-incoming-phone-number.md) - Compatibility REST API > Incoming Phone Numbers [Retrieve an incoming phone number](https://signalwire.com/docs/compatibility-api/rest/incoming-phone-numbers/retrieve-incoming-phone-number.md) - Compatibility REST API > Incoming Phone Numbers [Update an incoming phone number](https://signalwire.com/docs/compatibility-api/rest/incoming-phone-numbers/update-incoming-phone-number.md) - Compatibility REST API > Incoming Phone Numbers [Delete an incoming phone number](https://signalwire.com/docs/compatibility-api/rest/incoming-phone-numbers/delete-incoming-phone-number.md) - Compatibility REST API > Recording Transcriptions > Webhooks [Transcription status callback](https://signalwire.com/docs/compatibility-api/rest/recording-transcriptions/webhooks/transcription-status-callback.md) - Compatibility REST API > Recording Transcriptions [List all Transcriptions](https://signalwire.com/docs/compatibility-api/rest/recording-transcriptions/list-transcriptions.md) - Compatibility REST API > Recording Transcriptions [Retrieve a Transcription](https://signalwire.com/docs/compatibility-api/rest/recording-transcriptions/retrieve-transcription.md) - Compatibility REST API > Recording Transcriptions [Delete a Recording Transcription](https://signalwire.com/docs/compatibility-api/rest/recording-transcriptions/delete-transcription.md) - Compatibility REST API > Accounts [List Accounts](https://signalwire.com/docs/compatibility-api/rest/accounts/list-accounts.md) - Compatibility REST API > Accounts [Create Subprojects](https://signalwire.com/docs/compatibility-api/rest/accounts/create-subprojects.md) - Compatibility REST API > Accounts [Find an Account by ID](https://signalwire.com/docs/compatibility-api/rest/accounts/get-account.md) - Compatibility REST API > Accounts [Update an Account](https://signalwire.com/docs/compatibility-api/rest/accounts/update-account.md) - Compatibility REST API > Applications [List Applications](https://signalwire.com/docs/compatibility-api/rest/applications/list-applications.md) - Compatibility REST API > Applications [Create an Application](https://signalwire.com/docs/compatibility-api/rest/applications/create-application.md) - Compatibility REST API > Applications [Find an Application by ID](https://signalwire.com/docs/compatibility-api/rest/applications/get-application.md) - Compatibility REST API > Applications [Update an Application](https://signalwire.com/docs/compatibility-api/rest/applications/update-application.md) - Compatibility REST API > Applications [Delete an Application](https://signalwire.com/docs/compatibility-api/rest/applications/delete-application.md) - Compatibility REST API > Available Phone Numbers [List of AvailablePhoneNumber resources](https://signalwire.com/docs/compatibility-api/rest/available-phone-numbers/list-available-phone-number-resources.md) - Compatibility REST API > Available Phone Numbers [List of AvailablePhoneNumber resources by country](https://signalwire.com/docs/compatibility-api/rest/available-phone-numbers/list-available-phone-number-resources-by-country.md) - Compatibility REST API > Available Phone Numbers [Search for available phone numbers that match your criteria.](https://signalwire.com/docs/compatibility-api/rest/available-phone-numbers/search-local-available-phone-numbers.md) - Compatibility REST API > Available Phone Numbers [Find toll-free numbers](https://signalwire.com/docs/compatibility-api/rest/available-phone-numbers/search-toll-free-available-phone-numbers.md) - Compatibility REST API > Streams [Create a Stream](https://signalwire.com/docs/compatibility-api/rest/streams/create-stream.md) - Compatibility REST API > Streams [Stop a Stream](https://signalwire.com/docs/compatibility-api/rest/streams/update-stream.md) - Compatibility REST API > Conferences [List All Conferences](https://signalwire.com/docs/compatibility-api/rest/conferences/list-all-conferences.md) - Compatibility REST API > Conferences [Retrieve a Conference](https://signalwire.com/docs/compatibility-api/rest/conferences/retrieve-conference.md) - Compatibility REST API > Conferences [Update Conference](https://signalwire.com/docs/compatibility-api/rest/conferences/update-conference.md) - Compatibility REST API > Conference Participants [List all active Participants](https://signalwire.com/docs/compatibility-api/rest/conference-participants/list-all-participants.md) - Compatibility REST API > Conference Participants [Retrieve a Participant](https://signalwire.com/docs/compatibility-api/rest/conference-participants/retrieve-participant.md) - Compatibility REST API > Conference Participants [Update a Participant](https://signalwire.com/docs/compatibility-api/rest/conference-participants/update-participant.md) - Compatibility REST API > Conference Participants [Delete a Participant](https://signalwire.com/docs/compatibility-api/rest/conference-participants/delete-participant.md) - Compatibility REST API > Conference Recordings [List Conference Recordings](https://signalwire.com/docs/compatibility-api/rest/conference-recordings/list-conference-recordings.md) - Compatibility REST API > Conference Recordings [Get a Conference Recording](https://signalwire.com/docs/compatibility-api/rest/conference-recordings/get-conference-recording.md) - Compatibility REST API > Conference Recordings [Update a Conference Recording](https://signalwire.com/docs/compatibility-api/rest/conference-recordings/update-conference-recording.md) - Compatibility REST API > Conference Recordings [Delete a Conference Recording](https://signalwire.com/docs/compatibility-api/rest/conference-recordings/delete-conference-recording.md) - Compatibility REST API > Conference Streams [Create a Conference Stream](https://signalwire.com/docs/compatibility-api/rest/conference-streams/create-conference-stream.md) - Compatibility REST API > Conference Streams [Update Conference Stream](https://signalwire.com/docs/compatibility-api/rest/conference-streams/update-conference-stream.md) - Compatibility REST API > Faxes [List all Faxes](https://signalwire.com/docs/compatibility-api/rest/faxes/list-all-faxes.md) - Compatibility REST API > Faxes [Send a Fax](https://signalwire.com/docs/compatibility-api/rest/faxes/send-fax.md) - Compatibility REST API > Faxes [Retrieve a Fax](https://signalwire.com/docs/compatibility-api/rest/faxes/retrieve-fax.md) - Compatibility REST API > Faxes [Update a Fax](https://signalwire.com/docs/compatibility-api/rest/faxes/update-fax.md) - Compatibility REST API > Faxes [Delete a Fax](https://signalwire.com/docs/compatibility-api/rest/faxes/delete-fax.md) - Compatibility REST API > Fax Media [List Fax Media](https://signalwire.com/docs/compatibility-api/rest/fax-media/list-all-fax-media.md) - Compatibility REST API > Fax Media [Retrieve Fax Media](https://signalwire.com/docs/compatibility-api/rest/fax-media/retrieve-medias.md) - Compatibility REST API > Fax Media [Delete Fax Media](https://signalwire.com/docs/compatibility-api/rest/fax-media/delete-fax-media.md) - Compatibility REST API > Imported Phone Numbers [Import a Phone Number](https://signalwire.com/docs/compatibility-api/rest/imported-phone-numbers/create-imported-phone-number.md) - Compatibility REST API > Cxml Scripts [List All cXML Scripts](https://signalwire.com/docs/compatibility-api/rest/cxml-scripts/list-cxml-scripts.md) - Compatibility REST API > Cxml Scripts [Create a cXML Script](https://signalwire.com/docs/compatibility-api/rest/cxml-scripts/create-cxml-script.md) - Compatibility REST API > Cxml Scripts [Retrieve a cXML Script](https://signalwire.com/docs/compatibility-api/rest/cxml-scripts/retrieve-cxml-script.md) - Compatibility REST API > Cxml Scripts [Update a cXML Script](https://signalwire.com/docs/compatibility-api/rest/cxml-scripts/update-cxml-script.md) - Compatibility REST API > Cxml Scripts [Delete a cXML Script](https://signalwire.com/docs/compatibility-api/rest/cxml-scripts/delete-cxml-script.md) - Compatibility REST API > Message Media [List Message Media](https://signalwire.com/docs/compatibility-api/rest/message-media/list-media.md) - Compatibility REST API > Message Media [Retrieve Message Media](https://signalwire.com/docs/compatibility-api/rest/message-media/retrieve-media.md) - Compatibility REST API > Message Media [Delete Message Media](https://signalwire.com/docs/compatibility-api/rest/message-media/delete-message-media.md) - Compatibility REST API > Queues [List All Queues](https://signalwire.com/docs/compatibility-api/rest/queues/list-queues.md) - Compatibility REST API > Queues [Create a Queue](https://signalwire.com/docs/compatibility-api/rest/queues/create-queue.md) - Compatibility REST API > Queues [Retrieve a Queue](https://signalwire.com/docs/compatibility-api/rest/queues/retrieve-queue.md) - Compatibility REST API > Queues [Update a Queue](https://signalwire.com/docs/compatibility-api/rest/queues/update-queue.md) - Compatibility REST API > Queues [Delete a Queue](https://signalwire.com/docs/compatibility-api/rest/queues/delete-queue.md) - Compatibility REST API > Queue Members [List All Queue Members](https://signalwire.com/docs/compatibility-api/rest/queue-members/list-all-queue-members.md) - Compatibility REST API > Queue Members [Retrieve a Queue Member](https://signalwire.com/docs/compatibility-api/rest/queue-members/retrieve-queue-member.md) - Compatibility REST API > Queue Members [Update a Queue Member](https://signalwire.com/docs/compatibility-api/rest/queue-members/update-queue-member.md) - Compatibility REST API > Tokens [Generate a new API Token](https://signalwire.com/docs/compatibility-api/rest/tokens/create-token.md) - Compatibility REST API > Tokens [Delete an API Token](https://signalwire.com/docs/compatibility-api/rest/tokens/delete-token.md) - Compatibility REST API > Tokens [Update an API Token](https://signalwire.com/docs/compatibility-api/rest/tokens/update-token.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://signalwire.com/openapi.json) - [OpenAPI YAML](https://signalwire.com/openapi.yaml) > **Note:** This page contains both a page directory (above) and the landing page content (below). The page directory is generated for agent use and does not appear on the landing page. > For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt # Compatibility API The SignalWire Compatibility API provides a seamless migration path from Twilio\* to SignalWire. If you've built applications using Twilio's TwiML, REST API, or helper libraries, you can transition to SignalWire with minimal code changes while gaining access to SignalWire's powerful infrastructure and competitive pricing. ## Quick start migration Migrating from Twilio to SignalWire typically requires just three changes: #### Update your credentials Replace your Twilio Account SID and Auth Token with your SignalWire Project ID and API Token from your [SignalWire Dashboard](https://signalwire.com/signin). #### Change the API endpoint If using the Twilio REST API or SDK, update the base URL from `api.twilio.com` to `your-space.signalwire.com`, where `your-space` is your SignalWire Space name. This is not required if using the SignalWire Compatibility SDK. #### Update webhook URLs Point your phone number webhooks to your SignalWire Space. Your existing TwiML/cXML response handlers work without modification. ## What's included The Compatibility API provides three main components: #### [cXML](/docs/compatibility-api/cxml) SignalWire's XML-based language for controlling calls, messages, and faxes — directly compatible with Twilio's TwiML. #### [Client SDKs](/docs/compatibility-api/rest/client-sdks) Helper libraries for generating cXML and making REST API calls in your preferred language. #### [REST API](/docs/compatibility-api/rest) RESTful endpoints for managing calls, messages, phone numbers, recordings, and more. ## Migrating from Twilio You can easily migrate from Twilio with minimal changes. 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. ```javascript {2-3} // Replace these lines: const twilio = require('twilio') const response = new twilio.twiml.VoiceResponse() ``` ```javascript {2-3} // With: const { RestClient } = require('@signalwire/compatibility-api') const response = new RestClient.LaML.VoiceResponse() ``` ```javascript title="Node.js" // Now use response like you did before! response.say('Hey, welcome to SignalWire!') ``` ## Supported features The Compatibility API supports the full range of Twilio-compatible features: | Category | Features | | ----------------- | -------------------------------------------------------------------------------------- | | **Voice** | Inbound/outbound calls, call control, conferencing, queues, recordings, transcriptions | | **Messaging** | SMS, MMS, status callbacks | | **Fax** | Send and receive faxes | | **Phone Numbers** | Purchase, configure, and manage phone numbers | | **Applications** | Manage voice and messaging application configurations |

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