Skip to content

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.

Twiliovolai
Account SID + Auth Tokenvk_... API key
Messages resourcePOST /v1/messages
From (sender number)fromNumber (SMS number add-on)
Calls resourcePOST /v1/calls
IncomingPhoneNumbersGET and POST /v1/numbers (SMS numbers: GET and POST /v1/sms-numbers)
Incoming message webhook (SmsUrl)message.received event
StatusCallbackwebhook events
TwiMLvoice agent (systemPrompt)
X-Twilio-SignatureVolai-Signature

Code side by side

Sending an SMS - same idea, different API.

Twilio (Node.js SDK)

javascript
const twilio = require("twilio");
const client = twilio(accountSid, authToken);

await client.messages.create({
  body: "Hi from Twilio!",
  from: "+15017122661",
  to: "+420777123456",
});

volai (fetch)

javascript
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.

text
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

  1. 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.

  2. Key

    Generate an API key in the portal, under AI assistant.

  3. 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.

  4. Test

    Before you switch live traffic, send yourself an SMS and place a test call to your own phone.

  5. 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.