hosting
POST /v1/index-monitoring
Monitor another page, or a whole site hosted elsewhere.
Authentication
Send an API key as a bearer token. The endpoint checks sites.view; a key without it is refused with 403, not 404.
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/index-monitoring \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "fqdn": <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
Creates one monitored target. kind decides which product and therefore which allowance it consumes, and the two are not interchangeable: a section needs a path and consumes indexing_targets; an external_site takes no path and consumes external_index_sites. Does not check the target. The next scheduled sweep does, on this account's normal cadence — so creating a target costs nothing, and a typo costs nothing. Answers 409 when the same page is already monitored, rather than succeeding silently: a duplicate would consume a second allowance slot and a second check every day for the same answer. Answers 422 with ALLOWANCE_EXCEEDED when the relevant allowance is full, carrying the limit in details and naming the add-on that raises it.
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
kind | string<section, external_site> | No | — |
fqdn | string | Yes | The hostname to monitor, e.g. example.com. |
path | string | No | Required for section, and rejected for external_site. ⛔ An empty path on a section would be the whole site, which every plan already checks free — so it is refused rather than… |
label | string | No | — |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
id | string | Yes | — |
kind | string<section, external_site> | Yes | section is a page or path prefix inside a site, on top of the free whole-site check. external_site is an entire website hosted somewhere else, billed per site per month. They… |
fqdn | string | Yes | The hostname, lower-cased. |
path | string | Yes | The path prefix without slashes (blog, shop/offers). Always empty on an external_site, and never empty on a section. |
label | string | Yes | What the customer calls it, so a list of twelve paths is readable. |
operand | string | Yes | The exact search operand checked, e.g. example.com/blog. |
created_at | string | Yes | — |
indexed | boolean | Yes | ⛔ Three-valued. true and false are answers from the provider. null means no reading exists yet, or this row is beyond the current allowance and is not being checked… |
checked_at | string | Yes | When the reading was taken. null when there has never been one. |
monitored | boolean | Yes | Whether the sweep is currently checking this row. false with the row still present is the "you have downgraded, this one is paused" state — shown rather than hidden, because the… |
Errors this endpoint can return
401 · 403 · 404 · 409 · 422