Skip to main content
PATCH
Update an agent's WhatsApp copy

Authorizations

Authorization
string
header
required

An API key from Settings → API keys, sent as Authorization: Bearer kb_live_…. A workspace key starts kb_; a personal key starts kbp_ and acts as its owner.

Headers

Idempotency-Key
string | null

A unique key (a UUID works) for this request. Retrying with the same key returns the first answer instead of running twice.

Maximum string length: 255
If-Match
string
required

The revision you read (its ETag, an integer in quotes such as "7"), so a stale write is refused with 412. Required: a write without it is refused with 428.

Pattern: ^(W/)?"?[0-9]+"?$
Example:

"\"7\""

Kallabot-Version
enum<string>

The API version to answer as, a date (YYYY-MM-DD). Leave it out for the current version (2026-11-07). An unknown version is refused with 400 unsupported_api_version.

Available options:
2026-11-07
Example:

"2026-11-07"

Path Parameters

agent_id
string
required

Body

application/json
whatsapp
ChannelCopy · object | null

Replaces config.metadata.whatsapp wholesale; null or {} clears it. Omit to keep it.

knowledge_ids
string[] | null

Replaces config.knowledge.ids, keeping top_k; null or [] attaches none. Omit to keep them.

Maximum array length: 100

Response

Successful Response

id
string
required

The agent's id.

name
string
required

The agent's display name.

slug
string
required

A stable, URL-safe name, unique in the workspace; survives renames.

status
enum<string>
required

draft (never published), active (live), suspended (paused by Kallabot) or archived.

Available options:
draft,
active,
suspended,
archived
direction
enum<string>
required

Whether it answers calls, makes them, or both.

Available options:
inbound,
outbound,
both
revision
integer
required

Bumped on every change. Send it back as If-Match on a write.

has_unpublished_changes
boolean
required

True when a draft differs from what callers hear.

total_calls
integer
required

Calls this agent has handled.

created_at
string
required

When it was created (ISO 8601).

updated_at
string
required

When it last changed (ISO 8601).

capabilities
AgentCapabilities · object
required

What this key may do to this agent.

config
Config · object
required

The agent's configuration (the draft when one exists, else the live one). Secrets are redacted.

config_hash
string
required

A fingerprint of config.

schema_version
integer
required

The configuration schema version.

published
boolean
required

True when this save went live: the agent was published with no other unpublished changes, and the caller may publish. Otherwise it is a draft (or nothing changed).

published_version
integer | null

The version callers hear; null before the first publish.

draft_version
integer | null

The unpublished version being edited, if any.

owner_user_id
string | null

The person who owns it, if any.

team_id
string | null

The team it belongs to, if any.

tags
string[]

Free-form labels.

last_call_at
string | null

When it last handled a call (ISO 8601).

findings
ValidationFinding · object[]

Validation findings for config.