Skip to main content

Programmable Voice

Make and receive phone calls from your application.

If you have not placed a call yet, use the quickstart. It connects two numbers in about five minutes.

Common tasks​

I want toStart here
Connect two phone numbersConnect Two Numbers
Connect an agent to a customerConnect Agent to Customer
Connect a number to an IVR flowConnect Number to Call Flow
Handle a call that comes into my ExoPhoneProgram Incoming Call
Build an IVR menuIVR Menu Applet
Look up a call after it endsCall Details
Download a recordingVoice Log Download

How a call works​

You send a POST request. Exotel rings the first number. After that person answers, Exotel rings the second number. Both sides talk through your ExoPhone, so the customer sees your business number, not a personal one.

For inbound calls, attach a call flow to the ExoPhone. Exotel follows that flow when someone dials in.

Which URL to call​

CCM is Contact Center Management. Use CCM APIs if you run contact center operations on my*.exotel.com.

To connect two numbers, POST to api.exotel.com:

POST /v1/Accounts/{account_sid}/Calls/connect

To connect an agent who is already in your dashboard, POST to ccm-api.exotel.com:

POST /v2/accounts/{account_sid}/calls

The agent needs a device that is on. For queues, processes, and leads, see Contact Center.

To read the call after it ends (legs, digits, recordings), GET from ccm-api.exotel.com:

GET /v3/accounts/{account_sid}/calls/{call_sid}

You can place the call on one URL and read it on the other. Each API page lists the host and path for that request.

API reference​

TaskMethodPath
Connect Two NumbersPOST/v1/Accounts/{account_sid}/Calls/connect
Connect Agent to CustomerPOST/v2/accounts/{account_sid}/calls
Connect Number to Call FlowPOST/v1/Accounts/{account_sid}/Calls/connect
Program Incoming Call—Call flow on the ExoPhone
Call DetailsGET/v1/Accounts/{account_sid}/Calls/{call_sid}
Call Details (CCM)GET/v3/accounts/{account_sid}/calls/{call_sid}
Call legsGET/v3/accounts/{account_sid}/calls/{call_sid}/legs
Voice logsGET/v3/accounts/{account_sid}/calls/{call_sid}/voice-logs
Number metadataGET/v1/Accounts/{account_sid}/Numbers/{number}
Account balanceGET/v1/Accounts/{account_sid}/Balance.json
Status callback—Webhook on your server

Applets​

Applets are the blocks in a call flow. You use them for greetings, menus, transfers, voicemail, and hangup. See the Applets list.

Base URLs​

JobSingaporeMumbai
Place a call, applets, older call recordsapi.exotel.comapi.in.exotel.com
Contact Center Management (CCM)ccm-api.exotel.comccm-api.in.exotel.com

Auth is HTTP Basic. Use the API key and token from the dashboard under Settings → API Settings. See Authentication.

Voice APIs allow 200 calls per minute. A higher rate returns HTTP 429.