Developers

Run your phone line by just asking.

You don’t have to be a developer. Connect KaiCalls to Claude and manage your calls, leads, and follow-ups in plain English — “who did I miss this weekend?”, “text them a booking link.” And if you do write code, the same REST API and signed webhooks are right here.

No code needed
Talk to it

Connect to Claude and ask in plain English. It reads your calls and acts for you.

Per-business keys
Scoped auth

Every key is tied to one business. It can never see anyone else’s leads or calls.

Same audit log
Always traceable

Changes made by asking show up in the exact same history the dashboard writes to.

The no-code way

Connect to Claude, then just talk.

The fastest way to use KaiCalls without touching a dashboard: hook it up to Claude (or Cursor, or any MCP client) and run your phone line like you'd text an assistant. Three steps, about five minutes.

1

Create a key (or click Connect to Claude)

In your dashboard, mint a business-scoped API key — or use the one-click connector. Either way it only ever touches your business, never anyone else's.

2

Add the connector in Claude

In Claude (web or desktop), add a custom connector and paste https://www.kaicalls.com/api/mcp. Sign in with your Kai Calls account and approve the read permissions. Same idea works in Cursor or any MCP client.

3

Just talk to it

Now ask Claude things like "who called this weekend and who's worth calling back?" It reads your calls, leads, and voicemails and answers in plain English. No code, no dashboards to dig through.

Connector URL: https://www.kaicalls.com/api/mcp — read-scoped by default. It can look and report before it can change anything.

Open source

Public SDK and connector repos.

Install from package registries, inspect the source on GitHub, or wire the MCP connector into your agent runtime.

Real scenarios

What that actually looks like.

No jargon — just the kind of thing you'd say out loud, and what Kai does behind the scenes. Every one of these works today.

Plumber · Monday 7am

"What calls did I miss over the weekend, and which ones are actually worth calling back?"

Claude pulls your weekend calls and voicemails, reads the transcripts, and hands you a short list of hot leads with names, numbers, and what each one wanted — before your first coffee.

Dental office · front desk

"Text everyone who asked about Invisalign this week a link to book a consult."

It finds the callers who mentioned Invisalign, sets up a booking link, and sends each one a friendly text. Consent and do-not-contact rules are checked automatically before anything goes out.

HVAC company · heatwave

"We're slammed. Tell Kai to stop promising same-day visits and offer next-day instead."

Claude updates how your agent answers — the next caller hears the new policy. The change lands in the same audit log your dashboard uses, so you can see exactly what changed and when.

Roofing company · after a storm

"The minute a new storm-damage lead comes in, text my cell. Turn that on."

It switches on staff alerts so you get an SMS the second a new lead lands. You're first to the door instead of finding out the next morning.

Law firm · intake

"Pull up the call from the car-accident caller and save them as a lead with the details."

Claude finds the call, reads the transcript, and creates the lead with the case notes filled in — so nothing gets lost between the phone ringing and your CRM.

Restaurant · Tuesday

"Everyone who tried to book a table while we were closed — set up calls to win them back."

It builds a callback campaign from the missed bookings and queues the outreach. You fill the slow night instead of eating the lost reservations.

What you can ask

If you'd ask a great front-desk hire to do it, you can ask Kai.

Four buckets of things Claude can do for you the moment you're connected. You never see a tool name or an endpoint — you just ask.

See what happened

Recent calls, voicemails, texts, full transcripts and recordings, and plain-English analytics — "how busy were we last week?" answered in a sentence.

Handle leads & follow-up

Look up a caller, save or update a lead, send a text, or drop someone a booking or directions link — all by asking, no forms.

Change how Kai works

Update the greeting, voice, or the rules your agent follows; flip staff alerts on or off; or request a bigger change in your own words.

Reach back out

Place an outbound call through your agent or spin up a callback campaign for a whole list of missed callers.

For when you do write code

Auth, permissions, webhooks, event delivery.

Everything above runs on this. If you'd rather wire KaiCalls into your own stack directly, here's the whole surface area — four rails, nothing exotic.

Authentication

Business-scoped API keys. Create one per integration so you can rotate or revoke a single workflow without taking the rest down.

Permissions

Every request resolves to a business ID before it touches data. One business's keys cannot see another business's leads, calls, or transcripts.

Signed webhooks

Call events, lead captures, and status updates ship with HMAC signatures. Verify before you act so a forged callback can't create state in your system.

Event delivery

Push outcomes to your webhook endpoint, your CRM, or your workflow tool. Retries with exponential backoff, dead-letter visibility, and replay are built in.

Quickstart

From zero to a verified webhook in four steps.

If your CRM already speaks webhooks, you're probably done in 20 minutes.

1. Create a business-scoped API key in the dashboard.
2. Pick the events you want delivered (call.completed, lead.created, etc).
3. Add your webhook URL and shared signing secret.
4. Verify the signature on each delivery, return 2xx within 5s, and you're live.

Common endpoints

Read agent + phone config

Pull the current agent prompt, voice, routing rules, and assigned phone numbers for a business.

Subscribe to call + lead events

Receive call-started, call-ended, lead-captured, and follow-up events as signed webhook payloads.

Send messages + place calls

Trigger an outbound call or SMS programmatically. Consent and DNC are checked before the action goes out.

Inspect failures + retries

Query delivery status, retry counts, and last error for any event you cared about. No silent drops.

How we think about the API

Three things that shape how everything's designed.

Useful to know before you start, because they're the reason we say no to certain things and yes to others.

Send events to systems your customer already lives in. Don't make them log into one more place to see their leads.

Keys and webhook secrets stay server-side. Never embedded in widgets, mobile builds, or anything the browser can read.

If you change consent or routing through the API, those changes show up in the same audit log the dashboard writes to.

Full endpoint reference at /docs/api. Security and retention specifics at the trust center. Hit a wall? Email developers@kaicalls.com — a real engineer answers.

Building blocks

Four ways to integrate.

Pick the surface that fits how your team works — REST, MCP, webhooks, or durable event replay. They share the same business-scoped auth and audit log.

REST API (/api/v1)

Manage agents, phone numbers, leads, calls, and SMS over a Bearer-token REST API. Discovery endpoints (capabilities, openapi.json, schemas, health) describe the live surface so you never code against a stale doc.

Claude / MCP connector

Connect a Kai Calls account to Claude through the remote MCP connector at /api/mcp using OAuth with PKCE — or call MCP directly with an API key as a bearer token. Read-scoped by default.

Signed webhooks

Subscribe a URL per business and receive call.completed, lead.created, lead.scored, sms.received, voicemail.received, and more — each HMAC-SHA256 signed so you can reject forgeries.

Durable events + replay

Every webhook-worthy occurrence is stored as a durable event with delivery evidence. If your receiver was down, list events, inspect delivery attempts, and replay or backfill a time window.

FAQ

Questions developers ask first.

The short answers. Everything is documented in detail at /docs/api.

Do I need to be a developer to use this?+

No. The fastest path is connecting KaiCalls to Claude: add the connector at https://www.kaicalls.com/api/mcp, sign in with your Kai Calls account, and then just ask in plain English — "who called this weekend?", "text them a booking link." Claude reads your calls and leads and acts for you. The REST API and webhooks below are there if you (or someone on your team) wants to wire things up in code, but they're optional.

Is it safe to let Claude touch my account?+

Yes. The connector is read-scoped by default, so Claude can look and report before it can change anything, and every key is tied to one business — it can never see another business's calls or leads. Anything Claude does change is written to the same audit log your dashboard uses, so you always have a record of what changed and when.

What can I do with the KaiCalls API?+

The REST API at /api/v1 lets you read and manage agents, phone numbers, leads, calls, and SMS, place outbound calls, and subscribe to events. There are also analytics, transcript, eval, and workspace endpoints. The full reference lives at /docs/api.

How does authentication work?+

Requests use a Bearer token (an API key prefixed kc_live_) in the Authorization header. Keys are business-scoped and permission-scoped — new keys default to a read-only scope set, and you request write scopes explicitly. Create one key per integration so you can rotate or revoke a single workflow.

How do I verify webhooks are really from KaiCalls?+

Every outbound webhook is signed with HMAC-SHA256. The X-KaiCalls-Signature header carries a timestamp and signature; you recompute HMAC_SHA256(secret, "<timestamp>." + raw_body) and compare. Reject anything that does not verify. The signing secret is shown once when you create the webhook — store it immediately.

What happens if my webhook endpoint is down?+

Deliveries retry with exponential backoff, and every event is stored durably with delivery evidence. You can list events, inspect each delivery attempt, and replay specific events or backfill a time window once your endpoint is healthy again. Dedupe on event_id.

Can I connect KaiCalls to Claude?+

Yes. KaiCalls exposes a remote MCP connector at /api/mcp. In Claude, add a custom connector with that URL, sign in with your Kai Calls account, and approve the requested (read-scoped) permissions. Direct MCP clients can also pass a Kai Calls API key as a bearer token.

Are there official SDKs?+

Yes — official open-source SDKs for Python (pip install kaicalls) and JavaScript/TypeScript (npm install kaicalls) wrap the full v1 surface plus a raw request() escape hatch. Non-2xx responses throw a typed KaiCallsError with code, status, and the raw body.

    Developers | KaiCalls