hosting

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

One plugin from the WordPress directory.

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/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…

Errors this endpoint can return

401 · 403 · 404 · 429 · 503