Agent Native

create-call

This skill creates one-off outbound phone calls, web calls, and batch calls via the Vapi API.

by VapiOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (VapiAI)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, claude.ai and API
License
MIT (permissive)
Pin
ecd56bdpinned Oct 9, 2026
Context cost
about 1,500 tokenswhen the skill loads
GitHub stars
66on vapiai/skills
Scripts
None found

What it does

“Create one-off outbound phone calls, web calls, scheduled calls, and simple batch calls using the Vapi API. Use when making or testing individual calls or initiating a bounded /call request programmatically. Use create-campaign for a persistent multi-contact Campaign with lifecycle, reporting, cancellation, duplication, or campaign webhooks.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill creates one-off outbound phone calls, web calls, and batch calls via the Vapi API. It lets agents initiate voice assistant interactions with real phone numbers, schedule future calls, or define temporary assistants inline. Requires a Vapi API key and supports custom metadata and call tracking.

When to use it

  • Testing individual voice assistant calls programmatically
  • Making bounded outbound phone calls to one or few numbers
  • Scheduling calls for future times with date and time windows
  • Creating web-based calls without phone infrastructure

When not to

  • Managing persistent campaigns with lifecycle monitoring and reporting
  • Handling large-scale multi-contact operations with campaign features
  • Building contact deduplication or bulk campaign workflows

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add vapiai/skills --skill create-call

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install vapiai/skills create-call@ecd56bd32688be8ea6fe54029445b536333d8d9c

Installs the commit we checked (ecd56bd).

Copy by hand

Download the folder at ecd56bd and put it in .claude/skills/create-call for Claude Code and in .agents/skills/create-call for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at ecd56bd

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "create-call" by Vapi.

Source, pinned to commit ecd56bd32688be8ea6fe54029445b536333d8d9c:
https://github.com/vapiai/skills/tree/ecd56bd32688be8ea6fe54029445b536333d8d9c/create-call

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/create-call/ for Claude Code and .agents/skills/create-call/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/vapi/create-call

SKILL.md at the pin

---
name: create-call
description: Create one-off outbound phone calls, web calls, scheduled calls, and simple batch calls using the Vapi API. Use when making or testing individual calls or initiating a bounded /call request programmatically. Use create-campaign for a persistent multi-contact Campaign with lifecycle, reporting, cancellation, duplication, or campaign webhooks.
license: MIT
compatibility: Requires internet access and a Vapi API key (VAPI_API_KEY).
metadata:
  author: vapi
  version: "1.0"
---

# Vapi Call Creation

Initiate outbound phone calls, web calls, and batch calls using Vapi's API. Connect your voice assistants to real phone numbers and test them programmatically.

> **Setup:** Ensure `VAPI_API_KEY` is set. See the `setup-api-key` skill if needed.

## Quick Start — Outbound Phone Call

### cURL

```bash
curl -X POST https://api.vapi.ai/call \
  -H "Authorization: Bearer $VAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assistantId": "your-assistant-id",
    "phoneNumberId": "your-phone-number-id",
    "customer": {
      "number": "+11234567890"
    }
  }'
```

### TypeScript (Server SDK)

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

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

const call = await vapi.calls.create({
  assistantId: "your-assistant-id",
  phoneNumberId: "your-phone-number-id",
  customer: {
    number: "+11234567890",
  },
});

console.log("Call created:", call.id);
```

### Python

```python
import requests
import os

response = requests.post(
    "https://api.vapi.ai/call",
    headers={
        "Authorization": f"Bearer {os.environ['VAPI_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "assistantId": "your-assistant-id",
        "phoneNumberId": "your-phone-number-id",
        "customer": {"number": "+11234567890"},
    },
)

call = response.json()
print(f"Call initiated: {call['id']}")
```

## Call Types

### Outbound Phone Call

Requires an assistant, a Vapi phone number, and a customer number.

```json
{
  "assistantId": "assistant-id",
  "phoneNumberId": "phone-number-id",
  "customer": {
    "number": "+11234567890",
    "name": "John Doe",
    "numberE164CheckEnabled": true
  }
}
```

### Web Call

For browser-based calls — no phone number needed. Use the Vapi Web SDK on the client side.

```json
{
  "assistantId": "assistant-id"
}
```

Client-side (JavaScript):
```javascript
import Vapi from "@vapi-ai/web";

const vapi = new Vapi("your-public-key");
vapi.start("your-assistant-id");
```

### Transient Assistant Call

Define an assistant inline instead of referencing a saved one:

```json
{
  "assistant": {
    "name": "Quick Test",
    "firstMessage": "Hello! This is a test call.",
    "model": {
      "provider": "openai",
      "model": "gpt-4.1",
      "messages": [
        {
          "role": "system",
          "content": "You are a test assistant. Confirm the call is working and end politely."
        }
      ]
    },
    "voice": { "provider": "vapi", "voiceId": "Elliot", "version": 2 },
    "transcriber": { "provider": "deepgram", "model": "nova-3", "language": "en" }
  },
  "phoneNumberId": "phone-number-id",
  "customer": {
    "number": "+11234567890"
  }
}
```

## Scheduled Calls

Schedule a call for a future time:

```json
{
  "assistantId": "assistant-id",
  "phoneNumberId": "phone-number-id",
  "customer": {
    "number": "+11234567890"
  },
  "schedulePlan": {
    "earliestAt": "2025-06-15T14:00:00Z",
    "latestAt": "2025-06-15T15:00:00Z"
  }
}
```

- `earliestAt` — Earliest time to attempt the call (ISO 8601)
- `latestAt` — Latest time to attempt the call (optional)
- If using `assistantId`, the latest version of the assistant is used at call time
- For a fixed assistant config, use `assistant` (transient) instead

## Batch Calls

Call multiple numbers in one request:

```json
{
  "assistantId": "assistant-id",
  "phoneNumberId": "phone-number-id",
  "customers": [
    { "number": "+11234567890", "name": "Alice" },
    { "number": "+10987654321", "name": "Bob" },
    { "number": "+15551234567", "name": "Carol" }
  ]
}
```

Combine with `schedulePlan` for scheduled batch calls.

Use this `/call` batch only when the user does not need a persistent Campaign resource. Use the `create-campaign` skill for campaign-level monitoring, contact outcomes, duplication, cancellation, concurrency, or webhooks.

## Call with Metadata

Pass custom data accessible during the call:

```json
{
  "assistantId": "assistant-id",
  "phoneNumberId": "phone-number-id",
  "customer": {
    "number": "+11234567890"
  },
  "metadata": {
    "orderId": "ORD-12345",
    "department": "billing"
  }
}
```

## Managing Calls

```bash
# List calls
curl "https://api.vapi.ai/call?limit=10" \
  -H "Authorization: Bearer $VAPI_API_KEY"

# Get a specific call
curl https://api.vapi.ai/call/{id} \
  -H "Authorization: Bearer $VAPI_API_KEY"

# Get call with transcript and recording
curl https://api.vapi.ai/call/{id} \
  -H "Authorization: Bearer $VAPI_API_KEY"
# Response includes: artifact.transcript, artifact.recordingUrl,
# analysis.summary, and costBreakdown when those outputs are enabled

# Delete a call
curl -X DELETE https://api.vapi.ai/call/{id} \
  -H "Authorization: Bearer $VAPI_API_KEY"
```

## Call Response

A successful call creation returns:

```json
{
  "id": "call-uuid",
  "orgId": "org-uuid",
  "type": "outboundPhoneCall",
  "status": "queued",
  "assistantId": "assistant-id",
  "phoneNumberId": "phone-number-id",
  "customer": {
    "number": "+11234567890"
  },
  "createdAt": "2025-01-15T10:00:00Z"
}
```

Call statuses: `queued` → `ringing` → `in-progress` → `ended`

## Compliance Warning

It is a violation of FCC law to dial phone numbers without consent in an automated manner. Review TCPA consent requirements before launching automated call campaigns.

## References

- [Vapi Outbound Calls Docs](https://docs.vapi.ai/calls/outbound-calling)
- [Call Features](https://docs.vapi.ai/calls/call-features)
- [Voicemail Detection](https://docs.vapi.ai/calls/voicemail-detection)

## Additional Resources

Vapi provides a **documentation MCP server** that gives compatible AI agents access to the Vapi knowledge base. Use its documentation search for advanced configuration, troubleshooting, SDK details, and anything beyond this skill.

**Manual setup:** If your agent doesn't auto-detect the config, run:
```bash
claude mcp add vapi-docs -- npx -y mcp-remote https://docs.vapi.ai/_mcp/server
```

See the [Vapi MCP integration guide](https://docs.vapi.ai/cli/mcp) for setup instructions across supported agents.

From vapiai/skills at ecd56bd, shown as plain text under its license: MIT (permissive). The license text is in create-call/SKILL.md.

View SKILL.md on GitHub at ecd56bd

Files

1 file, 6.7 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at ecd56bd
All 24 skills from Vapi

More from Vapi

  • create-assistant

    Designs and creates Vapi voice assistants for phone and web by managing system prompts, provider selection, tool integration, and API validation.

    Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago

  • create-assistant

    This skill designs and creates Vapi voice assistants for phone and web calls.

    Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago

  • create-call

    This skill enables agents to create outbound phone calls, web calls, and batch calls via the Vapi API.

    Claude Code, Codex, Cursor +4 · about 1.5K tokens · pinned 6 days ago

  • create-campaign

    This skill enables agents to create, manage, and diagnose Vapi outbound campaigns for reaching multiple contacts with personalized calls using the…

    Claude Code, Codex, Cursor +4 · about 3.1K tokens · pinned 6 days ago

  • create-campaign

    This skill creates, manages, and monitors Vapi outbound calling campaigns for multi-contact operations.

    Claude Code, Codex, Cursor +4 · about 3.1K tokens · pinned 6 days ago

  • create-phone-number

    The skill provisions, imports, routes, updates, and verifies phone numbers through the Vapi API.

    Claude Code, Codex, Cursor +4 · about 1.4K tokens · pinned 6 days ago

All AI and agents skills
  • mcp-builder

    This skill guides agents through building Model Context Protocol (MCP) servers that connect LLMs to external services via well-designed tools.

    by SnykOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 2.2K tokens · pinned 6 days ago

  • iris-development

    This skill integrates with Redis Agent Memory, a managed service on Redis Cloud that provides persistent memory for AI agents.

    by RedisOfficial publisher

    Claude Code, Codex, Cursor +4 · about 970 tokens · pinned 6 days ago

  • twilio-agent-connect

    Twilio Agent Connect is middleware that integrates LLM agents with Twilio communication channels (voice, SMS, RCS, WhatsApp, chat).

    by TwilioOfficial publisher

    Claude Code, Codex, Cursor +4 · about 4.1K tokens · pinned 6 days ago

  • transformers-js

    Transformers.js runs pre-trained machine learning models directly in JavaScript and TypeScript across browsers and server runtimes (Node.js, Bun, Deno)…

    by Hugging FaceOfficial publisher

    Claude Code, Codex, Cursor +4 · about 6K tokens · pinned 6 days ago

  • trl-training

    This skill enables agents to post-train large language models using TRL (Transformers Reinforcement Learning) library, supporting supervised fine-tuning…

    by Hugging FaceOfficial publisher

    Claude Code, Codex, Cursor +4 · about 990 tokens · pinned 6 days ago

  • claude-settings-audit

    This skill analyzes a repository to detect its tech stack, build tools, and service integrations, then generates recommended Claude Code settings.json…

    by SentryOfficial publisher

    Claude Code · about 2.9K tokens · pinned 6 days ago

Open roles at Vapi

5 of 11 open roles on the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use