Place and receive human-like calls programmatically. One API for agents, telephony, knowledge, and webhooks — with official SDKs and self-hosting.
import { Pollax } from 'pollax'
const pollax = new Pollax({ apiKey })
const call = await pollax.calls.create({
agent_id: 'ag_fee_reminder',
to_number: '+91 98765 43210',
variables: { name: 'Ankit' },
})
Click to talk
Select voice agent
Every capability, shown — not just described.
Create, update, and run agents over a REST API or our official SDKs — no dashboard required.
Place outbound calls and answer inbound ones with the same agent, number, and logic.
English plus 23 Indic languages, switchable mid-call based on the caller.
Attach documents and function-calling tools so agents answer accurately and take action.
Signed event webhooks for every call lifecycle stage, with idempotent requests for safe retries.
Bring your own LLM via Ollama, vLLM, or any OpenAI-compatible endpoint. Your data stays yours.
Click a concept to see how the live session works — and the event shapes that drive it.
session_idEvery conversation has identity. One session_id holds history, settings, and live speaker state across the call.
Live example
{
"type": "session.create",
"session": {
"model": "pollax-realtime",
"voice": "anushka",
"modalities": ["audio", "text"]
}
}{
"type": "session.created",
"session": {
"id": "abc123",
"stores": ["history", "settings", "speaker_state"]
}
}Define the prompt, voice, and language once — via API or dashboard.
POST /calls with the number and variables. Pollax dials and runs the agent.
Signed webhooks stream status, transcript, recording, and outcome to your server.
Resolve every ticket with high customer satisfaction thanks to agents that can form decision logic and route responses based on emotional signals, like urgency, profanity, and more.
how?…I've been on hold for 30 minutes, this is ridiculous!…I want to
Designed to make every conversation feel natural. Pollax's voice AI lets agents follow rapid shifts in conversation, sentiment, pitch, and tone — so they match the mood of every interaction across 23 languages.
Tailored to match your unique brand
Adapted to a variety of accents and languages
Industry-leading voice response time
Native pronunciation and scripts — with the ability to switch language mid-call based on the speaker.
Every request uses a Bearer API key (sk_live_… or sk_test_… for the sandbox). Keys are scoped per tenant, so each account only sees its own agents and calls.
Official TypeScript and Python SDKs — npm i pollax and pip install pollax. Both wrap agents, calls, campaigns, and webhook signature verification.
Subscribe a webhook URL. Pollax POSTs signed events (call.initiated → answered → completed/failed) with transcripts, recordings, and outcomes. Verify the signature with the SDK helper.
Yes. Use a sk_test_ key for the sandbox — calls are simulated with magic numbers driving the outcome, and the same webhooks fire so you can build end-to-end before going live.
Grab an API key, install the SDK, and place a call in minutes.