Your agent can deploy in seconds but cannot get a phone number. Dial fixes that - one API call and it gets a real one in about 10 seconds. It places and receives voice calls, sends and receives SMS in 200+ countries, and messages over iMessage. It can even read inbound verification codes, so phone-gated signups stop being a dead end. Works via REST API, CLI, MCP servers, and SDKs. Free credit on signup, no card.
Last year we were building an AI agent that needed to sign itself up for a service. It got all the way through the form, hit "we've texted you a code," and just... stopped. Dead. There was no workaround. A fully autonomous agent, defeated by six digits sent to a phone it didn't have.
This isn't an AI that answers your phone. It's a phone number that belongs to your AI.
Every agent framework has gotten very good at giving agents tools. But the moment an agent needs to exist in the physical world - verify an identity, call a human, receive a text - it hits a wall that was built for people:
- No way to provision a number programmatically - Registration paperwork that takes weeks before the first text sends - Per-seat pricing that makes no sense when you have 100 agents - No way for an agent to read an inbound code - Webhooks you have to host and route yourself
So we built the thing we wanted: one API call, and your agent has a real phone number in about 10 seconds.
What it can do: - Place and receive voice calls, with real-time transcription, using your own LLM or ours - Send and receive SMS in 200+ countries - Message over iMessage from its own number, with automatic RCS/SMS fallback - Read inbound codes, so phone-gated signups stop being a dead end - One webhook, one format, every channel
The fastest way to see it: paste this into Claude Code, Cursor, Grok Bot, Codex or any agent -
Get yourself a Dial phone number and call me. Say hello and that setup is working, then ask if I have any questions. Follow https://getdial.ai/skills.md
It signs itself up, provisions its own number, and your phone rings. No dashboard, no human in the loop. That's the whole pitch, and you can verify it in about 30 seconds.
We'll be here all day. What's the first thing you'd have your agent call or text? Genuinely curious - the answers to this are how we've picked most of the roadmap so far.
A quick look under the hood, because "give your agent a phone number" turned out to be far less of a thin wrapper than we assumed. Three things were genuinely hard:
1. Making the agent the user, not you. No dashboard step, no API key to copy. The agent fetches a skill doc, signs itself up, provisions its own number and starts using it. Everything a human would click, it does over the same API.
2. One shape for every channel. A voice call, an SMS, an iMessage and a WhatsApp message are four completely different beasts underneath. They all come back to a single webhook in one format, so your agent handles one thing instead of four.
3. Letting an agent wait. dial wait-for message.received blocks until the text lands and hands the code back. That is what turns a phone-gated signup from a dead end into just another step.
I'm around all day. Especially curious what people want the webhook payload to carry that it does not yet.
Report
Hey guys, this is a super interesting product for a super real problem - makes me question the existence of AI voice agents entirely (and the whole VAD-STT-LLM-TTS stack). Are you using a speech to speech model's API for this?
Dial
Hey Product Hunt π
I'm Gal, founder of Dial.
Last year we were building an AI agent that needed to sign itself up for a service. It got all the way through the form, hit "we've texted you a code," and just... stopped. Dead. There was no workaround. A fully autonomous agent, defeated by six digits sent to a phone it didn't have.
This isn't an AI that answers your phone. It's a phone number that belongs to your AI.
Every agent framework has gotten very good at giving agents tools. But the moment an agent needs to exist in the physical world - verify an identity, call a human, receive a text - it hits a wall that was built for people:
- No way to provision a number programmatically
- Registration paperwork that takes weeks before the first text sends
- Per-seat pricing that makes no sense when you have 100 agents
- No way for an agent to read an inbound code
- Webhooks you have to host and route yourself
So we built the thing we wanted: one API call, and your agent has a real phone number in about 10 seconds.
What it can do:
- Place and receive voice calls, with real-time transcription, using your own LLM or ours
- Send and receive SMS in 200+ countries
- Message over iMessage from its own number, with automatic RCS/SMS fallback
- Read inbound codes, so phone-gated signups stop being a dead end
- One webhook, one format, every channel
The fastest way to see it: paste this into Claude Code, Cursor, Grok Bot, Codex or any agent -
Get yourself a Dial phone number and call me. Say hello and that setup is working, then ask if I have any questions. Follow https://getdial.ai/skills.md
It signs itself up, provisions its own number, and your phone rings. No dashboard, no human in the loop. That's the whole pitch, and you can verify it in about 30 seconds.
We'll be here all day. What's the first thing you'd have your agent call or text? Genuinely curious - the answers to this are how we've picked most of the roadmap so far.
you can also reach us directly at founders@getdial.ai
discord channel - https://discord.com/invite/tEmpesw6GW
Fuzzy AI
Love it! Can I add this to my MCP and connect it to my db?
Dial
@serenalamΒ Absolutely! thats exactly our context mcp feature
you can just add our docs to your claude code via and it will just take it from there.
Dial
I'm Omri, Co-Founder & CTO of Dial. π
A quick look under the hood, because "give your agent a phone number" turned out to be far less of a thin wrapper than we assumed. Three things were genuinely hard:
1. Making the agent the user, not you. No dashboard step, no API key to copy. The agent fetches a skill doc, signs itself up, provisions its own number and starts using it. Everything a human would click, it does over the same API.
2. One shape for every channel. A voice call, an SMS, an iMessage and a WhatsApp message are four completely different beasts underneath. They all come back to a single webhook in one format, so your agent handles one thing instead of four.
3. Letting an agent wait. dial wait-for message.received blocks until the text lands and hands the code back. That is what turns a phone-gated signup from a dead end into just another step.
Setup is two lines pasted into any agent:
Get yourself a Dial phone number and call me. Follow https://getdial.ai/skills.md
$5 in credit on signup, no card.
I'm around all day. Especially curious what people want the webhook payload to carry that it does not yet.
Hey guys, this is a super interesting product for a super real problem - makes me question the existence of AI voice agents entirely (and the whole VAD-STT-LLM-TTS stack). Are you using a speech to speech model's API for this?