hosting

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

One plugin 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/plugin-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 single plugin, with its long-form `sections` (description, installation notes, changelog, FAQ) which the search deliberately omits — they are tens of kilobytes per plugin and no list view renders them. ⛔ A slug the directory does not know is a **`404`**. The upstream answers `200` with an `error` field for an unknown slug, which a naive client would render as a real plugin whose every field is empty — one the customer could click Install on. 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 `installSiteWordPressPlugin` takes. ⛔ The **only** field from this resource that is ever sent to a box; the download URL is resolved by the site itself…
namestringYes
versionstringYes
authorstringYesPlain text. The upstream's surrounding anchor markup is stripped.
short_descriptionstringYes
ratingnumberYes⛔ **0–5, normalised here.** The upstream reports 0–100; a client rendering that as stars without dividing shows every plugin as full marks.
num_ratingsintegerYes
active_installsintegerYesThe directory's own estimate, and it means "at least this many" — it is bucketed upstream, so 4,000,000 and 4,900,000 both arrive as 4000000.
last_updatedstringYes
requires_wpstringYesMinimum WordPress version. `""` when the plugin does not say.
requires_phpstringYesMinimum PHP version. `""` when the plugin does not say.
tested_up_tostringYesThe newest WordPress the author has tested against.
homepagestringYes
icon_urlstringYesThe plugin's icon, best available size. `""` when it has none — ⛔ NOT the directory's grey placeholder, which would give every icon-less plugin the same picture: present, wrong,…
sectionsobjectNoLong-form copy (description, installation, changelog, FAQ), plain text. Present only on `getWordPressDirectoryPlugin`; the search omits it because it is tens of kilobytes per pl…

Errors this endpoint can return

401 · 403 · 404 · 429 · 503