Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kataven.ai/llms.txt

Use this file to discover all available pages before exploring further.

The kataven Python package wraps every Hub API endpoint with a typed, ergonomic client.
pip install kataven

Quickstart

from kataven import KatavenClient

client = KatavenClient()  # reads KATAVEN_API_KEY + KATAVEN_ACCOUNT_ID

# CRUD
agents = client.agents.list()
agent = client.agents.create(name="Front Desk", system_prompt="...")
client.agents.update(agent["id"], status="active")
client.agents.delete(agent["id"])

# Tools, knowledge
tools = client.tools.list(category="calendar", limit=20)
faq = client.faqs.create(name="hours", category="general", title="Hours?", content="9–6 PT")
client.agents.attach_faq(agent["id"], faq["id"])

# Telephony
provider = client.telephony.create_provider(provider="twilio", label="Prod", credentials={...})
number = client.telephony.create_number(e164="+12025550123", provider="twilio", credentials_id=provider["id"])
result = client.calls.originate(from_number="+12025550123", to_number="+14155550100", agent_id=agent["id"])

# Campaigns (CSV upload)
with open("contacts.csv", "rb") as f:
    campaign = client.campaigns.create(
        name="Outreach", agent_id=agent["id"],
        phone_number_id=number["id"], contacts=f, max_concurrent_calls=5,
    )
client.campaigns.start(campaign["id"])

# Live SSE metrics
for event in client.campaigns.stream_events(campaign["id"]):
    print(event)

Resources

ResourceMethods
client.agentslist, get, create, update, delete, list_tools, upsert_tool, attach_playbook, detach_playbook, attach_faq, detach_faq
client.toolslist, get, create, update, delete
client.playbookslist, get, create, update, delete
client.faqslist, get, create, update, delete
client.marketplacelist, get, install, categories
client.integrationslist, get, install, uninstall
client.telephonylist_providers, create_provider, delete_provider, list_numbers, create_number, update_number, delete_number
client.callsoriginate
client.recordingsget
client.call_limitsget (read-only — caps are platform-team controlled)
client.campaignslist, get, create, start, pause, resume, stop, delete, list_contacts, stream_events
client.widget_keyslist, create, update, delete ⚠️ secret returned ONCE on create
client.widget_settingsget, update, get_agent, update_agent
Intentionally not in the SDK (admin / dashboard-only operations): client.config, client.settings, client.spokes, client.users, client.accounts, recordings.delete, call_limits.update, marketplace.create_template, integrations.create.

Errors

The SDK raises subclasses of KatavenError:
ExceptionWhen
AuthenticationError401
PermissionError403
NotFoundError404
ConflictError409
RateLimitError429 (cost-cap exceeded)
ServerError5xx
Generic KatavenError carries the response body and status for anything else.

Configuration

Param / envDefault
api_key / KATAVEN_API_KEYrequired
account_id / KATAVEN_ACCOUNT_IDrequired
base_url / KATAVEN_BASE_URLhttps://api.kataven.ai/hub-api
timeout30 seconds