$npx -y skills add sickn33/agentic-awesome-skills --skill agentphoneBuild AI phone agents with AgentPhone API. Use when the user wants to make phone calls, send/receive SMS, manage phone numbers, create voice agents, set up webhooks, or check usage — anything related to telephony, phone numbers, or voice AI.
| 1 | # AgentPhone |
| 2 | |
| 3 | AgentPhone is an API-first telephony platform for AI agents. Give your agents phone numbers, voice calls, and SMS — all managed through a simple API. |
| 4 | |
| 5 | ## When to Use |
| 6 | - Use when the user wants to create or manage AI phone agents, voice agents, or telephony automations |
| 7 | - Use when the user needs to buy, assign, release, or inspect phone numbers tied to an agent workflow |
| 8 | - Use when the user wants to place outbound calls, inspect transcripts, or send and receive SMS through AgentPhone |
| 9 | - Use when the user is configuring webhooks, hosted voice mode, or account-level usage for AgentPhone |
| 10 | - Use only with explicit user intent before actions that spend money, send messages, place calls, or release phone numbers |
| 11 | |
| 12 | **Base URL:** `https://api.agentphone.to/v1` |
| 13 | |
| 14 | **Docs:** [docs.agentphone.to](https://docs.agentphone.to) |
| 15 | |
| 16 | **Console:** [agentphone.to](https://agentphone.to) |
| 17 | |
| 18 | --- |
| 19 | |
| 20 | ## How It Works |
| 21 | |
| 22 | AgentPhone lets you create AI agents that can make and receive phone calls and SMS messages. Here's the full lifecycle: |
| 23 | |
| 24 | 1. You sign up at [agentphone.to](https://agentphone.to) and get an API key |
| 25 | 2. You create an **Agent** — this is the AI persona that handles calls and messages |
| 26 | 3. You buy a **Phone Number** and attach it to the agent |
| 27 | 4. You configure a **Webhook** (for custom logic) or use **Hosted Mode** (built-in LLM handles the conversation) |
| 28 | 5. Your agent can now make outbound calls, receive inbound calls, and send/receive SMS |
| 29 | |
| 30 | ``` |
| 31 | Account |
| 32 | └── Agent (AI persona — owns numbers, handles calls/SMS) |
| 33 | ├── Phone Number (attached to agent) |
| 34 | │ ├── Call (inbound/outbound voice) |
| 35 | │ │ └── Transcript (call recording text) |
| 36 | │ └── Message (SMS) |
| 37 | │ └── Conversation (threaded SMS exchange) |
| 38 | └── Webhook (per-agent event delivery) |
| 39 | Webhook (project-level event delivery) |
| 40 | ``` |
| 41 | |
| 42 | ### Voice Modes |
| 43 | |
| 44 | Agents operate in one of two modes: |
| 45 | |
| 46 | - **`hosted`** — The built-in LLM handles the conversation autonomously using the agent's `system_prompt`. No server required. This is the easiest way to get started — just set a prompt and make a call. |
| 47 | - **`webhook`** (default) — Inbound call/SMS events are forwarded to your webhook URL for custom handling. Use this when you need full control over the conversation logic. |
| 48 | |
| 49 | --- |
| 50 | |
| 51 | ## Quick Start |
| 52 | |
| 53 | ### Step 1: Get Your API Key |
| 54 | |
| 55 | Sign up at [agentphone.to](https://agentphone.to). Your API key will look like `sk_live_abc123...`. |
| 56 | |
| 57 | ### Step 2: Create an Agent |
| 58 | |
| 59 | ```bash |
| 60 | curl -X POST https://api.agentphone.to/v1/agents \ |
| 61 | -H "Authorization: Bearer YOUR_API_KEY" \ |
| 62 | -H "Content-Type: application/json" \ |
| 63 | -d '{ |
| 64 | "name": "Support Bot", |
| 65 | "description": "Handles customer support calls", |
| 66 | "voiceMode": "hosted", |
| 67 | "systemPrompt": "You are a friendly customer support agent. Help the caller with their questions.", |
| 68 | "beginMessage": "Hi there! How can I help you today?" |
| 69 | }' |
| 70 | ``` |
| 71 | |
| 72 | **Response:** |
| 73 | |
| 74 | ```json |
| 75 | { |
| 76 | "id": "agent_abc123", |
| 77 | "name": "Support Bot", |
| 78 | "description": "Handles customer support calls", |
| 79 | "voiceMode": "hosted", |
| 80 | "systemPrompt": "You are a friendly customer support agent...", |
| 81 | "beginMessage": "Hi there! How can I help you today?", |
| 82 | "voice": "11labs-Brian", |
| 83 | "phoneNumbers": [], |
| 84 | "createdAt": "2025-01-15T10:30:00.000Z" |
| 85 | } |
| 86 | ``` |
| 87 | |
| 88 | ### Step 3: Buy a Phone Number |
| 89 | |
| 90 | ```bash |
| 91 | curl -X POST https://api.agentphone.to/v1/numbers \ |
| 92 | -H "Authorization: Bearer YOUR_API_KEY" \ |
| 93 | -H "Content-Type: application/json" \ |
| 94 | -d '{ |
| 95 | "country": "US", |
| 96 | "areaCode": "415", |
| 97 | "agentId": "agent_abc123" |
| 98 | }' |
| 99 | ``` |
| 100 | |
| 101 | **Response:** |
| 102 | |
| 103 | ```json |
| 104 | { |
| 105 | "id": "pn_xyz789", |
| 106 | "phoneNumber": "+14155551234", |
| 107 | "country": "US", |
| 108 | "status": "active", |
| 109 | "agentId": "agent_abc123", |
| 110 | "createdAt": "2025-01-15T10:31:00.000Z" |
| 111 | } |
| 112 | ``` |
| 113 | |
| 114 | Your agent now has a phone number. It can receive inbound calls immediately. |
| 115 | |
| 116 | ### Step 4: Make an Outbound Call |
| 117 | |
| 118 | ```bash |
| 119 | curl -X POST https://api.agentphone.to/v1/calls \ |
| 120 | -H "Authorization: Bearer YOUR_API_KEY" \ |
| 121 | -H "Content-Type: application/json" \ |
| 122 | -d '{ |
| 123 | "agentId": "agent_abc123", |
| 124 | "toNumber": "+14155559999", |
| 125 | "systemPrompt": "Schedule a dentist appointment for next Tuesday at 2pm.", |
| 126 | "initialGreeting": "Hi, I am calling to schedule an appointment." |
| 127 | }' |
| 128 | ``` |
| 129 | |
| 130 | **Response:** |
| 131 | |
| 132 | ```json |
| 133 | { |
| 134 | "id": "call_def456", |
| 135 | "agentId": "agent_abc123", |
| 136 | "fromNumber": "+14155551234", |
| 137 | "toNumber": "+14155559999", |
| 138 | "direction": "outbound", |
| 139 | "status": "in-progress", |
| 140 | "startedAt": "2025-01-15T10:32:00.000Z" |
| 141 | } |
| 142 | ``` |
| 143 | |
| 144 | The AI will hold the entire conversation autonomously based on your prompt. Check the transcript after the call ends. |
| 145 | |
| 146 | ### Step 5: Che |