hosting
POST /v1/wordpress/sites/{siteId}/refresh
Ask this site's platform for its WordPress posture now.
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/wordpress/sites/{siteId}/refresh \
-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
Collects core version, plugins, themes, administrators, enforced disk quota and a **cache-busted request to the site's own homepage**, then stores and returns them. ⛔ **Every read is independent.** A platform that answers the install call and refuses the user list produces a snapshot with a core version and no administrators — not an empty row. And a failed collection **keeps the previous figures**, recording `snapshot.collect_error_code` beside them: *"what we knew four hours ago, and why we could not refresh it"* is a better answer than a blanked screen, provided the screen says which it is showing. ⛔ `sites.panel_access`, not merely `sites.view`: this commissions real vendor work against a customer's site, and a read permission should not be able to spend somebody else's rate limit.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
siteId (path) | Uuid | Yes | Site ID (UUIDv7). |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
site_id | string | Yes | — |
name | string | Yes | — |
primary_domain | string | Yes | — |
stack_type | string | Yes | `wordpress` or `woocommerce` — a shop IS a WordPress site. |
product_line | string | Yes | — |
deploy_target | string | Yes | — |
status | string | Yes | — |
php_version | string | Yes | — |
plan_name | string | Yes | The plan a customer would recognise, or `""`. Never an id. |
site_url | string | Yes | — |
admin_url | string | Yes | — |
update_state | WordPressUpdateState | Yes | ⛔⛔ **`unknown` is a real member and must never be rendered as `current`.** *"We have not looked"* and *"you are up to date"* are different statements, and a manager that collaps… |
reachability | WordPressReachability | Yes | What a **visitor** gets from the site's own homepage, from a cache-busted request. ⛔⛔ This is the only field on this surface measured over the path a human actually uses. Every… |
http_status | integer | Yes | — |
http_error_code | WordPressProbeErrorCode | Yes | Why the homepage request did not complete, blank when it did (whatever the status). A code rather than a sentence, because a sentence composed in the engine is English for ever… |
http_checked_at | string | Yes | — |
can_install | boolean | Yes | Whether software can be installed on this site's platform at all. ⛔ `false` for every managed hosting site — this platform exposes no shell and no install endpoint across its AP… |
capabilities | object | Yes | What this site's platform permits, as of the last collection. |
disk | WordPressAllowance | Yes | One countable resource. ⛔ **Three states, not two.** `limit: null, unlimited: false` is *no ceiling is stated*; `unlimited: true` is *the plan sells this as unlimited*, which is… |
bandwidth | WordPressAllowance | Yes | One countable resource. ⛔ **Three states, not two.** `limit: null, unlimited: false` is *no ceiling is stated*; `unlimited: true` is *the plan sells this as unlimited*, which is… |
snapshot | WordPressSnapshot | Yes | ⛔ **Null means nobody has ever collected this site.** A client renders that as *"not checked yet"* with a refresh action — never as zeroes, which read as "you are up to date". |
plugins | WordPressComponent[] | Yes | — |
themes | WordPressComponent[] | Yes | — |
admins | WordPressAdmin[] | Yes | — |
Errors this endpoint can return
401 · 403 · 404 · 422 · 429 · 503