SDKs
Official Dialgem libraries for your server and web page, plus a command-line tool and an MCP server for AI assistants.
Dialgem has three official libraries. Two run on your server and use your API key. One runs in the browser and never sees it.
@dialgem/sdk. For Node.js, Bun, Deno and serverless.
dialgem. Sync and asyncio.
@dialgem/client. Talk to an agent from a web page. No API key.
| TypeScript | Python | Browser | |
|---|---|---|---|
| Install | npm install @dialgem/sdk | pip install dialgem | npm install @dialgem/client |
| Runs | Your server | Your server | A web page |
| Uses | API key | API key | A one-use token |
| Needs | Node 20+ or any runtime with fetch | Python 3.10+ | A browser with AudioWorklet, over HTTPS or localhost |
All three are at version 1.0.0. Breaking changes will only come in a new major version.
Tools built on the SDK
Two more packages put the TypeScript SDK to work without writing code. Both are at version 0.1.0.
@dialgem/cli. Manage agents, numbers and calls from your terminal.
@dialgem/mcp. Let Claude, Cursor and other assistants manage your account.
What the server SDKs cover
Agents, with their functions, knowledge, MCP servers and versions. Phone numbers, calls and chats. Saved flows and LLMs. Voices, contacts and lists, test suites, live call control, web call tokens, and webhook verification.
Some things are deliberately dashboard-only: campaigns, webhook endpoint management, billing, analytics, API-key management and contact erasure. Connecting your own Twilio account is a dashboard feature too, because it handles your Twilio credentials.
Rules all three follow
- Your key stays on your server. The server SDKs refuse to run in a browser unless you opt in.
- The API address is fixed at
https://api.dialgem.com. AbaseURLoption is refused, so a leftover staging address cannot send a key to production. - A POST is never retried by default. A retry after an unclear failure could ring someone twice. Other requests retry with backoff.
- Field names are the API's own
snake_case. The SDKs do not rename them.
Every call is also available as plain HTTP. See the API reference.