domains
GET /v1/domains/{domainId}/index-check
Get a domain's search-index status.
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 GET https://api.zinndigital.com/v1/domains/{domainId}/index-check \
-H "Authorization: Bearer zdk_live_…"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
The **cached** search-index reading for this domain — whether Google has the site, and roughly how much of it. Included on every Footprint-Free plan. This never calls the upstream provider, so it is free to render and poll. Use the run endpoint to perform a new check; each check consumes provider allowance. `state` distinguishes four cases that must not be conflated: `indexed`, `not_indexed` (the provider answered and the search engine has nothing — a real measurement worth acting on), `unknown` (the provider could not tell us — an outage on our side, **not** a statement about the site) and `never_checked` (nothing has been requested yet). A client that renders `unknown` the same way as `not_indexed` will report healthy sites as deindexed during any provider outage. `estimated_indexed_pages` is the search engine's own loose upper bound and is **not** an authoritative page count — it routinely differs from Search Console by several times. Present it as a trend, never as "N pages indexed".
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
domainId (path) | Uuid | Yes | The domain's id. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
fqdn | string | Yes | — |
state | string<indexed, not_indexed, unknown, never_checked> | Yes | `indexed` — the provider answered and the search engine has this site. `not_indexed` — the provider answered and the search engine has nothing. A real measurement, and the one s… |
checked_at | string | No | When the stored check ran. Null when never checked. |
is_stale | boolean | Yes | True when the reading is older than the 7-day monitoring window, or absent entirely. A hint that a fresh check is worth its allowance — not an indication the result is wrong. |
estimated_indexed_pages | integer | No | The search engine's own loose upper bound for how many pages of this site it holds. **An estimate, not an authoritative count** — it routinely differs from Search Console by sev… |
sample_urls | string[] | No | A few URLs the search engine returned, so a customer can confirm the right site was matched. Evidence, not a sitemap — capped at five. |
next_check_at | string | No | When this domain is next due for an automatic check. Indexed sites are re-checked monthly, missing ones daily, and unknown ones within hours. |
Errors this endpoint can return
401 · 403 · 404 · 429