kataven Python package wraps every Hub API endpoint with a
typed, ergonomic client.
Quickstart
Resources
| Resource | Methods |
|---|---|
client.agents | list, get, create, update, delete, list_tools, upsert_tool, attach_playbook, detach_playbook, attach_faq, detach_faq |
client.tools | list, get, create, update, delete |
client.playbooks | list, get, create, update, delete |
client.faqs | list, get, create, update, delete |
client.marketplace | list, get, install, categories |
client.integrations | list, get, install, uninstall |
client.telephony | list_providers, create_provider, delete_provider, list_numbers, create_number, update_number, delete_number |
client.calls | originate |
client.recordings | get |
client.call_limits | get (read-only — caps are platform-team controlled) |
client.campaigns | list, get, create, start, pause, resume, stop, delete, list_contacts, stream_events |
client.widget_keys | list, create, update, delete — pk_live_ for HTML embeds; public_key returned ONCE on create |
client.widget_settings | get, update, get_agent, update_agent |
sk_live_ shouldn’t be able to mint another sk_live_ —
otherwise rotation isn’t a real defense. Server enforces this with
403 Forbidden on POST/PATCH/DELETE /api/v1/api-keys for
sk_live_ callers; the SDK doesn’t bother trying. Manage keys at
Hub UI → Settings → API Keys (Zitadel JWT auth required).
Intentionally not in the SDK (admin / dashboard-only operations):
client.config, client.settings, client.spokes, client.users,
client.accounts, client.api_keys, recordings.delete,
call_limits.update, marketplace.create_template,
integrations.create.
Errors
The SDK raises subclasses ofKatavenError:
| Exception | When |
|---|---|
AuthenticationError | 401 |
PermissionError | 403 |
NotFoundError | 404 |
ConflictError | 409 |
RateLimitError | 429 (cost-cap exceeded) |
ServerError | 5xx |
KatavenError carries the response body and status for
anything else.
Configuration
| Param / env | Default |
|---|---|
api_key / KATAVEN_API_KEY | required |
account_id / KATAVEN_ACCOUNT_ID | required |
base_url / KATAVEN_BASE_URL | https://api.kataven.ai/v1 |
timeout | 30 seconds |

