- You’re writing in a language we don’t ship an SDK for (Go, Rust, Ruby, PHP, Java, Elixir, Bash, …).
- You’re hitting Kataven from a CI pipeline or webhook handler where adding a runtime dependency is overkill.
- You’re debugging an SDK call and want to see the raw HTTP request and response.
Resources
Every endpoint is grouped under a resource in the sidebar. Each resource page lists every endpoint, with parameters, response codes, schema fields, and copy-paste examples in curl, Python, and Node.| Resource | What’s there |
|---|---|
| Agents | CRUD + tool / playbook / FAQ associations |
| Tools | Built-in catalog + custom tools |
| Playbooks | Reusable knowledge bundles |
| FAQs | Quick-lookup question/answer entries |
| Marketplace | Browse + install pre-built templates |
| Integrations | Stripe, Shopify, Slack with encrypted credentials |
| Telephony | Twilio / Plivo / Vobiz creds + phone numbers |
| Calls | Outbound call origination |
| Recordings | Presigned-URL playback |
| Call Limits | Per-tenant cost caps (read-only via API) |
| Campaigns | Bulk-dial outbound from CSV |
| API Keys | sk_live_ credentials |
| Widget Keys | pk_live_ public widget identifiers |
| Widget Settings | Widget branding + per-agent policy |
| Widget Auth | Public widget visitor auth (cross-origin) |
Conventions
- Base URL.
https://api.kataven.ai/v1. Production. Outages onhub.kataven.ai(the dashboard) don’t affect this; rate-limit and monitoring policies apply independently. - Authentication.
Authorization: Bearer <token>. Token is either ansk_live_…API key (preferred — see Authentication) or a Zitadel JWT (interactive admin sessions only).sk_live_callers don’t need anX-Account-IDheader — the account is in the prefix. - Content type.
application/jsonfor request and response bodies. Multipart used byPOST /v1/campaigns(CSV upload). - Idempotency. Read endpoints (
GET) are safe to retry. Write endpoints (POST/PATCH/DELETE) are not idempotent today — don’t blindly retry on connection errors. Idempotency-Key support is on the roadmap.
Status codes you’ll see across the surface
| Code | Meaning |
|---|---|
200 / 201 / 204 | Success. |
400 | Bad request — usually a missing required field, malformed JSON, or invalid path parameter. |
401 | Bearer token missing or invalid. |
403 | Endpoint requires Hub UI auth (e.g. API key CRUD, cost caps), or the reserved kataven-admin account is rejected. |
404 | Resource not found in this account. |
409 | State conflict (e.g. delete a non-draft campaign, delete a provider with attached numbers). |
429 | Cost cap exceeded (concurrent / per-minute / daily). View limits at hub.kataven.ai/settings → Limits tab. |
5xx | Server error. Retry once with exponential backoff; if it persists, email support. |

