Outbound Calling

Learn how to send outbound calls from Vapi.

Introduction to Outbound Calling

Vapi’s outbound calling API lets you programmatically initiate single or batch calls to any phone number. You can schedule calls for specific dates and times, ideal for time-sensitive communications. Easily integrate outbound calling into your app for appointment reminders, automated surveys, and call campaigns.

Prerequisites

  • Vapi Account: Access to the Vapi Dashboard for configuration.
  • Configured Assistant: Either a saved assistant or a transient assistant.
  • Phone Number: Either an imported phone number from one of the supported providers or a free Vapi number. (Note: You cannot make international calls with a free Vapi number).
  • Customer’s Phone Number: The phone number that you want to call.

Outbound Calls

You can place an outbound call from one of your phone numbers using the /call endpoint.

  1. Specify an Assistant: you must specify either a transient assistant in the assistant field or reuse a saved assistant in the assistantId field.
  2. Get a Phone Number: provide the phoneNumberId of the imported number or free Vapi number you wish to call from.
  3. Provide a Destination: Finally, pass the customer’s phone number or SIP URI in customer.

Provide your authorization token and now we’re ready to issue the API call!

1{
2 "assistantId": "assistant-id",
3 "phoneNumberId": "phone-number-id",
4 "customer": {
5 "number": "+11231231234"
6 }
7}

Scheduling Outbound Calls

To schedule a call for the future, use the schedulePlan parameter and pass a future ISO date-time string to earliestAt. This will be the earliest time Vapi will attempt to trigger the outbound call. You may also provider latestAt, which will be the latest time Vapi will attempt to trigger the call.

When you schedule a call, we will save the Assistant, Phone Number, and Customer Number resources and refetch them at the time of the call. If you choose to provide a saved assistant through assistantId, we will pick up the most up-to-date version of your assistant at the call time. Likewise, if you delete your saved assistant, the call will fail! To ensure the call is issued with a static version of an assistant, pass it as a transient assistant through the assistant parameter.

1{
2 "assistantId": "assistant-id",
3 "phoneNumberId": "phone-number-id",
4 "customer": {
5 "number": "+11231231234"
6 },
7 "schedulePlan": {
8 "earliestAt": "2025-05-30T00:00:00Z"
9 }
10}

Batch Calling

To call more than one number at a time, use the customers parameter to pass an array of customer. To provide customer specific assistant overrides, please call the endpoint separately for each destination number.

Use both customers and schedulePlan together to schedule batched calls.

1{
2 "assistantId": "assistant-id",
3 "phoneNumberId": "phone-number-id",
4 "customers": [
5 {
6 "number": "+11231231234"
7 },
8 {
9 "number": "+12342342345"
10 }
11 ],
12 "schedulePlan": {
13 "earliestAt": "2025-05-30T00:00:00Z"
14 }
15}

Note: Vapi free numbers have limited number of outbound calls per day. Import a number from Twilio, Vonage, or Telnyx to scale without limits.

It is a violation of FCC law to dial phone numbers without consent in an automated manner. See Telemarketing Sales Rule to learn more.