The short answer

Connecting Twilio lets Rexa place and answer calls on numbers you already own, through your own Twilio account. You paste an Account SID and an Auth Token; Rexa validates the pair against Twilio and refuses to save a suspended or closed account. The per-minute rate is unchanged, and Twilio bills you directly for the per-leg cost.

Last reviewed

How does Rexa connect to Twilio?

Twilio is the simplest of the three credential shapes: two fields, `account_sid` and `auth_token`, and nothing else. There is no application id to find, which is the main practical difference from Telnyx and Plivo.

Validation calls `GET /2010-04-01/Accounts/{SID}.json` with the pair. Rexa stores the account SID, friendly name, status and type from the response, so the dashboard can show which account you are connected to. A wrong pair returns `invalid_api_key`; a SID that does not resolve returns `invalid_application` with a reminder that Twilio account SIDs begin with `AC`.

A suspended or closed account is treated as its own case rather than a generic error. It maps to `application_disabled`, so you learn about it while saving the credential instead of when the first campaign fails to dial.

What are the setup steps?

Open the Twilio Console and copy the Account SID and Auth Token from the account you want calls to run on. In Rexa, add a Twilio provider and paste both. Validation runs on save and again on Test connection.

Once saved, numbers on that account appear on `GET /v1/phone-numbers` with `provider` set to `twilio`, and the `label` field is taken from each number’s Twilio friendly name — so naming numbers sensibly in Twilio pays off in Rexa’s from-number picker.

For inbound calls, point the number’s voice webhook at Rexa’s Twilio inbound endpoint. Outbound needs nothing further.

What is different about Twilio compared with the other carriers?

Two things worth knowing before you choose. First, caller-ID name is not surfaced: `GET /v1/phone-numbers` returns `caller_id_name` as `null` for every Twilio number, because Rexa only populates it for Telnyx.

Second, there is no inventory-scoping field. Plivo credentials accept an optional Application ID that narrows which numbers Rexa can see; Twilio credentials do not, so whichever account the SID belongs to, all of its numbers are visible. If you need that separation, use a Twilio subaccount and store that subaccount’s own SID and token.

Who pays the carrier?

If you would rather keep your own telecom account, you can connect Telnyx, Twilio or Plivo and run calls on your existing numbers. Rexa’s per-minute rate is the same either way, and your carrier bills you directly for their per-leg cost.

What happens when the carrier has a bad day?

Every tenant-and-carrier pair has its own circuit breaker. Five consecutive dispatch failures open it, and while it is open Rexa refuses to dispatch through that carrier at all. Sixty seconds later the breaker moves to half-open, which admits exactly one probe call. A successful probe closes it; a failed probe re-opens it and restarts the sixty-second clock, keeping the failure count at the threshold so the next recovery needs a good probe rather than another five failures.

The breaker is scoped per tenant, so another account’s bad afternoon never takes your carrier out of rotation. If you have a second carrier configured, the router skips the open one and tries the next by priority.

Frequently asked questions

Does Rexa support Twilio subaccounts?
Yes, in the sense that a subaccount has its own Account SID and Auth Token and you can store those. There is no separate subaccount field — whichever account the SID belongs to is the account the calls run on and the account Twilio invoices.
Will my Twilio numbers show a caller name in Rexa?
No. The `caller_id_name` field on the phone-numbers endpoint is null for Twilio and Plivo numbers. Rexa currently populates CNAM for Telnyx numbers only, so if that value matters in your own tooling, Telnyx is the carrier that provides it.
Do I still pay Rexa’s per-minute rate if I bring Twilio?
Yes, and it is the same rate either way. What changes is that you hold the carrier relationship, so Twilio invoices you directly for the per-leg cost rather than that cost sitting inside Rexa’s rate.

Scope, limitations, and sources

Rexa dials through your Twilio account; it does not use Twilio’s own conversational-AI products, TwiML applications or Studio flows, and it will not build them for you. Credential validation is a single read-only GET against the account resource — Rexa never buys numbers, changes configuration, or writes anything into your Twilio account. Caller-ID name is not read back from Twilio. There is no subaccount selector: one credential row is one Account SID and Auth Token pair. Validation retries three times with one-second linear backoff on timeouts and rate-limits only; a 4xx that is not a 429 fails immediately, because retrying a deterministic rejection just wastes time.

Sources

  • Telecom provider credential fields, credential validation, priority ordering and circuit-breaker behaviour. rexa.ai (accessed )
  • The per-minute rate, what it includes, and how bring-your-own telecom is billed. rexa.ai (accessed )

Spotted something out of date or wrong? Tell us on the contact page and we will correct it and update the review date.