unpod logo
SolutionsHow it worksBlogDocs
StarGet an AI Agent
unpod logo

An open-source platform for building voice agents with phone numbers - purpose-built for the businesses that earn their living on the phone.

GitHubDocumentation

Product

  • Use cases
  • How it works
  • Channels
  • Pricing

Developers

  • Documentation
  • GitHub
  • Discord
  • API reference

Company

  • About
  • Careers
  • Privacy
  • Terms
ยฉ 2026 Unpod.ai - All rights reservedMade in India ยท Built for the world
+91 Indianumbers, instantยทPython ยท Node ยท REST ยท MCPยทVoice + WhatsApp
Built for developers

Telephony + Speech infra for AI agents.

Connect your AI agent to a real phone number in minutes. Inbound calls, outbound dials, SMS and WhatsApp all arrive at one webhook as plain text. Use Python, Node, REST or MCP.

โœ“ Open source on GitHubโœ“ Live in 48 hours
Use cases ยท built on Unpod by teams shipping agents
AI ReceptionistCoding Agent PhoneOn-call Pager2FA InboxOutbound Follow-upAutonomous AI WorkerClaude CodeCursorAnthropicOpenAILangChainAI ReceptionistCoding Agent PhoneOn-call Pager2FA InboxOutbound Follow-upAutonomous AI WorkerClaude CodeCursorAnthropicOpenAILangChainAI ReceptionistCoding Agent PhoneOn-call Pager2FA InboxOutbound Follow-upAutonomous AI WorkerClaude CodeCursorAnthropicOpenAILangChain
The flow ยท end-to-end

Phone โ†’ Speech โ†’ your endpoint.

Unpod handles the phone and the speech. You receive text at your endpoint and reply with text. The prompt, tools and customer data stay on your side.

Customer
๐Ÿ“ฑ
Caller
+91 9XXXX XXXXX
VoiceWhatsAppSMS
Dials inbound, or receives an outbound dial / WhatsApp from your agent.
Inbound
โ–ถ
~80msaudio
Outbound
โ—€
~80msaudio
Unpod ยท Telecom + Speech
๐Ÿ‡ฎ๐Ÿ‡ณ+91 80 4555 0142
STT
streaming ยท voice โ†’ text
~120ms
Route
unified webhook ยท threads
~30ms
TTS
neural ยท text โ†’ voice
~180ms
All-in2.5ร— cheaper ยท vs. legacy stacks
WSS / SSE
โ–ถ
~30msstreamed text
Reply
โ—€
~variabletext ยท tool calls
Your endpoint
๐Ÿ”’ You control
POST /unpod-events
  • Prompt + system message
  • Tool calls + RAG context
  • Customer data + memory
  • Compliance + audit log
Powered by
ClaudeOpenAILangChainOpenClaw
U
Unpod's responsibility
Numbers, telephony, STT/TTS, webhooks, threading, retries.
Y
You own
Prompt, tools, model choice, customer data, end-to-end flow.
Inbound
~230ms
audio โ†’ your webhook
Outbound
~290ms
reply โ†’ caller hears
Round-trip
<520ms
within one turn
Cost
2.5ร— cheaper
vs. legacy telephony
How Unpod is built

We handle speech complexity. You handle the conversation.

Our infra terminates phone and WebRTC audio, runs the speech layer, and exposes a text API. Our SDK is a thin client over that API โ€” drop it into any backend.

Unpod Infra
Audio infrastructure
๐Ÿ›ฐ๏ธ

Telephony, WebRTC and the speech layer โ€” all handled.

Phone calls, outbound dials and WebRTC sessions terminate inside Unpod. We deal with echo, jitter, codecs, barge-in, silence detection, streaming speech-to-text and text-to-speech. You never touch a raw audio frame.

Telephony
PSTN inbound + outbound on a real number
WebRTC
In-browser and in-app sessions, no dialing required
Text API
WS / SSE / HTTP โ€” same schema as messaging
Built-in
STT, TTS, voice profiles, threading, retries
Unpod SDK
Developer SDK
๐Ÿงฐ

Receive text. Reply with text. Run any flow.

A thin client over Unpod Infra. Read text events from a WebSocket, send text back. Wire it to LangChain, the OpenAI SDK, your own state machine or your own tools โ€” your conversation logic stays as simple or as complex as you need.

Python ยท Node
Typed clients with async streams
REST + WSS
Hit it from any language
MCP server
Native in Claude Code, Cursor, Windsurf, Zed
BYO agent
Your LLM, your tools, your prompt โ€” untouched
Compare
Twilio
LiveKit / PipeCat
Unpod
You send / receive
TwiML + audio
Audio in, audio out
Text in, text out
STT + TTS
You wire it
You wire it
Owned by Unpod
Speech quality + voices
Your problem
Your problem
Curated profiles
Voice + SMS + WhatsApp
Separate APIs
Voice only
One endpoint
Open source ยท Apache 2.0

Open-source CPaaS you can self-host.

The full stack โ€” numbers, telephony, speech, messaging, webhooks โ€” is on GitHub. Run it on your own infrastructure and keep every byte of conversation data inside your zone.

โš™๏ธ

Self-host the stack

Clone the repo, deploy with one Docker Compose. Run on your VPC, your bare metal, your air-gapped cluster โ€” no Unpod cloud dependency.

  • โœ“Apache 2.0 license
  • โœ“Docker / Helm / Terraform
  • โœ“No phone-home telemetry
๐Ÿค–

Build any agent on top

CPaaS primitives โ€” numbers, calls, messages, recording, webhooks โ€” exposed via SDK and MCP. Plug in Claude, OpenAI, your fine-tune, or your own logic.

  • โœ“Python ยท Node ยท REST ยท MCP
  • โœ“BYO LLM and tools
  • โœ“Stream events to Kafka / Redis
๐Ÿ”

Own your communication data

Every transcript, recording and customer record stays inside your zone. Encrypted at rest by your KMS keys. Nothing crosses the wire to a third party.

  • โœ“BYO KMS / HSM keys
  • โœ“Audit log to your SIEM
  • โœ“Zero-retention mode for audio
๐Ÿงฉ

Extend and contribute

Plug-in architecture for codecs, ASR / TTS providers, telephony carriers and storage. Ship a new voice provider in an afternoon, send it back upstream.

  • โœ“Pluggable ASR / TTS
  • โœ“Carrier-agnostic SIP layer
  • โœ“Active OSS community
~/your-infra
# Clone, configure, run โ€” your CPaaS in five lines.
$ git clone https://github.com/essential-interfaces/unpod.git
$ cd unpod && cp .env.example .env
$ docker compose up -d
$ unpod numbers buy --country IN --agent agt_123
# Your CPaaS is live on http://localhost:8080
essential-interfaces / unpod
The open-source CPaaS for AI agents.
Fork it. Host it. Bend it to your stack. Ship agents your customers actually trust.
View on GitHub โ†’Self-host guide โ†’
How it works

Four steps to a working phone agent.

No telecom plumbing. No separate SMS provider. One SDK, one webhook.

01

Get an India number

One API call. Pick a city or skip it and let us choose. +91 numbers are provisioned instantly across all major circles โ€” voice, SMS and WhatsApp on one number.

One API call
02

Point one webhook

Voice and messages arrive in the same event format. One handler covers both โ€” no separate pipelines for telephony and chat.

Single endpoint
03

Respond with text

Calls are transcribed in real time and sent to your webhook as text. Reply with text โ€” we handle the TTS, threading and silence detection.

Text in, text out
04

Ship it

Your agent is live with a real number. Inbound calls land in your handler, outbound dials and SMS go through the same SDK. Native MCP in Claude Code, Cursor, OpenClaw, Windsurf.

Live in production
Ready-to-deploy playbooks

What developers build with it

Real things developers ship with Unpod โ€” from coding agents that take phone calls, to on-call pagers and 2FA inboxes.

๐Ÿ’ป

Phone-call your codebase

Install the CLI on your server, point an Unpod number at it. Call the number, say "restart freeswitch" โ€” Claude Code does it. Cursor, Windsurf same way via MCP.

Native MCP
๐Ÿค–

Autonomous AI Workers

Give a long-running agent a real number so it can dial vendors, confirm orders and follow up โ€” without a human in the loop.

< 10 lines of code
๐Ÿ“ž

AI Receptionist

Answer inbound 24/7, qualify intent, book meetings, warm-transfer to a human with the full transcript handed over.

1 webhook
๐Ÿšจ

On-call & Incidents

Pager-style escalation: your alerting AI dials the on-call engineer, reads the incident, escalates to the next person if no one picks up.

WSS streamed
๐Ÿ“Š

Outbound Lead Follow-up

Trigger an outbound dial via one API call. Real-time text transcript streams back to your handler, sync to your CRM yourself.

1 API call
๐Ÿ”

2FA & Verification Inbox

Dedicated number for codes from Stripe, GitHub, banks. SMS arrives as text in the same webhook โ€” your agent reads and acts.

Same schema
๐ŸŽง

Customer Support

Handle inbound voice and SMS through one handler. Resolve routine queries, escalate complex issues with full call context.

Voice + SMS, 1 endpoint
๐Ÿ“…

Appointment Booking

Outbound dials to confirm bookings; rescheduling links go over SMS through the same SDK โ€” no separate provider.

No provider lock-in
SDKs ยท open source

One endpoint. Four ways to use it.

Your existing agent stays where it lives โ€” LangChain, OpenAI SDK, your own Python loop. Unpod is the single endpoint that connects it to real-world voice, SMS and WhatsApp on a +91 number.

  • โœ“Python + Node SDKs โ€” Typed clients, async/await, idempotent retries
  • โœ“REST + OpenAPI spec โ€” Generate clients in any language
  • โœ“MCP server โ€” Native in Claude Code, Cursor, Windsurf, Zed
  • โœ“Webhooks โ€” One handler. Voice + SMS + WhatsApp.
Read the docs โ†’View on GitHub โ†’
pip install unpod
from unpod import Unpod

client = Unpod(api_key="up_...")

# Provision a +91 number for your agent
number = client.numbers.buy(country="IN", agent_id="agt_123")

# Place an outbound call โ€” your webhook gets every turn
call = client.calls.create(
    agent_id="agt_123",
    to_number="+9197XXXXXXXX",
    webhook="https://api.yourapp.com/unpod"
)
Native to the agent stack โ€” and the stack your business already runs
Claude CodeCursorAnthropicOpenAILangChain

Drop a real phone number into any agent framework via SDK or MCP. Connect downstream to your CRM, helpdesk and channels โ€” no glue code, no separate SMS provider.

500K+
calls handled / month
across the network
+91
India numbers, instant
all major circles + WhatsApp
< 330ms
first-token latency
streaming STT + TTS
99.95%
uptime, regulated-grade SLAs
carrier failover built-in
Try it ยท 60 seconds
Get a number, point a webhook, ship.
Copy the starter prompt into Claude Code, Cursor or any MCP agent โ€” it provisions a number and places a real call to yours.
Try a live agent โ†’

Questions before you start.

Numbers, webhooks, integration and security โ€” the things developers ask before shipping.

Indian numbers (+91) are provisioned instantly via the API or MCP โ€” toll-free, mobile and landline across all major circles. TRAI-compliant, DLT-registered SMS, and WhatsApp Business API attached to the same number. Global numbers (US, UK, UAE, Singapore) available on request.

Ready to give your AI agent a phone number?

Join thousands of businesses that trust AI voice agents to handle their most important conversations. Free 14-day trial ยท no credit card ยท cancel anytime.

Start building now โ†’๐Ÿ“‹ Copy MCP prompt
โœ“ Free dev tierโœ“ No credit cardโœ“ Live in minutesโœ“ Open source SDKs
Your business data, protected everywhere you operate.4 standards ยท globally verified
ISO
42001
ISO 42001
AI mgmt
ISO
27001
ISO 27001
Infosec
DPDP
DPDP
India
SOC 2
TYPE II
SOC 2 TYPE II
Coming soon