Numbers
A clean, searchable inventory. Find a line, hold it, hand it to an agent — without losing the route.
A voice layer for humans and agents.
Dials is the programmable voice and messaging platform built for a world of humans and agents. Numbers, identity, routing, and records — in one control plane you actually own.
Built on the real telephone network.
A clean, searchable inventory. Find a line, hold it, hand it to an agent — without losing the route.
Inbound, outbound, fallback, blocked. Each path is a policy you can read out loud.
Identity before action. Verified callers, recorded consent, bound addresses, signed history.
Every accepted action carries one signed record. The phone bills like the rest of your platform — line by line.
A phone seat as an object: number, extension, scope, voice, guardrail, recording policy.
The Dials network reaches where your customers are. Tier 1 quality, wholesale economics, global reach.
The principle
A phone call shouldn’t be the only thing your platform can’t see.
Why we built Dials.
Programmable
Define how a number rings before a packet ever leaves the network. Every line gets an identity, a route, and a policy — addressable from your console, your CLI, or any MCP-aware agent.
Sovereign
Dials runs the voice and messaging network end to end. Tier 1 quality, wholesale economics, global reach. Your numbers, your routes, your identity — on infrastructure you can trust.
Accountable
Identity comes before action. Every call, message, and command is signed against a verified identity and recorded in one place — readable, exportable, defensible.
The surface
Console
Search numbers, model agent seats, set routes, watch trust and usage — in one calm, opinionated UI.
API
Versioned HTTP endpoints with verified identity, idempotency keys, structured errors, and a record on every action.
CLI
`dials` walks the same identity and history as the dashboard — locally, in CI, or in production.
MCP
The Dials MCP server exposes every action as a tool. Same identity. Same signature. Same record.
For developers
The same call runs from the dashboard, the CLI, and the MCP tool. Real filters. Real validation. Real records.
GET /api/numbers/search
?contains=0100
&startsWith=512
&repeatingDigit=5
&repeatingDigitCount=3
®ion=TX
&postalCode=78701
&nearLatLong=30.2672,-97.7431
&voice=true
&limit=25dials numbers search \
--contains 0100 \
--starts-with 512 \
--repeating-digit 5 \
--repeating-digit-count 3 \
--state TX \
--zip 78701 \
--near-lat-long 30.2672,-97.7431 \
--voice \
--limit 25{
"tool": "dials.numbers.search",
"arguments": {
"contains": "0100",
"startsWith": "512",
"repeatingDigit": "5",
"repeatingDigitCount": 3,
"region": "TX",
"postalCode": "78701",
"nearLatLong": "30.2672,-97.7431",
"voice": true,
"limit": 25
}
}What every action carries
Every accepted action carries a signed record — readable, exportable, defensible.
Every nav target is a real page with a real URL and real evidence behind it.
Humans, CLIs, and agents all use the same calls. Never two stories.
The honest part
Outbound calls only carry the STIR/SHAKEN attestation level we can prove. Full A on numbers we own. Never inflated, never quietly downgraded.
A seat without a dispatchable E911 address can't dial at all. Not just 911. The contract is a contract.
STOP, UNSUBSCRIBE, and recorded verbal opt-outs propagate across every channel a brand operates within seconds. Across seats. Across agents.
Call audio, transcripts, and message bodies are processed to deliver the Service. They're not used to train Dials' machine-learning models. Ever.
Numbers, routes, and records port out the same day you decide to leave. No hostage fees, no waiting list, no "please call your account manager."
Records are forward-only. Replays mark themselves as replays. Mistakes are recorded, not erased. We hand you the chain, signed.
Dials gives every human and every agent a verified voice and messaging identity. Numbers, routes, recording, and records — one platform, one record, no surprises.
Number search, agent seats, routing, trust and recording controls, and a live record of every action. Humans and agents work the same surface.
Every request — from the dashboard, the CLI, or an agent — runs against a verified identity and records what happened. One identity, one record, one story.
No. Numbers, routes, and records port out the same day you decide to leave. No hostage fees, no waiting list.
The United States and Canada at launch. Additional regions arrive as we expand the network.
Yes. The Dials CLI runs the same actions the dashboard does — locally, in CI, or in production.
Yes. The Dials MCP server exposes every action as a tool. Any MCP-aware agent can search numbers, place calls, and follow the same rules a human operator follows.
A phone system designed for companies made of people and agents. Walk the console, run the operator, then put your first real call on the wire.