# Vapi

> Make outbound voice calls and manage call operations using the Vapi voice AI platform.

Source: https://cotera.co/docs/reference/tools/individual-tools/vapi

---

**Authentication Type:** API Key\
**Description:** Make outbound voice calls and manage call operations using the Vapi voice AI platform.

***

## Authentication

To authenticate, you'll need a Vapi API key. Create one in your [Vapi Dashboard](https://dashboard.vapi.ai/org/api-keys).

***

## Calls

Operations for Vapi voice call management.

### Create Call

Creates an outbound voice call with a specified assistant and phone number.

**Operation Type:** Mutation (Write)

**Parameters:**

* **phoneNumberId** `string` (required): The ID of the Vapi phone number to use for the outbound call
* **toNumber** `string` (required): Single phone number to call (E.164 format, e.g., +1234567890). Use empty string if using toNumbers instead
* **toNumbers** `string` (required): Comma-separated phone numbers for batch calls (e.g., "+1234567890,+1987654321"). Use empty string if using toNumber instead
* **assistantId** `string` (required): The ID of the saved assistant to use for the call. Use empty string if using transientAssistant instead
* **transientAssistant** `string` (required): JSON string of transient assistant configuration. Use empty string if using assistantId instead
* **variablesJson** `string` (required): JSON string of variables to pass to the assistant (e.g., `{"recipientName": "John"}`). Use empty string if no variables needed
* **scheduleIsoUtc** `string` (required): ISO UTC timestamp to schedule the call for the future (e.g., "2025-08-30T16:00:00Z"). Use empty string for immediate execution

**Returns:**

* **callId** `string` (nullable): The unique ID of the created call
* **status** `string` (nullable): The initial status of the call (e.g., "queued")
* **type** `string` (nullable): The type of call (e.g., "outboundPhoneCall")
* **phoneCallProviderId** `string` (nullable): The phone call provider ID (e.g., Twilio call SID)
* **monitorUrls** `object` (nullable): URLs for monitoring and controlling the call
  * **listenUrl** `string` (nullable): WebSocket URL for listening to the call
  * **controlUrl** `string` (nullable): HTTP URL for controlling the call
* **customer** `object` (nullable): Customer information for single calls
  * **number** `string`: The customer phone number that was called
* **customers** `array of objects` (nullable): Customer information for batch calls
  * **number** `string`: A customer phone number that was called
* **cost** `number` (nullable): The cost of the call
* **assistantOverrides** `object` (nullable): Assistant overrides including variables
  * **variableValues** `object` (nullable): The variables passed to the assistant

**Example Usage:**

```json
{
  "phoneNumberId": "277492ce-8764-4396-9d44-e2ea36fbdd92",
  "toNumber": "+14024151234",
  "toNumbers": "",
  "assistantId": "aeb8c6c4-fe98-42b0-a212-9f978e89c5a5",
  "transientAssistant": "",
  "variablesJson": "{\"recipientName\": \"John Doe\", \"appointmentTime\": \"3:00 PM\"}",
  "scheduleIsoUtc": ""
}
```

### Get Call Status

Retrieves the current status and details of a Vapi voice call.

**Operation Type:** Query (Read)

**Parameters:**

* **callId** `string` (required): The ID of the call to check status for

**Returns:**

* **callId** `string` (nullable): The call ID
* **status** `string` (nullable): The current status of the call
* **type** `string` (nullable): The type of call
* **cost** `number` (nullable): The cost of the call
* **startedAt** `string` (nullable): ISO timestamp when the call started
* **endedAt** `string` (nullable): ISO timestamp when the call ended
* **duration** `number` (nullable): Call duration in seconds
* **endedReason** `string` (nullable): Reason the call ended
* **customer** `object` (nullable): Customer information
  * **number** `string`: The customer phone number
* **transcript** `string` (nullable): Call transcript if available
* **summary** `string` (nullable): Call summary if available

**Example Usage:**

```json
{
  "callId": "86996dc5-6df3-46d0-9f49-6fcabff234e3"
}
```

***

## Common Use Cases

**Outbound Sales Calls:**

* Make personalized sales calls with AI assistants
* Pass customer-specific variables for personalized conversations
* Schedule calls for optimal timing across time zones

**Customer Support:**

* Create automated follow-up calls for support tickets
* Provide proactive customer service with AI-powered calls
* Schedule reminder calls for appointments or renewals

**Appointment Scheduling:**

* Make automated appointment confirmation calls
* Send appointment reminders with personalized details
* Handle rescheduling requests through voice interactions

**Lead Qualification:**

* Conduct initial lead qualification calls at scale
* Gather information and qualify prospects automatically
* Schedule follow-up calls based on qualification results

