public
POST /v1/public/footprint-checks
Check up to five sites for the public traces that tie them together — no account.
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 POST https://api.zinndigital.com/v1/public/footprint-checks \
-H "Content-Type: application/json" \
-d '{ "domains": <string[]> }'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
Anonymous. Starts a free check of one to five public sites and returns a token to read it back with. The answer is the verdict — a score, a grade and how many things there are to look at — and nothing else: what each of them is, and how to fix it, is the signed-in product, for the customer's own sites. The same set of sites asked again within a day is answered by the check that already exists (200, same token) and starts nothing. A new check is 202; poll GET /v1/public/footprint-checks/{token} until state is done. An address, a single-label name or more than five sites is refused with 422. Charged against a per-visitor and a global budget before the body is parsed, and against a platform-wide daily ceiling on new checks (429). Off by default. While the free check is switched off this answers 404 with the refusal refusal.footprint.publicDisabled, charges no budget and starts nothing; see GET /v1/public/footprint-checks.
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
domains | string[] | Yes | One to five public site names or URLs. Each is normalised to its bare host. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
token | string | Yes | Read the check back with this. |
state | string<running, done, failed> | Yes | — |
score | integer | No | 100 means nothing public ties the sites together. null until done. |
grade | string | No | A to E; empty until done. |
sites_count | integer | Yes | — |
reachable_count | integer | Yes | — |
risks | object | Yes | How many things to look at, by how strongly each ties the sites together. |
risk_count | integer | Yes | — |
good_count | integer | Yes | Things checked and found clear. |
sites | object[] | Yes | — |
started_at | string | Yes | — |
finished_at | string | No | — |
Errors this endpoint can return
400 · 404 · 422 · 429