---
title: "Dial: phone numbers, SMS, iMessage, WhatsApp and voice calls for AI agents"
description: "Give your AI agent a real phone number: send and receive SMS, iMessage and WhatsApp, place and answer AI voice calls, and receive verification codes through one REST API, CLI, SDKs or MCP server."
canonical: "https://getdial.ai/"
---

# Dial

> Communication stack for AI agents. Provision a real phone number, send SMS and WhatsApp messages (WhatsApp is allowlist-only - meet us to get access: https://calendly.com/dial-gal-dayan/20-minute-meeting), and place voice calls — all through one REST API or MCP tool. Works with Claude Code, Cursor, Windsurf, and any MCP client.

If you are an AI agent setting yourself up to use Dial, start with [skills.md](https://getdial.ai/skills.md) — it contains the complete step-by-step setup (signup, OTP verification, getting an API key, provisioning a number) in a format meant to be read and executed by an agent.

## When to use Dial

Reach for Dial whenever your task needs to communicate over the real phone network — the things a human would use a phone for, exposed as an API an agent can call:

- **Receive verification / OTP codes.** Provision a number, then read inbound SMS to complete a phone-verification or 2FA step during signup or login flows.
- **Send SMS or WhatsApp.** Deliver notifications, reminders, confirmations, or two-way conversations from your own number, in 180+ countries.
- **Place a voice call.** Have an AI voice agent call a business, vendor, or person to ask a question, book, confirm, or relay a message — with real-time transcription.
- **Receive inbound calls and texts.** Own a number that fields incoming SMS and calls, and stream those as account events your agent reacts to.

How to call Dial, in order of least setup: the **MCP server** (native tools in Claude, Cursor, ChatGPT), the **REST API** (`Authorization: Bearer sk_live_...`), the **CLI** (`dial`), or a language **SDK** (Node, Python, LangChain, and more). If you are unsure, start with [skills.md](https://getdial.ai/skills.md).

Dial is *not* a bulk marketing/robocall platform and not a replacement for your app's in-product chat — it is the phone-network layer for agent-driven communication.

## Start here (best entry points, in priority order)

1. [skills.md](https://getdial.ai/skills.md) — agent self-setup: install the CLI, sign up, verify OTP, provision a number.
2. [MCP Server](https://docs.getdial.ai/integrations/tools/mcp) — add Dial as a remote MCP server (endpoint: `https://getdial.ai/mcp`) and authorize in the browser (Claude, Cursor, ChatGPT).
3. [Quickstart](https://docs.getdial.ai/documentation/get-started/quickstart) — send your first message over the REST API.
4. [Full Documentation (single file)](https://docs.getdial.ai/llms-full.txt) — the complete docs in one fetch.

## Documentation

Full product documentation lives at https://docs.getdial.ai. Machine-readable indexes: https://docs.getdial.ai/llms.txt and https://docs.getdial.ai/llms-full.txt.

Get started:
- [Introduction](https://docs.getdial.ai/documentation/get-started/introduction): What Dial is and how it fits an agent's workflow.
- [Quickstart](https://docs.getdial.ai/documentation/get-started/quickstart): Sign up, get an API key, send your first message.
- [Using Dial from an agent](https://docs.getdial.ai/documentation/get-started/using-dial-from-an-agent): The agent-first setup flow.
- [Authentication](https://docs.getdial.ai/documentation/get-started/authentication): API keys and bearer auth.
- [Core concepts](https://docs.getdial.ai/documentation/get-started/core-concepts): Numbers, messages, calls, and events.

Capabilities:
- [Send an SMS](https://docs.getdial.ai/documentation/capabilities/send-an-sms)
- [Receive an SMS](https://docs.getdial.ai/documentation/capabilities/receive-an-sms)
- [Place a voice call](https://docs.getdial.ai/documentation/capabilities/place-a-voice-call)
- [Receive a voice call](https://docs.getdial.ai/documentation/capabilities/receive-a-voice-call)
- [Stream account events](https://docs.getdial.ai/documentation/capabilities/stream-account-events)
- [Manage phone numbers](https://docs.getdial.ai/documentation/capabilities/manage-phone-numbers)

CLI & SDKs:
- [CLI: install & onboarding](https://docs.getdial.ai/documentation/cli/install-and-onboarding)
- [CLI commands](https://docs.getdial.ai/documentation/cli/commands)
- [CLI listen service](https://docs.getdial.ai/documentation/cli/listen-service)
- [SDKs overview](https://docs.getdial.ai/documentation/sdks/overview)
- [Node SDK](https://docs.getdial.ai/documentation/sdks/node)
- [Python SDK](https://docs.getdial.ai/documentation/sdks/python)
- [LangChain](https://docs.getdial.ai/documentation/sdks/langchain)
- [Vercel AI SDK](https://docs.getdial.ai/documentation/sdks/ai-sdk)
- [CrewAI](https://docs.getdial.ai/documentation/sdks/crewai)
- [AutoGen](https://docs.getdial.ai/documentation/sdks/autogen)
- [Microsoft Agent Framework](https://docs.getdial.ai/documentation/sdks/agentframework)

Agent clients (install Dial into an agent runtime):
- [Claude Code](https://docs.getdial.ai/integrations/agent-clients/coding-agent/claude-code)
- [OpenClaw](https://docs.getdial.ai/integrations/agent-clients/openclaw)
- [NanoClaw](https://docs.getdial.ai/integrations/agent-clients/nanoclaw)
- [Vercel Chat SDK](https://docs.getdial.ai/integrations/agent-clients/vercel-chat-sdk)
- [CLI Skill](https://docs.getdial.ai/integrations/tools/cli-skill) — works with Cursor, Codex, Opencode, Pi, Hermes Agent, and any skill-capable agent

Reference:
- [How Dial works](https://docs.getdial.ai/documentation/reference/how-it-works)
- [Errors & status codes](https://docs.getdial.ai/documentation/reference/errors)
- [Usage & limits](https://docs.getdial.ai/documentation/reference/usage-and-limits)
- [Support](https://docs.getdial.ai/documentation/reference/support)

## API

Base URL: `https://api.getdial.ai/v1`. Authenticate with `Authorization: Bearer sk_live_...`. Resource groups:

- `auth` — signup, OTP verification, API key issuance
- `numbers` — provision and manage phone numbers
- `messages` — send and receive SMS / WhatsApp
- `calls` — place and receive voice calls
- `events` — wait for or subscribe to account events
- `account` — account settings and deletion
- `usage` — usage metrics and billing

Full REST reference: https://docs.getdial.ai/api-reference/rest-api. Machine-readable OpenAPI spec (3.1): https://getdial.ai/openapi.json (also at https://docs.getdial.ai/openapi.json) — use it for endpoint discovery and function-calling schemas. The API is versioned in the URL path (`/v1`; breaking changes go to a new version, deprecations get at least 6 months and `Deprecation`/`Sunset` headers - see https://docs.getdial.ai/documentation/reference/versioning); errors are JSON objects with an `error` field; `POST /v1/calls` accepts an `Idempotency-Key` header so a retried call is never placed twice; `429` responses carry `Retry-After`.

## Machine-readable discovery

- [API catalog (RFC 9727)](https://getdial.ai/.well-known/api-catalog): links to the OpenAPI spec, docs, and status of the REST API.
- [OpenAPI spec](https://getdial.ai/openapi.json): the REST contract, OpenAPI 3.1.
- [Agent resource catalog](https://getdial.ai/.well-known/ard.json): every agent surface Dial offers (MCP servers, REST API, skills) in one file.
- [Agent skills index](https://getdial.ai/.well-known/agent-skills/index.json): the skills an agent can install to use Dial.
- [MCP server card](https://getdial.ai/.well-known/mcp/server-card.json): the remote MCP server's endpoint, auth, and tool list.
- [auth.md](https://getdial.ai/auth.md): how an agent gets credentials (API key or OAuth for MCP).
- [pricing.md](https://getdial.ai/pricing.md): every published price in plain markdown.
- [Docs MCP server](https://docs.getdial.ai/_mcp/server): search the Dial documentation over MCP.
- [Ask Dial (NLWeb)](https://getdial.ai/ask): search this site in natural language - `POST {"query":{"text":"..."}}` or `GET /ask?query=...`; SSE with `prefer.streaming`.
- [A2A agent card](https://getdial.ai/.well-known/agent-card.json): the Dial site assistant, an A2A agent (JSON-RPC `message/send` at https://getdial.ai/a2a) that answers questions about Dial.
- [Schema feeds](https://getdial.ai/schemamap.xml): the site's schema.org data as JSON Lines (blog posts, comparisons, product, pricing FAQ).
- Markdown for every page: append `.md` to any page URL (e.g. https://getdial.ai/about.md), or send `Accept: text/markdown`.
- Section indexes: [REST API](https://getdial.ai/api/llms.txt), [Blog](https://getdial.ai/blog/llms.txt), [Documentation](https://docs.getdial.ai/llms.txt).

## Source code

- [GetDial-AI/cli](https://github.com/GetDial-AI/cli): the `dial` CLI, the local MCP server, and the Dial agent skill.
- [GetDial-AI/cursor-plugin](https://github.com/GetDial-AI/cursor-plugin): Dial for Cursor.
- [GetDial-AI/chat-sdk-adapter](https://github.com/GetDial-AI/chat-sdk-adapter): wire a Dial number into a Chat SDK bot.
- [GetDial-AI/playbooks](https://github.com/GetDial-AI/playbooks): ready-made agent playbooks.
- All repositories: https://github.com/GetDial-AI

## Comparisons

How Dial compares to alternative platforms, based on public documentation and published pricing:

- [Dial vs Vapi](https://getdial.ai/compare/dial-vs-vapi): Vapi is a developer platform for building voice AI agents; Dial is the full communication stack that gives an agent its own number, voice, SMS, WhatsApp, and iMessage. Here's how pricing, channels, and setup actually compare.
- [Dial vs Retell AI](https://getdial.ai/compare/dial-vs-retell): Retell AI is an AI call center platform for automating support and sales calls; Dial gives an AI agent its own number with voice, SMS, WhatsApp, and iMessage in one API. A factual look at pricing, channels, and setup.
- [Dial vs Twilio](https://getdial.ai/compare/dial-vs-twilio): Twilio is the definitive CPaaS for human customer engagement; Dial is communication infrastructure designed for AI agents. How per-unit pricing, 10DLC registration, voice AI, and setup time actually compare.
- [Dial vs Telnyx](https://getdial.ai/compare/dial-vs-telnyx): Telnyx is a carrier-owned CPaaS with the sharpest per-unit prices in the market and its own voice AI product; Dial is an all-in communication stack built for AI agents. Here's the honest comparison.
- [Dial vs AgentPhone](https://getdial.ai/compare/dial-vs-agentphone): AgentPhone (YC S26) and Dial are the two platforms built specifically to give AI agents phone numbers — with near-identical headline pricing. The real differences are channels, international reach, and what's actually shipped.
- [Dial vs Saperly](https://getdial.ai/compare/dial-vs-saperly): Saperly calls itself the phone carrier for AI agents, with voice, SMS, and a compliance layer built in; Dial adds WhatsApp and iMessage on the same agent identity. How the two agent-native platforms compare.
- [Dial vs Sendblue](https://getdial.ai/compare/dial-vs-sendblue): Sendblue is an agent-first iMessage API with per-line pricing and no per-message fees; Dial gives an AI agent iMessage plus voice, SMS, and WhatsApp on one identity. How pricing, outbound access, and channels compare.
- [Dial vs Linq](https://getdial.ai/compare/dial-vs-linq): Linq's Blue API is an enterprise iMessage, RCS, and SMS platform behind a sales process; Dial is a self-serve communication stack for AI agents with published pricing. Feature depth, channels, and onboarding compared.
- [Dial vs Inkbox](https://getdial.ai/compare/dial-vs-inkbox): Inkbox gives AI agents email, a phone number, shared-pool iMessage, and a public tunnel URL; Dial gives them a real phone identity that calls, texts worldwide, WhatsApps, and iMessages on its own number. An honest comparison.
- [Dial vs Photon](https://getdial.ai/compare/dial-vs-photon): Photon's Spectrum puts AI agents inside iMessage, WhatsApp, Telegram, and more through an open-source TypeScript framework; Dial gives agents a real phone identity with hosted AI voice, SMS to 200+ countries, WhatsApp, and iMessage. Pricing, voice, and agent tooling compared.

## Blog

Every post with a summary, and its markdown version: https://getdial.ai/blog/llms.txt

- [Agent Communication in 2030: Five Predictions](https://getdial.ai/blog/agent-communication-in-2030)
- [Ten Principles for Teams Building Agents That Talk](https://getdial.ai/blog/ten-principles-for-agent-communication)
- [The 3 AM Call: Building an Agent Receptionist That Never Misses One](https://getdial.ai/blog/the-3-am-call)
- [The Fax Machine Parallel: Why Incumbents Always Retrofit Instead of Rebuild](https://getdial.ai/blog/the-fax-machine-parallel)
- [How to QA an Agent That Talks: Testing Calls Before Customers Do](https://getdial.ai/blog/how-to-qa-an-agent-that-talks)
- [The Unit Economics of an Agent Conversation: Voice vs. SMS vs. WhatsApp vs. Email](https://getdial.ai/blog/unit-economics-of-an-agent-conversation)
- [Voice Cloning Made Caller ID Meaningless. What Replaces It?](https://getdial.ai/blog/voice-cloning-and-caller-id)
- [Agents Need Their Own Inboxes (Before the Reply-All Disaster)](https://getdial.ai/blog/agents-need-inboxes)
- [Group Chats Are the Hardest Interface for AI Agents](https://getdial.ai/blog/group-chats-hardest-interface)
- [The Agent That Never Sleeps: Quiet Hours, Time Zones, and Politeness at Scale](https://getdial.ai/blog/the-agent-that-never-sleeps)
- [Should Your Agent Text Like a Human? Length, Timing, and Typing Dots](https://getdial.ai/blog/text-like-a-human)
- [The Number Graveyard: What Happens to Retired Agent Phone Numbers](https://getdial.ai/blog/number-graveyard)
- [Give Claude a Phone: What MCP Changes for Agent Communication](https://getdial.ai/blog/give-claude-a-phone)
- [A Passport for Software: The Agent Attestation Token](https://getdial.ai/blog/agent-attestation-token)
- [Consent as Code: Opt-Outs an Agent Can't Forget](https://getdial.ai/blog/consent-as-code)
- [The Tuesday Call, the Saturday Text: Memory That Follows the Customer](https://getdial.ai/blog/the-tuesday-call-the-saturday-text)
- [The Handoff: How an AI Agent Passes a Live Call to a Human](https://getdial.ai/blog/human-handoff-mid-call)
- [Should Your AI Say It's an AI on the First Ring?](https://getdial.ai/blog/should-your-agent-say-its-an-agent)
- [What Happens When Two AI Voice Agents Call Each Other](https://getdial.ai/blog/when-two-ai-agents-call-each-other)
- [Prompt Injection by Text Message: Your Agent's Newest Attack Surface](https://getdial.ai/blog/prompt-injection-by-text-message)
- [Your Agent Just Got a Phone Number. Here Are Its First 24 Hours.](https://getdial.ai/blog/first-24-hours-with-a-phone-number)
- [Inside the WhatsApp Ban Wave: Why Automated Numbers Disappear in Clusters](https://getdial.ai/blog/whatsapp-ban-waves)
- [The Phone Number Math Doesn't Work Anymore](https://getdial.ai/blog/phone-number-math)
- [The Global SMS Regulation Guide for AI Agent Builders](https://getdial.ai/blog/sms-regulation-global-guide)
- [The Global Voice Call Regulation Guide for AI Agent Builders](https://getdial.ai/blog/voice-call-regulation-global-guide)
- [Your Calls Say "Scam Likely." Here Is What Is Happening.](https://getdial.ai/blog/scam-likely-fix)
- [Why Your OTP Code Never Arrives](https://getdial.ai/blog/why-otp-codes-dont-arrive)
- [Your Agent Dies at "Enter the Code We Texted You"](https://getdial.ai/blog/your-agent-dies-at-enter-the-code)
- [Anatomy of an International Revenue Share Fraud Attempt - and How We Shut It Down](https://getdial.ai/blog/stopping-irsf-fraud)
- [The WhatsApp Business Messaging Rules Every AI Agent Needs to Know](https://getdial.ai/blog/whatsapp-rules-for-agents)
- [Local, Toll-Free, or Short Code: Choosing the Right Number Type](https://getdial.ai/blog/choosing-the-right-number-type)
- [Build an Agent That Sends Appointment Reminders (With Working Code)](https://getdial.ai/blog/appointment-reminders-tutorial)
- [Why Your Agent's Calls Sound Robotic (It's Not the Voice Model)](https://getdial.ai/blog/why-agent-calls-sound-robotic)
- [The Hidden Cost of Building Telephony In-House for Your AI Agent](https://getdial.ai/blog/build-vs-buy-telephony)
- [Your AI Agent's Biggest Competitor Isn't a Human Agent. It's Voicemail.](https://getdial.ai/blog/voicemail-is-winning)
- [Your AI Agent's Calls Are Being Silently Flagged as Spam. Here's the Evidence.](https://getdial.ai/blog/ai-agent-calls-flagged-spam)
- [79% of People Prefer Humans on the Phone. Here's How to Build AI Calls They Don't Hang Up On.](https://getdial.ai/blog/build-ai-calls-people-dont-hang-up)
- [SIP vs. WebRTC vs. PSTN: What Your AI Voice Agent Is Actually Running On](https://getdial.ai/blog/sip-webrtc-pstn-explainer)
- [RCS Is Finally Happening. What It Means for AI Agents.](https://getdial.ai/blog/rcs-for-ai-agents)
- [The Protocol Layer the Agentic Era Is Missing](https://getdial.ai/blog/the-agent-era-infrastructure)
- [The EU AI Act Has Opinions About Your AI Agent's Phone Calls](https://getdial.ai/blog/eu-ai-act-agents)
- [Why AI Agent Prototypes Die at the Carrier Layer](https://getdial.ai/blog/from-prototype-to-production)
- [Why AI Agents Need Cryptographic Identity (Not Phone Numbers)](https://getdial.ai/blog/cryptographic-identity-for-agents)
- [The $200 Billion Market That Doesn't Exist Yet](https://getdial.ai/blog/200-billion-dollar-market)
- [What 2 Billion WhatsApp Users Mean for AI Agents](https://getdial.ai/blog/whatsapp-for-ai-agents)
- [Agent-to-Agent: The Communication Layer Nobody Is Building](https://getdial.ai/blog/agent-to-agent-communication)
- [Voice First: Why Calling Is Still the Highest-Trust Channel](https://getdial.ai/blog/voice-first)
- [One Interface, Every Channel: Inside the Channel Abstraction Layer](https://getdial.ai/blog/the-channel-abstraction-layer)
- [Compliance Without a Legal Team](https://getdial.ai/blog/compliance-without-a-legal-team)
- [Why Twilio Isn't the Answer for AI Agents](https://getdial.ai/blog/why-twilio-isnt-the-answer)
- [The Five Ways Agent Communication Fails in Production](https://getdial.ai/blog/five-ways-agent-communication-fails)
- [6.5 Trillion Messages a Day: The Infrastructure That Doesn't Exist](https://getdial.ai/blog/65-trillion-messages)
- [Introducing the Agent Communication Number](https://getdial.ai/blog/introducing-the-acn)
- [What STIR/SHAKEN Doesn't Tell You About Who's Calling](https://getdial.ai/blog/what-stir-shaken-doesnt-tell-you)
- [The Cold Start Problem: Why AI Agents Forget Every Conversation](https://getdial.ai/blog/the-cold-start-problem)
- [Your Agent's Phone Number Is a Ticking Time Bomb](https://getdial.ai/blog/number-burning)
- [The Email Problem That Will Blindside Your Engineering Team](https://getdial.ai/blog/the-domain-destruction-problem)
- [Your Agent Can Deploy in Seconds. Your Phone Number Takes 6 Weeks.](https://getdial.ai/blog/the-six-week-wall)
- [We Built Everything for Humans (And That's About to Break Everything)](https://getdial.ai/blog/we-built-everything-for-humans)
- [The 100-to-1 World: What Happens When Agents Outnumber Humans](https://getdial.ai/blog/the-1000-to-1-world)
- [Building a 2FA Bot with Claude Code and Dial](https://getdial.ai/blog/building-a-2fa-bot-with-claude-and-dial)
- [Why AI Agents Need Real Phone Numbers](https://getdial.ai/blog/why-ai-agents-need-real-phone-numbers)

## Other

- [Home](https://getdial.ai/): Product overview and pricing.
- [Pricing](https://getdial.ai/pricing): Pay-as-you-go prices for numbers, calls, and messages (markdown: https://getdial.ai/pricing.md).
- [Onboarding](https://getdial.ai/onboarding): Get a number in 30 seconds.
- [Whitepaper](https://getdial.ai/whitepaper): The Agent Channel Exchange Standard (ACES) — why every communication system was built for the wrong species, and what the agentic era needs instead.
- [Documentation](https://docs.getdial.ai): Full product documentation — guides, CLI, SDKs, and API reference.
- [Full Documentation (single file)](https://docs.getdial.ai/llms-full.txt): Complete docs in one fetch — optimized for AI agents.
- [Agent Setup Guide](https://getdial.ai/skills.md): Step-by-step instructions for AI agents to self-setup: install CLI, sign up, verify OTP, provision a number.
- [MCP Server](https://docs.getdial.ai/integrations/tools/mcp): Remote MCP endpoint (Streamable HTTP) at `https://getdial.ai/mcp` with interactive OAuth 2.1 — add it as a remote MCP server in any client (Claude, Cursor, ChatGPT) and authorize in the browser. Tools to list numbers, send messages, place AI voice calls, and wait for inbound events.
- [CLI Installer](https://getdial.ai/install): Shell script — `curl -fsSL https://getdial.ai/install | bash` — installs the `dial` CLI (requires Node 22+).
- Contact: founders@getdial.ai
