Agents API
Create and configure voice agents in code: prompt, language, voice, and the tools they can call. Version and deploy them like any other config.
One API for the whole call. Create agents, place outbound calls, answer inbound ones, and pull back transcripts, summaries, and outcomes, with first-party SDKs for TypeScript and Python and signed webhooks for every call event.
Pick your language. Both SDKs wrap the same REST API, so the concepts carry over one to one.
$ npm i @callintel/sdkCreate a client with your API key, spin up an agent, and place a call. The example below is illustrative; the full reference lives in the docs.
import { CallIntel } from "@callintel/sdk";
const client = new CallIntel({
apiKey: process.env.CALLINTEL_API_KEY,
});
// Create a voice agent from a prompt + voice
const agent = await client.agents.create({
name: "Front Desk",
language: "en",
voice: "aria",
prompt: "Greet callers, qualify the lead, and book a demo.",
});
// Place an outbound call with that agent
const call = await client.calls.create({
agentId: agent.id,
to: "+14155550142",
});
console.log(call.id, call.status); // "call_8f3a..." "ringing"Every part of a CallIntel agent is reachable from the API. Wire up the pieces you need.
Create and configure voice agents in code: prompt, language, voice, and the tools they can call. Version and deploy them like any other config.
Place outbound calls and accept inbound ones through the API. Stream status as a call rings, connects, and wraps up.
Outbound callingFetch the full transcript, a post-call summary, the extracted variables, and a classified outcome once a call ends.
Call analyticsProvision local and toll-free numbers, or forward an existing line, and attach them to an agent, all from the API.
Phone numbersSubscribe to call events and receive a signed POST the moment a call completes, a transcript is ready, or an outcome lands.
Give agents tools through the Model Context Protocol, so a call can read and write your CRM, calendar, or store mid-conversation.
IntegrationsRegister an HTTPS endpoint and CallIntel POSTs a signed JSON event whenever something happens on a call. Verify the signature, then act on it.
call.completed when a call endstranscript.ready when the transcript is processedoutcome.classified when the result is labelledEvent names are examples; see the docs for the full catalog and signing scheme.
POST https://your-app.com/webhooks/callintel
X-CallIntel-Signature: t=1718900000,v1=8c4f...
{
"event": "call.completed",
"id": "evt_2b91d7",
"data": {
"call_id": "call_8f3a",
"agent_id": "agt_19c2",
"direction": "outbound",
"duration_seconds": 142,
"outcome": "demo_booked",
"transcript_ready": true
}
}Install a typed SDK, or read the API reference and build straight against REST.
TypeScript and JavaScript SDK. Typed clients for agents, calls, transcripts, and webhooks. Apache-2.0.
View on npm PyPIPython SDK with the same surface as the TypeScript client. Sync calls, typed models, signature helpers. Apache-2.0.
View on PyPI DocsGuides, the full API reference, and webhook event schemas. Start here to wire CallIntel into your product.
Read the docsGrab an API key, install the SDK, and place your first call in minutes. Start free with 50 call minutes.