All fields are required
Compatibility API
SignalWire Compatibility APIs replicate Twilio’s XML and REST interfaces—so your app works out of the box, while giving you access to advanced programmable features like AI agents, real-time transcription, and call control.
This API may look familiar, and that’s by design. SignalWire’s Compatibility APIs let you preserve your existing TwiML and REST API patterns, while offering two paths to easily migrate from legacy CPaaS to a more programmable communications stack.
Don’t choose between keeping your current codebase and gaining new capabilities. Continue building while unlocking advanced capabilities like real-time transcription, AI agents, and programmable voice flows.
A drop in replacement for TwiML that supports the same verbs and call flow logic.
Matches the structure and behavior of Twilio’s REST APIs. Simply update the base URL.
Define message handling instructions based on message content, sender, and date.
Execute logic in real-time, enabling dynamic control based on caller ID, time of day, and call content.
Trigger automated routing, storage, or custom responses with XML-based instructions for incoming faxes.
SignalWire’s Compatibility APIs are engineered to mirror Twilio’s XML and REST behaviors—so you can deploy without rework. Use your same verbs, webhooks, and endpoints to go live in minutes. Then, unlock advanced features like:

Convert live audio from calls into text instantly, enabling searchable logs, live captions, or downstream analysis—all within the same call flow.

Deploy programmable voice agents that can speak naturally, respond to caller intent, and trigger actions—without writing your own NLP stack.

Tie your app into existing SIP infrastructure or PBXs, or create remote endpoints using SIP registration.
SignalWire Compatibility XML (cXML) code snippets
Answer incoming calls, respond with Text-To-Speech then connect to another number using simple XML instructions.
Forward incoming calls using SignalWire cXML and the <Dial> verb. Route a call to any external number while preserving the original caller ID.
Use <Say> and <Gather> to guide callers and collect input via keypress.
Send SMS messages and define a follow-up action using the action attribute. After delivering the message, SignalWire makes a request to a specified URL, allowing the application to continue the conversation, log activity, or trigger additional workflows.
The <Redirect> verb transfers control from the current document to another. It is effectively an exit statement from the current document.
Media from the incoming fax will be stored on SignalWire's server in TIFF format.
Our Compatibility SDKs support Node.js, Python, Ruby, C#, and more, making it easy to plug your code into SignalWire with just a package install.
Compatibility APIs replicate Twilio's XML and REST interfaces — allowing existing Twilio-based applications to run on SignalWire with minimal or no code changes. The same verbs, webhooks, and endpoints are supported, and migration typically requires only a base URL change.
cXML is a drop-in replacement for TwiML — it supports the same verbs and call flow logic. The syntax is identical, so most existing TwiML documents work out of the box on SignalWire. After migrating, you can incrementally unlock advanced features like AI agents and real-time transcription.
In most cases, yes. Update your base URL from Twilio's to SignalWire's endpoint, and your existing TwiML or REST API calls will work. SignalWire's Compatibility SDKs support the same languages as Twilio, including Node.js, Python, Ruby, and C#.
After migration, you can progressively unlock capabilities including real-time transcription, AI voice agents, programmable SIP and trunking, answering machine detection, and advanced call control — features that go beyond what legacy CPaaS platforms offer.
Yes. Fax XML allows you to define automated routing, storage, or custom responses for incoming faxes using the same XML-based instruction pattern used for voice and messaging.
Contact us to get started.
Ready to Migrate?