hosting

GET /v1/wordpress/theme-directory/{slug}

One theme from the WordPress directory.

All hosting endpoints

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/theme-directory/{slug} \
  -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

⛔ A slug the directory does not know is a **`404`**. The upstream answers `404` with an `error` field for an unknown slug — and, for some shapes, `200` with the same field — and both are turned into a real 404 here. Passing the payload through would render as a theme whose every field is empty, with an Install button on it. Requires `sites.view`.

Parameters

NameTypeRequiredWhat it is
slug (path)stringYesThe directory slug, as the search returns it.

Response

NameTypeRequiredWhat it is
slugstringYesThe directory slug — what `installSiteWordPressTheme` takes. ⛔ The **only** field from this resource ever sent to a box; the download URL is resolved by the site itself, so a ca…
namestringYes
versionstringYes
authorstringYesPlain text. ⛔ The upstream returns this as an object here and as an HTML anchor on the plugin API — both shapes are real and both are flattened.
descriptionstringYesPlain text; the upstream's markup is stripped.
ratingnumberYes⛔ **0–5, normalised here.** The upstream reports 0–100.
num_ratingsintegerYes
downloadedintegerYesLifetime downloads. ⛔ The theme API has **no `active_installs`** — the plugin field with the closest name means something different, so a client reusing a plugin card here would…
last_updatedstringYes
requires_wpstringYesMinimum WordPress version. `""` when the theme does not say.
requires_phpstringYesMinimum PHP version. `""` when the theme does not say.
homepagestringYes
screenshot_urlstringYesThe theme's own screenshot, normalised to `https` (upstream emits it protocol-relative). ⚠️ A third-party URL a client renders in an `<img>`; see the operation description.
preview_urlstringYesA live preview on wordpress.org, normalised to `https`. ⚠️ Third-party; see the operation description.

Errors this endpoint can return

401 · 403 · 404 · 429 · 503