WordPress Plugins Scraper · Plugins, Installs & Ratings
Pricing
from $0.85 / 1,000 wordpress plugin record scrapeds
WordPress Plugins Scraper · Plugins, Installs & Ratings
Scrape WordPress plugins directory by tags, search queries, author accounts, install bands, and rating filters. Extract ratings, active installs, tags, release details, and author links.
Pricing
from $0.85 / 1,000 wordpress plugin record scrapeds
Rating
0.0
(0)
Developer
Tarek Etman
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share

WordPress Plugins Scraper · Plugins, Installs & Ratings
The WordPress Plugins Scraper extracts public metadata, rating breakdowns, active installation estimates, tag classifications, author credentials, and version update details from the official WordPress.org plugin directory (api.wordpress.org). Whether you need to monitor e-commerce plugin adoption, analyze SEO tool ratings, track Gutenberg block library updates, or audit top open-source authors, this actor delivers clean, structured JSON records directly into your default dataset.
Maintained by reapX. Every row cites the Apify run that produced it — nothing is inferred, modelled or filled in, and a field absent from the source is absent from the row. The extracted archive for this source is browsable at reapx.dev/data/wordpress-plugins-scraper/ and mirrored as an open dataset on Hugging Face and Kaggle. Questions: reapxdev@proton.me
Features
- Search & Tag Filtering: Scrape plugins matching keyword queries (e.g.,
seo,contact form,caching), tag slugs (woocommerce,elementor,security), or specific author profiles (automattic,yoast,awesome-motive). - Directory Browse Sections: Explore WordPress plugin directory collections including
popular,featured,updated, andnewreleases. - Install & Rating Thresholds: Set minimum active installation counts (e.g., 10,000+) and rating score floors (e.g., 80% / 4-star rating) to focus on top-performing plugins.
- Rich Metadata Extraction: Includes plugin slug, title, version, author profile URL, star rating breakdown (1 to 5 stars), total ratings, support thread resolution metrics, active install counts, total download counts, last update timestamp, release date, homepage URL, short description, tags dictionary, minimum required WordPress core version, tested core version, and required PHP version.
- Pay-Per-Event Billing: Charged per plugin record scraped ($0.001 per record) with automatic tier discounts across Free, Bronze, Silver, Gold, Platinum, and Diamond levels.
How it works
- API Integration: Connects directly to
https://api.wordpress.org/plugins/info/1.2/via high-speed HTTP requests without headless browser overhead. - Paginated Retrieval: Automatically iterates through paginated result sets using native
query_pluginsrequests. - Filtering & Cleaning: Filters records against configured minimum install and rating thresholds, while sanitizing HTML tags from author and description fields.
- Streaming Push: Emits clean records to the default dataset incrementally with per-event charging, preserving data even if runs are stopped early.
⬇️ Input
The actor accepts the following configuration parameters via its input schema:
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
searchQuery | String | "seo" | Keyword or phrase to search within the WordPress plugins directory. E.g., seo, woocommerce, contact form. |
tag | String | "woocommerce" | Tag or category slug to filter plugins by on wordpress.org. E.g., woocommerce, security, forms. |
author | String | "" | WordPress.org author username to filter plugins by. E.g., automattic, yoast, elementor. |
browse | String | "popular" | Directory section to browse. Options: popular, featured, updated, new. |
minActiveInstalls | Integer | 0 | Filter out plugins with fewer active installations than this threshold. E.g., 10000. |
minRating | Integer | 0 | Filter out plugins with a rating score below this percentage (0 to 100). E.g., 80. |
maxItems | Integer | 100 | Maximum number of plugin records to extract and save (1 to 5,000). |
Example Input JSON
{"tag": "woocommerce","browse": "popular","minActiveInstalls": 10000,"minRating": 80,"maxItems": 100}
⬆️ Output
Scraped records are saved to the default dataset. Each record contains the following fields:
| Field Name | Type | Description | Example |
|---|---|---|---|
slug | String | Unique URL identifier for the plugin | "elementor" |
name | String | Display title of the plugin | "Elementor Website Builder" |
version | String | Latest published version string | "3.23.0" |
author | String | Clean author display name | "Elementor.com" |
authorProfile | String | URL to author profile on wordpress.org | "https://profiles.wordpress.org/elementor/" |
rating | Number | Average user rating score out of 100 | 94 |
ratings | Object | Star rating breakdown dictionary (1-5 stars) | {"5": 5800, "4": 400, "3": 200, "2": 100, "1": 300} |
numRatings | Integer | Total number of user ratings submitted | 6800 |
supportThreads | Integer | Total count of community support forum threads | 250 |
supportThreadsResolved | Integer | Count of support forum threads marked resolved | 210 |
activeInstalls | Integer | Estimated active installation count | 5000000 |
downloaded | Integer | All-time total downloads count | 150000000 |
lastUpdated | String | Date string of last update | "2026-07-28 14:30pm GMT" |
added | String | Date plugin was added to WordPress directory | "2016-05-30" |
homepage | String | Official homepage or documentation URL | "https://elementor.com" |
shortDescription | String | Summary blurb of plugin features and purpose | "The Elementor Website Builder has it all..." |
downloadLink | String | Direct download URL for the plugin ZIP file | "https://downloads.wordpress.org/plugin/elementor.3.23.0.zip" |
tags | Object | Dictionary of tags assigned to this plugin | {"builder": "builder", "page-builder": "page builder"} |
requires | String | Minimum required WordPress core version | "6.0" |
tested | String | Highest tested WordPress core version | "6.6" |
requiresPhp | String | Minimum required PHP version | "7.4" |
Sample Output Record
{"slug": "elementor","name": "Elementor Website Builder","version": "3.23.0","author": "Elementor.com","authorProfile": "https://profiles.wordpress.org/elementor/","rating": 94,"ratings": {"1": 300,"2": 100,"3": 200,"4": 400,"5": 5800},"numRatings": 6800,"supportThreads": 250,"supportThreadsResolved": 210,"activeInstalls": 5000000,"downloaded": 150000000,"lastUpdated": "2026-07-28 14:30pm GMT","added": "2016-05-30","homepage": "https://elementor.com","shortDescription": "The Elementor Website Builder has it all: drag and drop page builder, pixel perfect design, mobile editing, and more.","downloadLink": "https://downloads.wordpress.org/plugin/elementor.3.23.0.zip","tags": {"builder": "builder","page-builder": "page builder"},"requires": "6.0","tested": "6.6","requiresPhp": "7.4"}
Use Cases
- E-Commerce Ecosystem Research: Track active install growth, rating distributions, and competitor releases across WooCommerce payment, shipping, and marketing add-ons.
- WordPress Plugin Market Analysis: Analyze top-performing plugins in competitive niches such as SEO, security, form builders, and Gutenberg block packs.
- Security & Maintenance Audits: Identify plugins with low active installation counts, stagnant last-updated dates, or unmaintained PHP/WordPress compatibility ranges.
- Developer Portfolio Tracking: Monitor rating feedback, review volume, and support thread resolution rates across your company's WordPress plugin catalog.
❓ FAQ
How are active installations estimated?
WordPress.org reports active installations in standardized threshold bands (e.g., 10,000, 50,000, 100,000, 1,000,000+). The activeInstalls field reflects the exact active install metric returned by the official API.
Does this scraper require login or API keys?
No. The scraper accesses the public api.wordpress.org endpoints without requiring authentication or API keys.
Can I filter by multiple tags or search terms in one run?
You can search by keyword or filter by tag/author per run. To run multi-category extraction at scale, launch multiple tasks using pre-configured task definitions in TASKS.json.
💬 Your feedback
Have feature requests, custom dataset requirements, or questions? Contact the maintainers directly at reapxdev@proton.me or browse our public data archives on reapx.dev.
Unofficial - not affiliated with WordPress or the WordPress Foundation. Collects public data only. reapx. Contact reapxdev@proton.me.
🧪 Example input
A real, runnable configuration — this is an actual input this Actor has run with.
{"tag": "woocommerce","browse": "popular","maxItems": 50}
📄 Sample output
One real row from a real run of this Actor, unedited.
{"slug": "google-listings-and-ads","name": "Google for WooCommerce","version": "3.8.1","author": "WooCommerce","authorProfile": "https://profiles.wordpress.org/woocommerce/","rating": 54,"ratings": {"5": 95,"4": 8,"3": 16,"2": 15,"1": 132},"numRatings": 266,"supportThreads": 38,"supportThreadsResolved": 25,"activeInstalls": 800000,"downloaded": 43029960,"lastUpdated": "2026-07-23 3:45pm GMT","added": "2021-05-10","homepage": "","shortDescription": "Native integration with Google that allows merchants to easily display their products across Google’s network.","downloadLink": "https://downloads.wordpress.org/plugin/google-listings-and-ads.3.8.1.zip","tags": {"ads": "ads","google": "google","listings": "listings","product-feed": "product feed","woocommerce": "woocommerce"},"requires": "6.6","tested": "7.0.2","requiresPhp": "7.4"}
⚠️ Run outcomes and error handling
This Actor reports what happened in the run's status message, and it always keeps whatever it collected. These are the outcomes you can get and what each one means.
| Outcome | What it means |
|---|---|
| Success | Rows were returned and you were charged plugin-scraped at $0.001 per row. |
| No matches | The source returned nothing for your filters. Nothing is charged. Widen the date window or drop a filter. |
| Partial - source refused | The source rate-limited or refused some requests. The affected items are skipped and named in the log, and everything already collected is still pushed. A block never discards a run's work. |
| Rejected filter | The source itself rejected the filter combination. The run fails fast with the source's own reason and nothing is charged. |
What is guaranteed either way
- Every row is pushed as it is built, not buffered to the end of the run. Anything that buffers output loses everything to a timeout, a block or a migration; this does not.
- A field absent from the source is absent from the row. Nothing is inferred, modelled or filled in to make a row look complete.