create-call
This skill creates one-off outbound phone calls, web calls, and batch calls via the Vapi API.
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.”
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-callInstalls 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@ecd56bd32688be8ea6fe54029445b536333d8d9cInstalls 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.
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 ecd56bdFiles
- SKILL.md6.7 KB · f4b6ea6f972e
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 ecd56bdMore 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
Related in AI and agents
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
- Member of Technical Staff, Agentic Release Engineer
San Francisco (Hybrid)
- Member of Technical Staff, DevOps
San Francisco, California, United States (Remote)
- Member of Technical Staff, Frontend
San Francisco, California, United States (Remote)
- Member of Technical Staff, Agentic Developer Experience
San Francisco (Remote)
- Solutions Engineer - NY
New York, New York, United States (Remote)