Docs Home Log in

REST API

Plain HTTP routes for your backend and scripts. For anything an agent does, the MCP server is the full surface.

Authentication

http
Authorization: Bearer <your key>

Base URL: https://api.katacall.com/api. Bodies are JSON, except CSV imports. Errors come back as {"error": "..."} with 400, or 404 when something is not found. Dates are in milliseconds.

Example

bash
curl -s -X POST https://api.katacall.com/api/calls/test \
  -H "Authorization: Bearer $KATA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+14155550142","campaign_id":1}'
bash
curl -s -X POST https://api.katacall.com/api/call-campaigns/1/import \
  -H "Authorization: Bearer $KATA_KEY" \
  --data-binary @leads.csv

Routes

MethodPathWhat it does
GET/api/numbersYour numbers, with today's calls and answer rate
POST/api/numbersAdd numbers: {numbers: [{e164, label?, daily_cap?}]}
POST/api/numbers/updatePause, resume or retire a number, change its cap or label
POST/api/call-campaignsCreate a call campaign (draft) and its first variant
GET/api/call-campaigns/:idA call campaign's settings and stats
POST/api/call-campaigns/:id/settingsChange its settings
POST/api/call-campaigns/:id/engineChange its engine (and its live variants)
POST/api/call-campaigns/:id/importImport a CSV of leads with a phone column
GET/api/call-campaigns/:id/dry-runWho would be called now, from which number, with which variant, without calling
POST/api/call-campaigns/:id/evolveRun the evolve step for this campaign now
GET/api/call-variants?campaign_id=Variants with their stats and chance to be the best
POST/api/call-variantsCreate a variant
POST/api/call-variants/:idChange or retire a variant
GET/api/callsCalls, newest first, with filters; page with before_id
GET/api/calls/stats?campaign_id=Totals, outcomes, engines, numbers, variants, last days
GET/api/calls/:idOne call with its transcript and events
GET/api/calls/:id/recordingThe recording (audio)
POST/api/calls/testA test call to your own phone
POST/api/calls/simulateSimulated calls (never dials)
GET/api/call-dncThe do-not-call list
POST/api/call-dncAdd phones to the do-not-call list
POST/api/campaigns/statusActivate or pause a campaign, email or call
POST /api/calls/test places a real call once real telephony is on. POST /api/calls/simulate never dials.