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/kbSigned 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. This is what the marketing site server-renders and what an AI answer engine crawls (§2.18), so it must work with no authentication at all. Published articles only, and that filter lives in every queryset rather than in a serializer so a new field or endpoint cannot leak a draft. `locale` names what the reader wants; the payload's `locale` reports what they actually got, field by field, with English as the floor.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
cursor (query) | string | No | Opaque cursor from a previous page's `page.next_cursor`. |
limit (query) | integer | No | Maximum items to return (page size). |
locale (query) | string | No | The language to render in. An unknown value falls back to English rather than returning nothing, so a visitor whose browser sends a locale we do not serve reads the English arti… |
category (query) | string | No | Only articles in this category slug. |
q (query) | string | No | Free text, minimum two characters. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
data | KbArticle[] | Yes | — |
page | PageMeta | Yes | — |
Errors this endpoint can return
422 · 429