> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.vapi.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.vapi.ai/_mcp/server.

# Assistants quickstart

## Overview

Create a voice assistant, connect it to a phone number, and make your first calls. You can complete this quickstart in the Dashboard or with the Vapi API.

**In this quickstart, you'll:**

* Create and test an assistant
* Connect the assistant to a phone number
* Make inbound and outbound calls

## Prerequisites

* [A Vapi account](https://dashboard.vapi.ai)
* For cURL or SDK requests, a [Vapi API key](/security-and-privacy/api-keys)

## 1. Create an assistant

By default, when you create an assistant, the transcriber, model, and voice are set to the [Balanced preset](/assistants/model-intelligence/presets#balanced).

#### Dashboard

#### Open Assistants

Open the [Dashboard](https://dashboard.vapi.ai) and select **Assistants**.

#### Create an assistant

Select **Create Assistant** to create a blank assistant.

To start from a predefined template instead, select the down arrow next to **Create Assistant**, then choose a template.

#### Configure the conversation

Replace the content in **First Message** and **System Prompt** with the following examples.

**First message**

```txt title="First message" wordWrap
Hello! How can I help you today?
```

**System prompt**

```txt title="System prompt" wordWrap
You are a friendly phone support assistant. Greet the caller and offer help. Keep responses under 30 words. If a transfer is requested, confirm the reason first.
```

![Assistant editor with First Message and System Prompt fields visible and the other assistant names blurred](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/vapi.docs.buildwithfern.com/4be4530764eafda878f244745a169c26c5fbfae1a10f7326391ef23835c27c28/static/images/assistants/quickstart/configure-assistant-dashboard.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260910%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260910T003221Z&X-Amz-Expires=604800&X-Amz-Signature=e6e40bcfbf184a3c74c7ef7602a01c979b8cfeea4ebffdf6f0321ff791141130&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Publish the assistant

Select **Publish**, review the changes, then select **Quick Publish**. Publishing creates a new [assistant version](/assistants/versioning/versioning-assistants).

#### Test the assistant

Select **Talk** to start a web call. When prompted, allow the Dashboard to use your microphone.

#### cURL

#### Set your API key

Export your Vapi API key as an environment variable.

```bash
export VAPI_API_KEY="YOUR_VAPI_API_KEY"
```

#### Create the assistant

```bash
curl --request POST \
  --url https://api.vapi.ai/assistant \
  --header "Authorization: Bearer $VAPI_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "Support Assistant",
    "firstMessage": "Hello! How can I help you today?",
    "model": {
      "provider": "openai",
      "model": "gpt-4o",
      "messages": [
        {
          "role": "system",
          "content": "You are a friendly phone support assistant. Greet the caller and offer help. Keep responses under 30 words. If a transfer is requested, confirm the reason first."
        }
      ]
    }
  }'
```

Copy the `id` from the response. You will use it as `YOUR_ASSISTANT_ID` in the next steps.

#### TypeScript (Server SDK)

```typescript
import { VapiClient } from "@vapi-ai/server-sdk";

const vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });

const assistant = await vapi.assistants.create({
  name: "Support Assistant",
  firstMessage: "Hello! How can I help you today?",
  model: {
    provider: "openai",
    model: "gpt-4o",
    messages: [
      {
        role: "system",
        content: "You are a friendly phone support assistant. Greet the caller and offer help. Keep responses under 30 words. If a transfer is requested, confirm the reason first."
      }
    ]
  }
});
```

## 2. Connect a phone number

#### Dashboard

#### Open Phone Numbers

Open the [Dashboard](https://dashboard.vapi.ai) and select **Phone Numbers**.

#### Choose a phone number option

Select **Create Phone Number**, then choose **Free Vapi Number**. To use a number from another provider, choose the corresponding import option instead.

![Create Phone Number dialog with Free Vapi Number selected and the Area Code field visible](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/vapi.docs.buildwithfern.com/662e74455a037ba87b2742c162a98e79836251884085cfa50c9f964fd91fbf59/static/images/assistants/quickstart/create-phone-number-dashboard.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260910%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260910T003221Z&X-Amz-Expires=604800&X-Amz-Signature=3fef2e46db6581496ecd7a452e5734f6ed9f3ed7ebb341c0a2a37475c9f50b38&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Create the phone number

Enter a three-digit US area code in **Area Code**, then select **Create**.

Your first free Vapi number does not require a payment method. To create additional free Vapi numbers, add a payment method. You can create up to five free Vapi numbers in total.

Free Vapi phone numbers support US area codes only. For international use, import a number from another provider.

#### Connect the assistant

Open the phone number. Under **Inbound Settings**, choose the assistant you created in **Assistant**, then select **Save**.

#### cURL

#### Create and connect a phone number

Replace `YOUR_ASSISTANT_ID` with the assistant ID returned in the previous section.

```bash
curl --request POST \
  --url https://api.vapi.ai/phone-number \
  --header "Authorization: Bearer $VAPI_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "provider": "vapi",
    "numberDesiredAreaCode": "415",
    "assistantId": "YOUR_ASSISTANT_ID"
  }'
```

Copy the `id` from the response. You will use it as `YOUR_PHONE_NUMBER_ID` to make an outbound call.

#### TypeScript (Server SDK)

```typescript
const phoneNumber = await vapi.phoneNumbers.create({
  provider: "vapi",
  numberDesiredAreaCode: "415",
  assistantId: assistant.id
});
```

## 3. Make your first calls

### Test an inbound call

Call the phone number you created. Your assistant answers with its configured first message.

### Place an outbound call

#### Dashboard

#### Open the phone number

Open the [Dashboard](https://dashboard.vapi.ai), select **Phone Numbers**, then select the phone number that will place the call.

#### Open the test panel

Select **Test**.

#### Configure the call

Choose **Single Number**, enter the destination phone number, and choose your assistant in **Assistant**.

#### Place the call

Select **Call** to start the call immediately, or select **Schedule Call** to place it later.

![Test Outbound Call panel with Single Number, destination number, and assistant controls](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/vapi.docs.buildwithfern.com/594b81ece1a48000fae1cb162ac27451f9c719b9c5102d00a525bb7447401133/static/images/quickstart/dashboard/test-outbound-call-dashboard.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260910%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260910T003221Z&X-Amz-Expires=604800&X-Amz-Signature=874dc66f565758aa83567d8d45d3d3ac47a3a03a709346cea3853a4d129b064d&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### cURL

```bash
curl --request POST \
  --url https://api.vapi.ai/call \
  --header "Authorization: Bearer $VAPI_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "phoneNumberId": "YOUR_PHONE_NUMBER_ID",
    "assistantId": "YOUR_ASSISTANT_ID",
    "customer": {
      "number": "+15551234567"
    }
  }'
```

#### TypeScript (Server SDK)

```typescript
await vapi.calls.create({
  phoneNumberId: phoneNumber.id,
  assistantId: assistant.id,
  customer: { number: "+15551234567" }
});
```

## Next steps

* **Add tools**: [Custom tools](/tools/custom-tools)
* **Tune speech**: [Speech configuration](/customization/speech-configuration)
* **Use a preset**: [Model Intelligence presets](/assistants/model-intelligence/presets) bundle a transcriber, model, and voice for common use cases.
* **Structure data**: [Structured outputs](/assistants/structured-outputs)
* **Move to multi-assistant**: [Squads](/squads)