domains
POST /v1/domains/{domainId}/index-check/run
Run a fresh search-index check for a domain.
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 POST https://api.zinndigital.com/v1/domains/{domainId}/index-check/run \
-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
Calls the upstream provider and stores a new check, then returns it in the same shape as the GET. **Consumes provider allowance on every call**, so it is driven by an explicit user action or the scheduled sweep — never by rendering a page. Returns 503 when the provider is unreachable, unconfigured, or the allowance is exhausted. In every one of those cases the previously stored reading is left untouched and still served by the GET — a failed check never writes a negative result.
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 · 503