> ## Documentation Index
> Fetch the complete documentation index at: https://plivo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Make Bulk Calls

> Make outgoing voice calls to multiple numbers with text-to-speech greetings

> [tab] Node
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. You can also follow our instructions to set up a Node.js development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > Create a file called `Bulkcall.js` and paste into it this code.
> >
> > ```js theme={null}
> > var plivo = require('plivo');
> >
> > (function main() {
> >     'use strict';
> >
> >     var client = new plivo.Client("<auth_id>","<auth_token>");
> >     client.calls.create(
> >         "<caller_id>", // from
> >         "+14151234567<+14151234568", // to
> >         "https://s3.amazonaws.com/static.plivo.com/answer.xml", // answer url
> >         {
> >             answerMethod: "GET",
> >         },
> >     ).then(function (response) {
> >         console.log(response);
> >     }, function (err) {
> >         console.error(err);
> >     });
> > })();
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.
> >
> > ```shell theme={null}
> > $ node Bulkcall.js
> > ```

> [tab] Ruby
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first  outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. You can also follow our instructions to set up a Ruby development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > Create a file called `bulk_call.rb` and paste into it this code.
> >
> > ```rb theme={null}
> > require 'rubygems'
> > require 'plivo'
> >
> > include Plivo
> > include Plivo::Exceptions
> >
> > api = RestClient.new("<auth_id>","<auth_token>")
> >
> > begin
> >   response = api.calls.create(
> >     '<caller_id>',
> >     ['<destination_number1>', '<destination_number2>'],
> >     'https://s3.amazonaws.com/static.plivo.com/answer.xml',
> >      {
> >             answer_method: "GET",
> >      },
> >   )
> >   puts response
> > rescue PlivoRESTError => e
> >   puts 'Exception: ' + e.message
> > end
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.
> >
> > ```shell theme={null}
> > $ ruby bulk_call.rb
> > ```

> [tab] Python
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. You can also follow our instructions to set up a Python development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > Create a file called `bulk_call.py` and paste into it this code.
> >
> > ```py theme={null}
> > import plivo
> >
> > client = plivo.RestClient('<auth_id>','<auth_token>')
> > response = client.calls.create(
> >     from_='<caller_id>',
> >     to_='+14151234567<+14151234568',
> >     answer_url='https://s3.amazonaws.com/static.plivo.com/answer.xml',
> >     answer_method='GET', )
> > print(response)
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.
> >
> > ```shell theme={null}
> > $ python bulk_call.py
> > ```

> [tab] PHP
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. You can also follow our instructions to set up a PHP development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > Create a file called `BulkCall.php` and paste into it this code:
> >
> > ```php theme={null}
> > <?php
> > require 'vendor/autoload.php';
> > use Plivo\RestClient;
> >
> > $auth_id    = "<auth_id>";
> > $auth_token = "<auth_token>";
> > $p          = new RestClient($auth_id, $auth_token);
> >
> > $response = $client->calls->create('<caller_id>',
> >                                  ['<destination_number1>', '<destination_number2>'],
> >                                  'https://s3.amazonaws.com/static.plivo.com/answer.xml',);
> > print_r($response);
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.
> >
> > ```shell theme={null}
> > $ php BulkCall.php
> > ```

> [tab] .NET
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. You can also follow our instructions to set up a .NET development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > In Visual Studio, in the CS project, open the file `Program.cs` and paste into it this code.
> >
> > ```cs theme={null}
> > using System;
> > using System.Collections.Generic;
> > using Plivo;
> >
> > namespace testplivo
> > {
> >     class Program
> >     {
> >         static void Main(string[] args)
> >         {
> >             var api = new PlivoApi("<auth_id>","<auth_token>");
> >             var response = api.Call.Create(
> >                 to: new List<String> { "<destination_number1>", "<destination_number2>" },
> >                 from: "<caller_id>",
> >                 answerMethod: "GET",
> >                 answerUrl: "https://s3.amazonaws.com/static.plivo.com/answer.xml"
> >             );
> >             Console.WriteLine(response);
> >         }
> >     }
> > }
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.

> [tab] Java
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. You can also follow our instructions to set up a Java development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > Create a Java class in the project called `BulkCall` and paste into it this code.
> >
> > ```java theme={null}
> > import java.io.IOException;
> > import java.util.Collections;
> > import com.plivo.api.Plivo;
> > import com.plivo.api.exceptions.PlivoRestException;
> > import com.plivo.api.models.call.Call;
> > import com.plivo.api.models.call.CallCreateResponse;
> >
> > class MakeCall {
> >     public static void main(String [] args) throws IOException, PlivoRestException {
> >         Plivo.init("<auth_id>","<auth_token>");
> >         CallCreateResponse response = Call.creator("<caller_id>",
> >                 Collections.singletonList("<destination_number1>", "<destination_number2>"),
> >                 "https://s3.amazonaws.com/static.plivo.com/answer.xml")
> >                 .answerMethod("GET")
> >                 .create();
> >         System.out.println(response);
> >     }
> > }
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.

> [tab] Go
>
> ## Overview
>
> This guide shows how to make an outgoing call to multiple numbers and greet call recipients with a text-to-speech message when they answer. Use cases such as voice notifications and alerts, voice surveys, and voice one-time passwords involve outbound calls as part of their call flow.
>
> You can start making and receiving calls either by using our PHLO visual workflow builder or our APIs and XML documents. Follow the instructions in one of the tabs below.
>
> > [tab] Using XML
> >
> > To make bulk calls using Plivo APIs, you make an HTTP POST request to the Call API as you would to place a single outbound call, but add multiple destination numbers.
> >
> > ## How it works
> >
> > ![Outbound Call Flow](https://mintcdn.com/plivo/M2NzHE_bNZbCm0gd/images/make-bulk-calls.png?fit=max\&auto=format\&n=M2NzHE_bNZbCm0gd\&q=85\&s=fea79ace9feb45bfb5ee7bbb98831781)
> >
> > Plivo requests an answer URL when the call is answered (step 4) and expects the file at that address to hold a valid XML response from the application with instructions on how to handle the call. To see how this works, you can use [https://s3.amazonaws.com/static.plivo.com/answer.xml](https://s3.amazonaws.com/static.plivo.com/answer.xml) as an answer URL to test your first outgoing call. The file contains this XML code:
> >
> > ```xml theme={null}
> > <Response>
> > <Speak>Congratulations! You've made your first outbound call!</Speak>
> > </Response>
> > ```
> >
> > This code instructs Plivo to say, “Congratulations! You’ve made your first outbound call!” to the call recipients. You can find the entire list of valid Plivo XML verbs in our [XML Reference](https://plivo.com/docs/voice/xml/overview.md) documentation and a web server and safely expose that server to the internet.
> >
> > ## Prerequisites
> >
> > To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. If this is your first time using Plivo APIs, follow our instructions to set up a Go development environment.
> >
> > ## Make an outbound call to multiple numbers
> >
> > Create a file called `BulkCall.go` and paste into it this code:
> >
> > ```go theme={null}
> > package main
> >
> > import "fmt"
> > import "github.com/plivo/plivo-go/v7"
> >
> > func main() {
> > 	client, err := plivo.NewClient("<auth_id>","<auth_token>", &plivo.ClientOptions{})
> > 	if err != nil {
> > 			fmt.Print("Error", err.Error())
> > 			return
> > 		}
> > 	response, err := client.Calls.Create(
> > 		plivo.CallCreateParams{
> > 			From: "<caller_id>",
> > 			To: "+14151234567<+14151234568",
> > 			AnswerURL: "https://s3.amazonaws.com/static.plivo.com/answer.xml",
> > 			AnswerMethod: "GET",
> > 		},
> > 	)
> > 	if err != nil {
> > 			fmt.Print("Error", err.Error())
> > 			return
> > 		}
> > 	fmt.Printf("Response: %#v\n", response)
> > }
> > ```
> >
> > Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234).
> >
> > ## Test
> >
> > Save the file and run it.
> >
> > ```shell theme={null}
> > go run BulkCall.go
> > ```
