public
GET /v1/public/chat/{publicKey}/config
What the chat widget on this site should look like.
Authentication
This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.
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 GET https://api.zinndigital.com/v1/public/chat/{publicKey}/configSigned 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
Anonymous — no credential, no tenant. The widget calls this to learn its greeting, colour, position and whether a person is likely to answer right now. The publicKey names a widget and authorises nothing: it ships in the page source of every site that embeds the widget, exactly like a publishable key. What actually gates the call is the Origin header, which must be one the customer listed on the widget. An unknown key, a disabled widget and an unlisted origin all answer 404 alike — which of the three it is is the customer's business, and distinguishing them would make this an oracle about other people's accounts. ⭐ The WordPress plugin never calls this: it already holds these settings server-side and inlines them into the page, so a WordPress visitor's browser makes no request at all until they open the chat.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
publicKey (path) | string | Yes | The widget's public key. Public by design — it ships in the page source of every site that embeds the widget — so it NAMES a widget and authorises nothing; the Origin header is… |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
widget_id | string | Yes | — |
team_name | string | No | — |
greeting | string | No | — |
accent_colour | string | No | — |
position | string<left, right> | No | — |
branding | boolean | Yes | Whether "Powered by Zinn® Chat" is shown. Decided by the TIER, not by the widget's own flag — a customer who downgrades stops hiding our mark without anybody editing their… |
ai_enabled | boolean | No | — |
online | boolean | Yes | Whether a person is likely to answer, from the customer's declared business hours. Not operator presence: that would need the dashboard to hold a socket open, which this design… |
Errors this endpoint can return
404 · 429