hosting

GET /v1/wordpress/sites/{siteId}

One WordPress site's stored posture, with its component listings.

All hosting endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the sites.view permission; 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 GET https://api.zinndigital.com/v1/wordpress/sites/{siteId} \
  -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 same row listWordPressSites returns, plus the stored plugin, theme and administrator listings the manager's detail drawer shows. Still Postgres only — the listings are whatever the last collection stored, with snapshot.collected_at beside them so the age is visible. 404 for a site outside the caller's scope and for one that does not run WordPress — a 403 would confirm the id exists. Requires sites.view.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).

Response

NameTypeRequiredWhat it is
site_idstringYes—
namestringYes—
primary_domainstringYes—
stack_typestringYeswordpress or woocommerce — a shop IS a WordPress site.
product_linestringYes—
deploy_targetstringYes—
statusstringYes—
php_versionstringYes—
plan_namestringYesThe plan a customer would recognise, or "". Never an id.
site_urlstringYes—
admin_urlstringYes—
update_stateWordPressUpdateStateYes⛔⛔ 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 collapses…
reachabilityWordPressReachabilityYesWhat 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_statusintegerYes—
http_error_codeWordPressProbeErrorCodeYesWhy 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_atstringYes—
can_installbooleanYesWhether 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 API…
capabilitiesobjectYesWhat this site's platform permits, as of the last collection.
diskWordPressAllowanceYesOne 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…
bandwidthWordPressAllowanceYesOne 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…
snapshotWordPressSnapshotYes⛔ 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".
pluginsWordPressComponent[]Yes—
themesWordPressComponent[]Yes—
adminsWordPressAdmin[]Yes—

Errors this endpoint can return

401 · 403 · 404 · 429