Programmable Voice

Build conversations anywhere. Make, receive, and monitor calls around the world using the Voice API that developers rely on.

Sign up and start building
Control calls with code
Conversations can happen anywhere. The Twilio Voice API lets you make, manage and route calls to a browser, an app, your phone, or anywhere else you can take a call.
When you start the phone call, the Twilio Voice API provides both a phone number to call, and a server location that will provide TwiML instructions on how to route the phone call.

Try a phone call from the Voice API

  • PHP
  • Node
  • Python
  • Ruby
  • Java
  • .NET (C#)

require 'Services/Twilio.php';


$client = new Services_Twilio($sid, $token, $version);

$phonenumber = '+14154834499';

try {
  $call = $client->account->calls->create(
  echo 'Started call: ' . $call->sid;
} catch (Exception $e) {
  echo 'Error: ' . $e->getMessage();
@using Twilio;

  string accountSid = "ACXXXXXXXXXXXXXXXXX";
  string authToken = "YYYYYYYYYYYYYYYYYY";

  string phonenumber = "+14154834499";

  var client = new TwilioRestClient(accountSid, authToken);

  var call = client.InitiateOutboundCall(

  if (call.RestException == null)
    Response.Write(string.Format("Started call: {0}", call.Sid));
  } else {
    Response.Write(string.Format("Error: {0}",
import java.util.Map;
import java.util.HashMap;

import com.twilio.sdk.TwilioRestClient;
import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.resource.instance.Account;
import com.twilio.sdk.resource.instance.Call;
import com.twilio.sdk.resource.factory.CallFactory;

public class MakeCall {

  public static final String ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX";
  public static final String AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY";

  public static void main(String[] args) throws TwilioRestException {

    TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
    Account mainAccount = client.getAccount();
    CallFactory callFactory = mainAccount.getCallFactory();
    Map<String, String> callParams = new HashMap<String, String>();
    callParams.put("From", "+14154834499");
    callParams.put("To", "555-123-4567");
    callParams.put("Url", "");
    Call call = callFactory.create(callParams);
var client = require('twilio')('ACXXXXXXXXXXXXXXXXX', 'YYYYYYYYYYYYYYYYYY');

  from: '+14154834499',
  to: '555-123-4567',
  url: ''
}, function (err, responseData) {
from import TwilioRestClient

client = TwilioRestClient(account_sid, auth_token)

call = client.calls.create(
print call.sid
require 'rubygems'
require 'twilio-ruby'


@client = account_sid, auth_token

@call = @client.account.calls.create(
  :from => '+14154834499',
  :to => '555-123-4567',
  :url => ''
Hardware is painful. Software is powerful.
Build the exact call experience you want using an intuitive API that scales beyond anything you can do with outdated hardware.
Quality calls with low latency and clear audio
Latency can break up the natural rhythm of your call. Twilio ensures call quality by routing calls to the nearest data center around the world.
Create new lines of communication
Embed PSTN, SIP, or VoIP calling into any app, site, or service. The Voice API lets you build experiences using a simple HTTP request.
Build the exact voice experience you want
With comprehensive documentation and a community of 1.6 million developers, build the custom calling experience of your dreams.
Twilio Proxy:
Connect to Your Customers Without Sacrificing Privacy
Empower front-line workers to talk with customers on their own devices without revealing personal contact information. The Proxy API handles all the hard parts of scaling masked calling, including phone number management and recycling.
Learn about Proxy
Deploy or drag & drop
Write and deploy, or drag and drop with the Twilio Studio visual editor.
Save time and sprints with Twilio Studio. Now anyone on your team can create or modify voice flows using your code or Twilio’s code, all within a common framework.
Flexible voice pricing options
As low as $0.003/min for inbound calls and $0.0095/min 
for outbound calls, select the pricing option that’s right for you.
Pay only for what you use, when you use it. No contracts. No capacity planning.
Volume discounts
Automatically receive discount pricing once your application reaches volume scale.
Committed-use discounts
Receive larger discounts with monthly committed volume. Contact our sales team to learn more.
See Voice pricing
Build on Twilio. Code with confidence.
Zero maintenance windows
Twilio ships over 100k deployments every year, while maintaining 99.999% uptime.
99.999% API Success Rate
If an API is up but returns errors, it means your app is down. API success rate is critical to maintaining your application experience.
Data privacy & compliance
ISO 27001 compliance and a commitment to GDPR Compliance by May 2018 means even the largest enterprises can trust Twilio with their data.
Proactive carrier rerouting
Twilio makes over one million routing optimizations per year, ensuring that carrier downtime doesn’t affect your application.
No unwanted calls
120 Day, 7-point phone number cleaning process ensures clean numbers that don’t receive calls meant for previous owners.
Global coverage
Call any country in the world with voice-enabled local numbers in over 100 countries, and thousands of local carrier connections.