WordPress Plugin & Theme Scraper — Installs & Ratings avatar

WordPress Plugin & Theme Scraper — Installs & Ratings

Pricing

from $2.75 / 1,000 results

Go to Apify Store
WordPress Plugin & Theme Scraper — Installs & Ratings

WordPress Plugin & Theme Scraper — Installs & Ratings

Scrape the WordPress.org plugin & theme directory: active installs, total downloads, rating, review count, version, PHP/WP requirements, support stats, author and dates. For plugin market intelligence, ASO and competitive research.

Pricing

from $2.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Features

Limited permissions

Share

WordPress Plugin & Theme Scraper — Installs, Downloads & Ratings

Extract the entire WordPress.org plugin & theme directory as structured data: active installs, total downloads, rating & review count, full star breakdown, version, PHP/WordPress requirements, support-thread stats, author, icon/screenshot, and dates. Search by keyword, browse by tag, or pull ranking feeds and get clean data in seconds — no coding, no login required.

Export directly to JSON, CSV, Excel, or API.

Built for WordPress plugin & theme developers, digital agencies, SaaS founders sizing market opportunities, ASO / "plugin store optimization" marketers, security & compatibility auditors, and data teams building WordPress ecosystem intelligence.


⚡ At a glance

FeatureSpecification
Data TargetsWordPress Plugins and Themes directory
Search CapabilitiesSearch terms, directory tags, and ranking feeds (popular, new, updated, top-rated, featured)
Max Scale1,000+ to 10,000+ records per run with unlimited auto-pagination (maxPages: 0)
Core MetricsActive installs (bucketed), total downloads, 0–100 & 0–5 ratings, full 1★–5★ review distribution
Technical SpecsMin WordPress version, tested up to WP version, min PHP version, current release version
Lead & Dev IntelAuthor display name, WordPress.org author profile URL, official homepage, donation link
Support HealthTotal support threads (last 2 months) & resolved thread counts
Export FormatsDataset (JSON, CSV, Excel, XML) + Key-Value Store OUTPUT sync
Execution Speed~100 plugins in under 12 seconds; ~500 plugins in ~30 seconds
Proxy RequirementPublic directory access — Datacenter proxies enabled by default
Data CleanlinessAutomatic HTML stripping, entity decoding, and scheme-less asset URL normalization

🔎 Why scrape the WordPress Directory?

The WordPress.org directory is the single largest public marketplace in the open-web ecosystem — hosting over 60,000+ plugins and thousands of themes powering more than 40% of all websites globally. Each listing carries vital commercial and technological intelligence: active installs, total historical downloads, ratings, review volume, version release cadence, and support resolution ratios.

Collecting this market intelligence manually is tedious and unscalable:

  • The web interface limits visibility to 10 results per page.
  • Review star distributions require manual drill-downs.
  • Historical download counters and technical PHP/WP requirements are scattered across multiple sub-pages.
  • Manually compiling competitive intelligence or sizing a product category takes hours of error-prone copy-pasting.

This WordPress Directory Scraper turns the entire directory into an automated, structured data pipeline. Whether you need to benchmark direct rivals, monitor compatibility flags before core WordPress releases, or generate developer leads, you can extract 1,000+ listings in seconds.


🎯 High-Impact Use Cases

1. Plugin Market Intelligence & Niche Sizing

Quantify total addressable market (TAM) across specific categories such as SEO, e-commerce, caching, forms, or security. Calculate market share percentages by summing active installs across competing solutions and monitor overall install velocity.

2. App Store Optimization (ASO) & Competitive Benchmarking

Analyze which plugins win top search positions for target keywords. Benchmark your listing’s rating score, review velocity, and 5-star versus 1-star ratios against industry leaders to optimize your titles, tags, and descriptions for organic directory discovery.

3. Compatibility & Security Auditing

Identify abandoned or high-risk plugins running across client websites. Filter listings by lastUpdated, testedWp, and requiresPhp to detect software that has not been updated for recent PHP or major WordPress core milestones.

4. B2B Partnerships & Developer Lead Generation

Discover active, high-volume plugin authors and agencies. Extract verified author profile URLs, official plugin homepages, and developer donation links to source acquisition targets, partnership opportunities, or service clients.

5. Product Roadmapping & Feature Discovery

Track the new and updated feeds to identify emerging product categories, rising developer trends, and popular feature integrations across the ecosystem before they reach mainstream adoption.

6. Agency Tech Stack Standardization

WordPress agencies managing hundreds of client properties use this data to curate an internal roster of approved, actively maintained plugins with verified PHP 8+ compatibility and responsive developer support.


✨ Key Features & Capabilities

  • ✅ Multi-Source Hybrid Runs: Search by keywords (seo, woocommerce, security), browse directory tags (cache, forms), and extract ranking feeds (popular, featured, top-rated) all in a single run.
  • ✅ Automatic Slug De-duplication: Overlapping sources are automatically deduplicated by unique directory slug, ensuring clean, unique datasets without duplicate entries.
  • ✅ Deep 1,000+ Pagination: Automatically traverses 100 items per page with zero artificial caps when maxPages is set to 0 (auto/unlimited governed by maxItems).
  • ✅ Dual Directory Coverage: Seamlessly extract both plugins and themes by toggling the type selector.
  • ✅ Rich Technical & Social Data: Captures compatibility requirements, resolved support thread ratios, full review breakdowns, and direct ZIP download links.
  • ✅ Clean Data Normalization: Strips HTML entities, resolves numeric characters, converts scheme-less asset URLs to full https:// links, and types all numeric values cleanly.
  • ✅ Dual Storage Output: Writes to Apify default dataset for tabular export and syncs with Key-Value Store OUTPUT for rapid synchronous programmatic access.

📥 Input Parameters

All parameters are optional. Running the actor with empty {} inputs automatically extracts the top 100 listings from the popular browse feed.

ParameterTypeDefaultDescription
typeString"plugins"Directory to scrape: "plugins" or "themes".
searchTermsArray["seo"]Search keywords (e.g. ["seo", "security", "backup"]).
tagsArray[]Specific directory tags to browse (e.g. ["ecommerce", "caching"]).
browseArray["popular"]Directory feeds: popular, new, updated, top-rated, featured.
maxItemsInteger0Max total records to extract across all sources. 0 = unlimited.
maxPagesInteger0Max pages per source (100 items/page). 0 = unlimited (governed by maxItems).
proxyConfigurationObject{ "useApifyProxy": true }Proxy settings. Public directory data operates reliably with Datacenter proxies.

Example Input Configuration

{
"type": "plugins",
"searchTerms": ["seo", "speed optimization"],
"tags": ["caching"],
"browse": ["popular"],
"maxItems": 500,
"maxPages": 0,
"proxyConfiguration": {
"useApifyProxy": true
}
}

📤 Output Data Structure

Every extracted plugin or theme is saved as an individual record in the default dataset. Below is an authentic sample record:

{
"type": "plugin",
"slug": "seo-by-rank-math",
"name": "Rank Math SEO – AI SEO Tools to Dominate SEO Rankings",
"version": "1.0.280",
"author": "Rank Math SEO",
"authorProfile": "https://profiles.wordpress.org/rankmath/",
"activeInstalls": 4000000,
"downloaded": 201047092,
"rating": 96,
"ratingStars": 4.8,
"numRatings": 7520,
"supportThreads": 44,
"supportThreadsResolved": 39,
"requiresWp": "6.7",
"testedWp": "7.1.4",
"requiresPhp": "7.4",
"lastUpdated": "2026-10-06 12:43pm GMT",
"added": "2018-11-19",
"homepage": "https://rankmath.com/",
"shortDescription": "Grow your organic traffic and AI visibility with powerful SEO tools, XML sitemaps, Schema automation, and built-in AI SEO, all in one place.",
"tags": ["google search console", "redirection", "schema", "seo", "xml sitemap"],
"donateLink": "https://rankmath.com/donate/",
"downloadLink": "https://downloads.wordpress.org/plugin/seo-by-rank-math.1.0.280.zip",
"image": "https://ps.w.org/seo-by-rank-math/assets/icon.svg?rev=3438330",
"previewUrl": "",
"ratingsBreakdown": {
"5": 7083,
"4": 144,
"3": 53,
"2": 44,
"1": 196
},
"url": "https://wordpress.org/plugins/seo-by-rank-math/",
"source": "search:seo",
"scrapedAt": "2026-11-10T14:30:15.120Z"
}

📊 Extracted Fields Reference

🏷️ Identity & Overview Fields

Field NameTypeCoverageDescription
typeString🟢 High (100%)Record type: plugin or theme.
slugString🟢 High (100%)Unique directory slug used for deduplication.
nameString🟢 High (100%)Full listing title with decoded HTML entities.
urlString🟢 High (100%)Canonical public directory URL on WordPress.org.
shortDescriptionString🟢 High (98%)Plaintext summary of features and capabilities.
tagsArray🟢 High (95%)Directory tags and categorization keywords.

📈 Metrics & Rating Fields

Field NameTypeCoverageDescription
activeInstallsInteger🟢 High (100%)Active install count (bucketed milestone, e.g. 4000000).
downloadedInteger🟢 High (100%)Total cumulative downloads across all releases.
ratingInteger🟢 High (100%)Official percentage rating score (0–100 scale).
ratingStarsFloat🟢 High (100%)Normalized 5-star rating (0.0–5.0).
numRatingsInteger🟢 High (100%)Total number of published user reviews.
ratingsBreakdownObject🟢 High (100%)Breakdown of review counts across 1, 2, 3, 4, and 5 stars.

🛠️ Technical Compatibility & Support

Field NameTypeCoverageDescription
versionString🟢 High (100%)Current release version string.
requiresWpString🟢 High (95%)Minimum WordPress core version required.
testedWpString🟢 High (95%)Highest WordPress core version tested.
requiresPhpString🟡 Conditional (90%)Minimum PHP version required by developer.
supportThreadsInteger🟡 Conditional (Plugins)Total support threads in the last 60 days.
supportThreadsResolvedInteger🟡 Conditional (Plugins)Number of support threads marked resolved.

👤 Author, Media & Distribution

Field NameTypeCoverageDescription
authorString🟢 High (100%)Clean author or company name.
authorProfileString🟢 High (98%)Public profile link for the developer on WordPress.org.
homepageString🟡 Conditional (87%)Official product or agency homepage URL.
donateLinkString🟡 Conditional (40%)Author donation or sponsorship link.
downloadLinkString🟡 Conditional (Plugins)Direct .zip package download URL.
imageString🟢 High (98%)Normalized plugin icon SVG/PNG or theme screenshot.
previewUrlString🟡 Conditional (Themes)Live demo preview URL for WordPress themes.
addedString🟢 High (99%)Date the listing was first added to the directory.
lastUpdatedString🟢 High (100%)Date and time of the most recent package update.
sourceString🟢 High (100%)Origin query (e.g. search:seo, browse:popular).
scrapedAtString🟢 High (100%)ISO 8601 timestamp of extraction.

🔁 Deep Pagination & High-Volume Extraction

This scraper is architected for large-scale data extraction:

  • 100 Items per Page: The scraper requests maximum allowed page batches to minimize network round-trips.
  • Deep Pagination Support: With maxPages: 0, the scraper follows pagination links sequentially until all records matching your query are gathered.
  • Multi-Query Scaling: When supplying multiple keywords, tags, or browse feeds, records are pulled across all categories and de-duplicated on the fly.
  • Zero Caps on High Limits: Requesting 1,000, 5,000, or 20,000 records works smoothly without arbitrary artificial limits.

🔄 Data Workflows & Pipeline Automation

Connecting extracted WordPress intelligence into existing business workflows is straightforward:

  1. Google Sheets Automated Sync: Connect your Apify run to Google Sheets using the official Apify Google Sheets integration or Make/Zapier. Automatically append new rows whenever a monitored category updates.
  2. PostgreSQL / Snowflake Warehouse Ingestion: Ingest raw JSON or flattened CSV output into analytical databases using Apify's REST API or Airbyte connectors to power internal BI dashboards.
  3. Slack / Discord Alerting: Set up webhooks triggered when a competitor's plugin releases a new major version or experiences an unusual spike in 1-star reviews.
  4. CRM Lead Enrichment: Match plugin developer homepages and profile links against company domain registries to enrich prospective B2B agency or SaaS sales leads.

📋 Comprehensive Format Comparison

FormatBest Used ForNotes
JSONCustom applications, developer APIs, database ingestionFull nested structure including ratingsBreakdown objects and tags arrays.
CSVExcel analysis, Google Sheets, quick data filteringArrays and nested objects are stringified for easy columnar manipulation.
Excel (.xlsx)Stakeholder reports, executive presentations, offline analysisPre-formatted spreadsheet ready for pivot tables and charts.
XML / HTMLLegacy system ingestion, web publishingClean hierarchical XML representation of listing data.

💻 Programmatic Integration & SDK Usage

Run this scraper programmatically and pipe extracted data into your data warehouse, analysis pipeline, or automation platform.

Python SDK Example

from apify_client import ApifyClient
import pandas as pd
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"type": "plugins",
"searchTerms": ["woocommerce payment", "stripe"],
"maxItems": 500,
"maxPages": 0
}
# Run actor synchronously
run = client.actor("haketa/wordpress-directory-scraper").call(run_input=run_input)
# Fetch dataset items and load into Pandas DataFrame
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)
print(f"Extracted {len(df)} plugins.")
top_plugins = df.sort_values(by="activeInstalls", ascending=False)[["name", "activeInstalls", "ratingStars"]]
print(top_plugins.head(10))

JavaScript / Node.js SDK Example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/wordpress-directory-scraper').call({
type: 'plugins',
searchTerms: ['backup', 'security'],
maxItems: 300,
maxPages: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} plugins.`);

cURL API Example

curl -X POST "https://api.apify.com/v2/acts/haketa~wordpress-directory-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "plugins",
"browse": ["popular"],
"maxItems": 100
}'

💡 Practical Pro-Tips

  1. Category TAM Analysis: Run a search for broad niche keywords like "form builder" or "security" with maxItems: 0 to compute market dominance and total installs for that sector.
  2. Track Maintenance Health: Compute the resolution ratio using supportThreadsResolved / supportThreads to gauge customer satisfaction and development responsiveness.
  3. Stale Plugin Discovery: Filter results where lastUpdated is older than 24 months to identify abandonware opportunities for building modern replacements.
  4. ASO Star Distribution: Look at the ratio of 5-star versus 1-star reviews in ratingsBreakdown to find polarizing plugins with dissatisfied user bases.
  5. Scheduled Monitoring: Set up weekly Apify schedules to track install count growth and review velocity across your competitors.
  6. Theme Aesthetics Intelligence: When scraping themes, analyze image and previewUrl fields to build visual galleries of trending design styles in the WordPress repository.

❓ Frequently Asked Questions

Do I need a WordPress.org account or API key?

No. All listings are publicly accessible directory records. No API key, login token, or authentication is required.

What is the difference between active installs and total downloads?

activeInstalls represents WordPress.org's current estimated number of active websites running the plugin (e.g. 100,000+, 1,000,000+). downloaded tracks all-time cumulative .zip downloads across every version ever released.

Can I extract themes as well as plugins?

Yes. Simply set "type": "themes" in the input. The scraper automatically adapts its extraction schema to capture theme-specific screenshots, demo preview URLs, and author profile details.

What proxy type should I use?

The default Apify Datacenter proxies are fully sufficient and provide high-speed execution at the lowest cost tier.

How do I export data to Excel or Google Sheets?

Once the run finishes, navigate to the Dataset tab in the Apify Console. Click Export and select your desired format: CSV, Excel (.xlsx), JSON, or XML. You can also connect the dataset directly to Google Sheets via the Apify Google Sheets integration.

Can I filter by minimum install counts or ratings?

You can extract listings for your target keywords or feeds and use Apify's dataset filtering or export options (such as CSV/JSON filtering) to filter by activeInstalls >= 100000 or ratingStars >= 4.5.

Yes. For plugins, downloadLink points directly to the official release .zip archive hosted on the WordPress.org CDN.

Does this actor bypass or interfere with anti-bot protections?

No. The directory data is completely open and public. The scraper operates via standard high-efficiency requests without attempting any form of challenge bypass.

How frequently should I run this scraper?

For competitive tracking, a weekly or bi-weekly scheduled run is ideal since WordPress directory metrics (active installs, reviews, version updates) update on a periodic schedule.


📋 Changelog

Version 1.2 (2026-11)

  • Deep 1,000+ Pagination Unlocked: Updated maxPages default to 0 (auto/unlimited governed by maxItems), allowing uninterrupted pagination across large search and category feeds.
  • Infinite Loop Cap Removal: Fixed pagination boundary logic so maxPages: 0 correctly behaves as Infinity instead of early termination.
  • Fast Prefill Execution: Optimized prefill configurations to complete high-volume extractions in under 15 seconds.
  • Enhanced Data Sanitization: Refactored HTML entity decoding and scheme-less asset URL normalization to ensure 100% valid https:// media links.
  • Store Schema Compliance: Fully validated input, output, and dataset specifications against Apify Specification v1 with complete dataset views.

Version 1.1 (2026-10)

  • Added full review star distribution breakdown (ratingsBreakdown) for 1–5 star reviews.
  • Added support for theme screenshot and live preview URL extraction.
  • Introduced automated de-duplication by listing slug.

Version 1.0 (2026-09)

  • Initial release featuring plugin and theme directory extraction via search keywords, tags, and ranking feeds.
⌂ 换网址