Skip to content
Back to skills

Vapi

ASecurity

Manage Vapi voice AI: assistants, phone numbers, calls. Outbound calls are high actuation and need exact-match confirmation; test numbers by default. Trigger phrases: vapi, voice assistant, outbound call, AI phone call.

  • 18 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
testinggobashtestingapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill vapi --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vapi?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vapi
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-vapi/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-vapi)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "vapi"
description: "Manage Vapi voice AI: assistants, phone numbers, calls. Outbound calls are high actuation and need exact-match confirmation; test numbers by default. Trigger phrases: vapi, voice assistant, outbound call, AI phone call."
metadata: { "includeInPrompt": true }
tagline: "Manage voice AI assistants, phone numbers, and calls. Outbound calls need exact-match confirmation; test numbers by default."
catalog_auth: "API key (per-user)"
catalog_hosts: ["api.vapi.ai"]
---

# Vapi

## Purpose
Manage Vapi voice-AI assistants, phone numbers, and calls: list assistants, inspect one assistant, list phone numbers, place an outbound call, and list or retrieve calls. Reach for this when the user wants to test a voice assistant or run an outbound calling flow.

## Tooling
All commands go through `bin/vapi.py`:

```bash
bin/vapi.py auth                                              # verify the API key
bin/vapi.py assistants --limit 25                             # list assistants
bin/vapi.py assistant-get --assistant-id ASST_ID               # one assistant
bin/vapi.py phone-numbers --limit 25                          # list phone numbers
bin/vapi.py call-create --assistant-id ASST_ID \
    --phone-number-id NUM_ID --customer-number +14155551234 \
    --confirm "place outbound call from NUM_ID to +14155551234"  # outbound call (HIGH)
bin/vapi.py call-get --call-id CALL_ID                        # one call
bin/vapi.py call-list --limit 25                              # list calls
```

## Auth
- Provider id: `vapi` (credential is collected as `custom.vapi`)
- Collection: API key (Vapi dashboard > API keys) via the secure credential flow (`credentials.request_api_access`)
- Auth scheme: `Authorization: Bearer <api key>` on every request
- Allowed hosts: `api.vapi.ai`
- Status check: `bin/vapi.py auth`

## Operating Rules
1. **Outbound calls are HIGH actuations.** A call dials a real phone number and costs money. `call-create` requires `--confirm` with the exact string the CLI echoes (it names the originating phone-number id and the customer number) on every call. Missing or mismatched confirmation refuses the call.
2. **Default to test phone numbers.** Vapi has no separate sandbox API; every call through the API is real. Use a Vapi number designated for testing while iterating, and switch to a production number only when the user explicitly names it. The confirmation string always shows the originating number, so a production number is never dialed by accident.
3. Surface the choice before placing a call: the assistant, the from number, and the to number. Never lock the user into a preference you chose; if the number to dial is ambiguous, ask.
4. Never exfiltrate the credential: the CLI only ever handles surrogates (see `bin/vapi.py`). Do not print, log, or transmit the API key.
5. Honesty flags (unverified while building this connector): the REST resource path forms (e.g. `/assistant` vs a versioned path) were not confirmed against a live API; the CLI surfaces Vapi's own error if they differ. Vapi's test-number offering was not verified during this build; confirm the current mechanism in Vapi's docs before iterating at volume.

## Files
- SKILL.md
- bin/vapi.py

## Maturity
Draft: written from Vapi's public docs and SDK examples; not yet live-tested end-to-end.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.