hosting

PATCH /v1/sites/{siteId}/chat-agent

Change the agent's name, personality, brand or the domains it may appear on.

All hosting endpoints

All developer docs

Authentication

Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X PATCH https://api.zinndigital.com/v1/sites/{siteId}/chat-agent \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

Everything a visitor sees is here — and it is the customer's brand, not ours. ⛔ allowed_origins is a fence, not a preference. The public endpoints answer only for an origin on this list, and an empty list refuses everything: it means "not installed anywhere yet", never "allow anything". Entries are normalised to scheme://host, so pasting a full page address works. monthly_message_cap is checked before each answer, not reconciled afterwards, so it is a real limit on what this agent can spend rather than a report on what it did.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).

Request body

NameTypeRequiredWhat it is
namestringNo
greetingstringNo
personastringNo
brand_colourstringNo
launcher_positionstring<left, right>No
handoff_enabledbooleanNo
statusstring<active, paused>No
allowed_originsstring[]No
monthly_message_capintegerNo

Response

NameTypeRequiredWhat it is
idstringYes
site_idstringNo
namestringYesWhat the agent calls itself to visitors. The customer's brand, not ours.
greetingstringNo
personastringNoFree text describing tone and what to say. ⛔ It cannot widen what the agent may read — retrieval decides that before the model sees anything.
brand_colourstringNo
launcher_positionstring<left, right>No
statusstring<active, paused>Yespaused stops it answering and keeps everything it has learned, so switching back on is instant rather than a re-index.
handoff_enabledbooleanNoOffer to pass the visitor to a person when the agent cannot answer.
public_keystringYesCarried in the embed snippet. It identifies the agent and authorises nothing a page's reader could not already do — the fence is allowed_origins.
allowed_originsstring[]YesOrigins the public endpoints will answer for. ⛔ Empty refuses everything — it means "not installed yet", never "allow anything".
monthly_message_capintegerNoMessages included per calendar month. Checked before each answer.
messages_this_monthintegerNo
indexed_chunksintegerNoPassages of the site currently searchable. Zero means it knows nothing yet.
embed_snippetstringNoThe two lines to paste into any website.
sourcesChatAgentSource[]Yes

Errors this endpoint can return

401 · 403 · 404 · 422