hosting
GET /v1/wordpress/theme-directory/{slug}
One theme from the WordPress directory.
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
| Name | Type | Required | What it is |
|---|---|---|---|
slug (path) | string | Yes | The directory slug, as the search returns it. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
slug | string | Yes | The 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… |
name | string | Yes | — |
version | string | Yes | — |
author | string | Yes | Plain 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. |
description | string | Yes | Plain text; the upstream's markup is stripped. |
rating | number | Yes | ⛔ **0–5, normalised here.** The upstream reports 0–100. |
num_ratings | integer | Yes | — |
downloaded | integer | Yes | Lifetime 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_updated | string | Yes | — |
requires_wp | string | Yes | Minimum WordPress version. `""` when the theme does not say. |
requires_php | string | Yes | Minimum PHP version. `""` when the theme does not say. |
homepage | string | Yes | — |
screenshot_url | string | Yes | The 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_url | string | Yes | A live preview on wordpress.org, normalised to `https`. ⚠️ Third-party; see the operation description. |
Errors this endpoint can return
401 · 403 · 404 · 429 · 503