Skip to main content
AgentsResource is reachable on every Kataven Node client as client.agents. Each method maps to one HTTP endpoint on the Hub API; links to the underlying spec entry are inline below. Manage AI voice/chat agents from Node. Every method on client.agents maps to one HTTP endpoint on the Hub API.

Methods at a glance

MethodHTTPSummary
listGET /api/agentsList agents
getGET /api/agents/{id}Get an agent
createPOST /api/agentsCreate an agent
updatePATCH /api/agents/{id}Update an agent
deleteDELETE /api/agents/{id}Delete an agent
listToolsGET /api/agents/{agentId}/toolsList tools attached to an agent
upsertToolPOST /api/agents/{agentId}/toolsAttach or update a tool on an agent
attachPlaybookPOST /api/agents/{agentId}/playbooksAttach a playbook to an agent
detachPlaybookDELETE /api/agents/{agentId}/playbooks/{playbookId}Detach a playbook from an agent
attachFaqPOST /api/agents/{agentId}/faqsAttach an FAQ to an agent
detachFaqDELETE /api/agents/{agentId}/faqs/{faqId}Detach an FAQ from an agent

Reference

client.agents.list(...)

List agents HTTPGET /api/agents · API reference →
list()
Returns every agent in the caller’s account, with attached playbooks and FAQs joined in. Ordered by created_at descending. There is no pagination today — every account has at most a few dozen agents in practice; if that changes we’ll add limit/offset like /api/tools and /api/playbooks.

client.agents.get(...)

Get an agent HTTPGET /api/agents/{id} · API reference →
get(id: string)
Returns the agent row plus its attached playbooks and FAQs.

client.agents.create(...)

Create an agent HTTPPOST /api/agents · API reference →
create(input: AgentCreate)
Persists a new agent in the caller’s account. Required body fields: name. Most other fields default sensibly: category=custom, status=draft, llm_model=gpt-4o, voice_provider=cartesia, auth_mode=authenticated, greeting_mode=interruptible. Returns the inserted row, including server-set id, created_at, and updated_at. Attach playbooks and FAQs separately via POST /api/agents/{id}/playbooks and POST /api/agents/{id}/faqs.

client.agents.update(...)

Update an agent HTTPPATCH /api/agents/{id} · API reference →
update(id: string, patch: Partial<AgentCreate>)

client.agents.delete(...)

Delete an agent HTTPDELETE /api/agents/{id} · API reference →
delete(id: string)

client.agents.listTools(...)

List tools attached to an agent HTTPGET /api/agents/{id}/tools · API reference →
listTools(agentId: string)

client.agents.upsertTool(...)

Attach or update a tool on an agent HTTPPOST /api/agents/{id}/tools · API reference →
upsertTool(agentId: string, toolName: string, config: Record<string, unknown> = {}, enabled = true)
Idempotent insert-or-update of one (agent_id, tool_name) row. Both POST and PUT are accepted.

client.agents.attachPlaybook(...)

Attach a playbook to an agent HTTPPOST /api/agents/{id}/playbooks · API reference →
attachPlaybook(agentId: string, playbookId: string)

client.agents.detachPlaybook(...)

Detach a playbook from an agent HTTPDELETE /api/agents/{id}/playbooks/{playbookId} · API reference →
detachPlaybook(agentId: string, playbookId: string)

client.agents.attachFaq(...)

Attach an FAQ to an agent HTTPPOST /api/agents/{id}/faqs · API reference →
attachFaq(agentId: string, faqId: string)

client.agents.detachFaq(...)

Detach an FAQ from an agent HTTPDELETE /api/agents/{id}/faqs/{faqId} · API reference →
detachFaq(agentId: string, faqId: string)