Migration
Migrate from Twilio to volai in an afternoon.
A smaller API, the same concepts. Twilio terms mapped to volai, code compared side by side, a ready prompt for your AI agent, and a checklist of everything to switch.
Does it make sense for you?
Yes, if you need
- Czech phone numbers (+420) and local call rates.
- A voice agent that works out of the box, not one built from audio streams and your own model.
- Billing in Czech crowns with no currency surprises on your card statement.
Stay with Twilio if you need
- More than two numbers for receiving SMS, or receiving SMS in other countries - volai voice numbers cannot receive SMS, and only the SMS number add-on does (a Czech mobile number for SMS only, at most two per account; verification codes from services are not guaranteed).
- Phone numbers outside the Czech Republic and Slovakia (Bratislava area code only).
- WhatsApp, video or other communication channels.
What maps to what
The Twilio SDK won't just point at volai by changing an address - it's a smaller, different API. The concepts map one to one, though.
| Twilio | volai |
|---|---|
| Account SID + Auth Token | vk_... API key |
| Messages resource | POST /v1/messages |
| From (sender number) | fromNumber (SMS number add-on) |
| Calls resource | POST /v1/calls |
| IncomingPhoneNumbers | GET and POST /v1/numbers (SMS numbers: GET and POST /v1/sms-numbers) |
| Incoming message webhook (SmsUrl) | message.received event |
| StatusCallback | webhook events |
| TwiML | voice agent (systemPrompt) |
| X-Twilio-Signature | Volai-Signature |
Code side by side
Sending an SMS - same idea, different API.
Twilio (Node.js SDK)
const twilio = require("twilio");
const client = twilio(accountSid, authToken);
await client.messages.create({
body: "Hi from Twilio!",
from: "+15017122661",
to: "+420777123456",
});volai (fetch)
await fetch("https://volai.cz/v1/messages", {
method: "POST",
headers: {
Authorization: "Bearer vk_YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "+420777123456",
body: "Hi from volai!",
}),
});Twilio sets the sender with the from field. volai ignores from and picks the sender with fromNumber (a number from GET /v1/sms-numbers, the SMS number add-on). Without fromNumber, SMS go out under the shared sender name SMSinfo, which recipients cannot reply to.
Give it to your AI agent
Copy the prompt into Claude Code, Cursor or another AI editor and let it do the migration for you - SKILL.md gives it the full reference.
Read https://volai.cz/SKILL.md. Find the Twilio SDK calls for SMS and calls in my project (client.messages.create, client.calls.create) and rewrite them to the volai REST API: POST https://volai.cz/v1/messages for SMS, POST https://volai.cz/v1/calls for calls, header Authorization: Bearer vk_YOUR_KEY. Also update webhook handling to the format in SKILL.md, including verifying the Volai-Signature header.Switch checklist
Number
Buy a Czech number (POST /v1/numbers or in the portal) and set its routing - agent, forwarding, or SIP. For receiving SMS and sending from your own number, also buy an SMS number (POST /v1/sms-numbers or in the portal under Numbers): a Czech mobile number for SMS only, with no calls.
Key
Generate an API key in the portal, under AI assistant.
Webhook
Set the webhook (PUT /v1/webhook) to the same address your Twilio StatusCallback uses today, and update the handler for the new event shape.
Test
Before you switch live traffic, send yourself an SMS and place a test call to your own phone.
DNS and old contacts
You usually don't need to touch DNS - volai doesn't use your domain. Do check websites, email signatures and documentation for the old phone number written in by hand.
When to stay with Twilio
Migrating isn't for everyone - beyond the overview above, weigh this too:
- Outbound calls from volai only reach Czech and Slovak numbers (+420, +421) - you can't call abroad, even from a Czech number you own.
- You need more than 60 requests a minute - that's the shared rate limit on both the REST API and the MCP server.
Start migrating
Signing up takes a minute and your first 50 CZK in credit is on us - try the new API before you switch live traffic.