Developer SDK for Unpod voice infrastructure — management + connectivity + adapters.
Project description
Unpod Python SDK
Developer SDK for Unpod voice infrastructure — management, connectivity, and adapters for building voice agents that talk over real phone calls, browsers, and WebRTC.
Single architectural commitment: the wire between Unpod infrastructure and your code carries text, not audio. You bring the brain; Unpod brings the voice.
Installation
pip install unpod
# With superdialog integration (recommended)
pip install "unpod[dialog]"
# With LangChain adapter
pip install "unpod[langchain]"
# With MCP adapter
pip install "unpod[mcp]"
Or with uv: uv add unpod (extras: uv add "unpod[dialog]").
To install the latest unreleased code from source:
pip install "unpod @ git+https://github.com/unpod-ai/unpod-python-sdk"
What's Inside
unpod
├── Management SDK (REST) numbers, voice profiles, speech pipes, calls,
│ sessions, trunks, recordings, transcripts, api keys
├── Connectivity SDK (WSS) AgentRunner, Session, CallContext, hooks
└── Adapters superdialog, LangChain, OpenAI, Anthropic, HTTP, MCP
- Management SDK — CRUD against the Unpod Control Plane: purchase numbers, browse voice profiles, bind Speech Pipes, trigger and inspect calls.
- Connectivity SDK — runtime for live calls: a long-lived
AgentRunnerreceives plain-text turns over WSS and dispatches them to your agent, regardless of transport (phone, browser, WebRTC). - Adapters — plug any brain into a call:
superdialogdialog machines, LangChain runnables, your own HTTP endpoint, or an MCP server.
Quick Example
from unpod import AsyncClient, AgentRunner, CallContext
client = AsyncClient() # reads UNPOD_API_KEY from env
# Management: pick a voice, bind a Speech Pipe to your agent
profiles = await client.voice_profiles.list(language="en")
pipe = await client.pipes.create(
name="support-line",
voice_profile=profiles[0].id,
agent_id="my-voice-agent",
)
# Connectivity: handle every live call with your own logic
async def entrypoint(ctx: CallContext) -> None:
await ctx.session.say("Hi! How can I help you today?")
await ctx.session.run()
AgentRunner(entrypoint=entrypoint, agent_id="my-voice-agent").start()
Documentation
| Guide | What it covers |
|---|---|
| Overview | What Unpod owns vs what you own, the three layers |
| Architecture | Package structure, data flow, protocol details |
| Management SDK | REST client API reference |
| Connectivity SDK | AgentRunner, Session, hooks, controls |
| Adapters | DialogAdapter protocol and bundled adapters |
| Quickstart | 10 steps to your first phone call |
| Browser Quickstart | Test in Chrome, no phone number needed |
Full platform documentation: docs.unpod.ai
Development
git clone https://github.com/unpod-ai/unpod-python-sdk
cd unpod-python-sdk
uv sync --extra dev
uv run pytest
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unpod-0.1.1.tar.gz.
File metadata
- Download URL: unpod-0.1.1.tar.gz
- Upload date:
- Size: 339.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73144024475e7fd828f28b903cd40ba055ba87cafb22358231c8fbce43d67f9f
|
|
| MD5 |
782e403b63726c4435c1f1e9bf08cd28
|
|
| BLAKE2b-256 |
af6d85a134d793da4f73f2caa25807a1048ab59fcd11778c16a2be90f8737813
|
File details
Details for the file unpod-0.1.1-py3-none-any.whl.
File metadata
- Download URL: unpod-0.1.1-py3-none-any.whl
- Upload date:
- Size: 49.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5288362b9880311ac110a6c546ae57cf5350f1d17e113484163003cda4736eaa
|
|
| MD5 |
f1a4998af60f4d0493df23b7c4cd353a
|
|
| BLAKE2b-256 |
17c3ca25989a7dea5a6de9f1d3d0f062347a3c632b471bd59c58bc411c6ff247
|