Developers
One contract.
Many surfaces.
Every Dials surface — REST, CLI, MCP, webhooks — reaches the same scoped paths. Build against the API once and your agent, your CLI, and your dashboard all behave the same way.
Same path, three ways
One call.
Three ways in.
The same scoped path runs under the dashboard, the CLI, and the MCP tool. Real filters, real validation, real usage event.
- · Versioned REST
- · Typed SDKs
- · `dials` CLI
- · MCP server
HTTP
GET /api/numbers/search
?areaCode=512
&exchangeCode=555
&localCallingArea=true
&limit=25CLI
dials numbers search \
--area-code 512 \
--exchange-code 555 \
--local-calling-area \
--limit 25MCP
{
"tool": "dials.numbers.search",
"arguments": {
"areaCode": "512",
"exchangeCode": "555",
"localCallingArea": true,
"limit": 25
}
}All developer surfaces
Build it how you build.
Run the smoke flow.
Pull the SDK, run the smoke command, and watch the same audited path light up the console, the ledger, and the CLI.