WordPress Plugin Directory Stats and Health Score avatar

WordPress Plugin Directory Stats and Health Score

Pricing

from $3.00 / 1,000 plugin rows

Go to Apify Store
WordPress Plugin Directory Stats and Health Score

WordPress Plugin Directory Stats and Health Score

Get WordPress plugin directory stats: active installs, rating, downloads, version, last updated, tested-up-to WordPress version, support thread resolution and a health score that flags abandoned plugins. Uses the public WordPress.org plugins API. No login, no proxy.

Pricing

from $3.00 / 1,000 plugin rows

Rating

0.0

(0)

Developer

Detroit Web Agent - Open Data

Detroit Web Agent - Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

WordPress Plugin Directory Stats and Health Score: Installs, Updates, Abandonment Risk

Read the WordPress.org plugin directory and get one clean row per plugin: active installs, rating, total downloads, version, last updated date, the WordPress version it was tested up to, PHP requirement, support thread resolution and a health score that shows which plugins look neglected. Pick the popular, new, updated or top-rated lists, or name the plugins you care about.

What does this Actor do?

It calls the free public WordPress.org plugins API (api.wordpress.org/plugins/info/1.2/), the same API the WordPress admin uses to browse plugins. No key and no login are needed. For each plugin it works out how many days have passed since the last update, how many WordPress releases behind its "tested up to" version is, and how many support threads were resolved, then combines them into a health score from 0 to 100.

By default it reads the popular, new and recently updated lists (25 plugins each, duplicates removed), so a default run returns roughly 60 to 75 rows.

Run in 30 seconds

  1. Open the Actor and press Try for free (a free Apify account is enough).
  2. Keep the prefilled lists and press Start. A run takes well under a minute.
  3. Open the Output tab. Use the table view or download CSV, Excel or JSON.

Input

FieldWhat it does
browseDirectory lists to read: popular, new, updated, top-rated. Default: popular, new, updated.
perListPlugins to read per list, 1 to 100. Default 25.
slugsOptional extra plugins by slug, for example akismet. A wordpress.org/plugins link also works.
searchOptional directory search term, for example seo.
minActiveInstallsDrop plugins below this many active installs.
onlyAtRiskKeep only plugins with medium or high abandonment risk.
sortByactiveInstalls, healthScore (lowest first), lastUpdatedAt or downloadedTotal.
maxItemsStop after this many rows.

Sample input:

{
"browse": ["popular", "updated"],
"perList": 50,
"slugs": ["akismet", "woocommerce"],
"onlyAtRisk": false,
"sortBy": "healthScore",
"maxItems": 100
}

Output

One row per plugin:

FieldMeaning
slug, name, pluginUrlPlugin identifier, display name and its wordpress.org page.
activeInstallsActive installs as WordPress.org reports them (rounded steps such as 10,000 or 1,000,000).
rating, numRatingsAverage rating from 0 to 5 stars and the number of ratings.
downloadedTotalTotal downloads over the plugin's life.
version, lastUpdatedAt, addedAtCurrent version, last update time (UTC) and the date it joined the directory.
testedUpToWp, requiresWp, requiresPhpCompatibility fields the plugin declares.
supportThreadsResolved, supportThreadsTotal, supportResolvedPctSupport forum threads resolved and total.
daysSinceUpdate, testedLagReleasesDays since the last update and how many WordPress releases behind the tested-up-to version is.
healthScore, healthLabel, abandonmentRisk0 to 100 score, a label (healthy, watch, at risk) and low, medium or high risk.
scrapedAtWhen the row was read.

Developer names, profiles and contact details are not output.

Sample output

{
"slug": "elementor",
"name": "Elementor Website Builder - more than just a page builder",
"pluginUrl": "https://wordpress.org/plugins/elementor/",
"activeInstalls": 10000000,
"rating": 4.5,
"numRatings": 7319,
"downloadedTotal": 910268920,
"version": "4.3.5",
"lastUpdatedAt": "2026-10-13T12:48:00.000Z",
"addedAt": "2016-05-30",
"testedUpToWp": "7.1.3",
"requiresPhp": "7.4",
"supportThreadsResolved": 45,
"supportThreadsTotal": 65,
"daysSinceUpdate": 9,
"testedLagReleases": 0,
"healthScore": 94,
"healthLabel": "healthy",
"abandonmentRisk": "low"
}

Use cases

  • Vet a plugin before you install it on a client site: a long gap since the last update and an old tested-up-to version are warning signs.
  • Audit the plugins on your sites every month: list their slugs, sort by healthScore and replace the weakest ones first.
  • Spot new plugins that gain installs quickly, for newsletters, competitor research or product ideas.
  • Feed rows into an n8n, Make or Zapier workflow that posts at-risk plugins to Slack or opens a ticket.
  • Build a ranked "best maintained plugins in a niche" article using the search term and health score.

Why use it

  • Official source. Data comes from the WordPress.org plugins API, not from page scraping.
  • A score you can explain. The health score is a fixed formula, so the same plugin gives the same score on the same day.
  • Ready for spreadsheets and workflows. Flat rows, ISO dates and numbers, no HTML to clean up.

Pricing

Pay per event. You pay a small fixed amount per plugin row delivered, listed on the Pricing tab, plus a tiny start fee per run. Slugs that are not found are never charged, and you can set a maximum cost per run in the run options.

FAQ

How is the health score calculated? Up to 50 points for how recently the plugin was updated (full marks at 30 days or less, zero at about two years), up to 30 points for the tested-up-to WordPress version (10 points lost for each WordPress release behind the current one), and up to 20 points for the share of support threads resolved (10 points when there are no threads). Risk is high when a plugin has not been updated for more than two years or scores under 35, medium under 60, otherwise low.

Which WordPress version counts as current? The actor reads the current release from the WordPress.org version check at run time. If that is unavailable it uses the newest tested-up-to value in the run and says so in the OUTPUT record.

Why are active installs round numbers? WordPress.org publishes active installs in steps, for example 100, 1,000, 10,000 and 1,000,000+. The actor passes them on unchanged.

Why is the plugin rating a decimal like 4.5? The API gives a 0 to 100 value. The actor divides it by 20 to give 0 to 5 stars.

Limits

  • Only the public plugin directory is read. Premium plugins sold elsewhere are not included.
  • The list endpoints return up to 100 plugins per list per run.
  • Some very new plugins have no ratings, installs or support threads yet; those fields are empty or zero.
  • Install counts and ratings are exactly as WordPress.org publishes them.

Found a bug or need a field? Open an issue on the Issues tab with the run URL.

More from DWA Open Data

Browse all 69 data Actors, with live prices and sample output, at open-data-actors.pages.dev.


Feedback: if this Actor was useful, or if it fell short, an honest review on the Reviews tab helps other users decide. Problems or feature requests: please open an Issue and we usually reply within one business day.