WordPress Themes Directory Scraper avatar

WordPress Themes Directory Scraper

Pricing

Pay per event

Go to Apify Store
WordPress Themes Directory Scraper

WordPress Themes Directory Scraper

Extract WordPress.org theme metadata, author leads, ratings, downloads, tags, screenshots, and compatibility data from the public directory.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Extract WordPress.org theme metadata at scale from the public WordPress Themes Directory API.

Use this actor to monitor theme competitors, discover vendors, enrich author leads, compare ratings, and track compatibility changes across the WordPress theme ecosystem.

What does WordPress Themes Directory Scraper do?

WordPress Themes Directory Scraper collects public theme records from WordPress.org.

It supports keyword searches, tag searches, browse collections, and direct theme slugs.

Each dataset item contains theme identity, author details, ratings, downloads, update dates, compatibility requirements, tags, screenshots, preview links, download links, and WordPress.org URLs.

Who is it for?

Theme developers

Find competing themes in your niche and track how their ratings, downloads, and compatibility requirements change.

WordPress agencies

Build shortlists of themes for client audits, migrations, and design research.

Plugin and SaaS vendors

Discover theme authors and vendor websites for outreach, partnership, or integration research.

Market researchers

Analyze popular WordPress theme categories, author concentration, and freshness signals.

SEO and affiliate teams

Collect structured theme metadata for comparison pages, review workflows, and market maps.

Why use this actor?

  • ๐Ÿ”Ž Search themes by keyword such as seo, restaurant, or woocommerce.
  • ๐Ÿท๏ธ Collect themes by public WordPress.org tags such as blog or full-site-editing.
  • ๐ŸŽฏ Enrich exact theme slugs such as twentytwentyfive.
  • ๐Ÿ“ˆ Track ratings, download totals, update dates, and compatibility fields.
  • ๐Ÿ‘ค Extract author display names, profile URLs, avatars, and vendor URLs.
  • ๐Ÿ–ผ๏ธ Export screenshots, preview URLs, homepages, and download links.
  • โšก Uses the public WordPress.org API, so no browser or login is required.

Data you can extract

Field groupExamples
Theme identityname, slug, version, WordPress.org homepage
Author/vendorusername, display name, profile URL, avatar, author URL
Popularityrating percent, rating average, rating count, downloads
Freshnesslast updated date, last updated time, creation time
Compatibilityrequired WordPress version, required PHP version
Media and linksscreenshot URL, preview URL, download URL, reviews URL
Classificationtag slugs and readable tag labels
Commercial signalscommercial/community flags and external support/repository URLs

Example use cases

  • Monitor the top 500 popular WordPress themes every week.
  • Find all themes matching a product niche such as SEO, booking, LMS, or restaurant.
  • Build a lead list of theme authors with profile and website URLs.
  • Detect recently updated themes before launching compatibility outreach.
  • Compare ratings and review counts across theme categories.
  • Enrich a list of exact theme slugs from competitor research.

How much does it cost to scrape WordPress themes?

This actor uses pay-per-event pricing.

A small start event is charged once per run, and a result event is charged for each saved theme record.

The default input is intentionally small so your first test run is inexpensive.

For larger monitoring jobs, increase maxItems to the number of themes you need.

Input options

Search terms

Use searchTerms to search the WordPress.org theme directory.

Examples:

  • seo
  • restaurant
  • woocommerce
  • portfolio
  • real estate

Browse collection

Use browse to include one WordPress.org browse collection.

Supported values:

  • popular
  • featured
  • new
  • updated
  • block-themes
  • none

Theme tags

Use tags for WordPress.org tag filters.

Examples:

  • blog
  • e-commerce
  • full-site-editing
  • accessibility-ready
  • portfolio

Theme slugs

Use themeSlugs when you already know exact WordPress.org theme slugs.

For example, the URL https://wordpress.org/themes/twentytwentyfive/ has slug twentytwentyfive.

Maximum themes

Use maxItems to control how many unique themes are saved across all inputs.

The actor deduplicates by slug.

Detailed metadata

Keep includeDetails enabled to enrich each theme with download totals, last updated dates, download links, review URLs, and full tag labels.

Disable it only when you need the fastest possible search-only run.

Example input

{
"searchTerms": ["seo", "restaurant"],
"browse": "popular",
"tags": ["blog"],
"themeSlugs": ["twentytwentyfive"],
"maxItems": 100,
"includeDetails": true
}

Example output

{
"queryType": "slug",
"query": "twentytwentyfive",
"name": "Twenty Twenty-Five",
"slug": "twentytwentyfive",
"version": "1.5",
"homepageUrl": "https://wordpress.org/themes/twentytwentyfive/",
"previewUrl": "https://wp-themes.com/twentytwentyfive/",
"screenshotUrl": "https://ts.w.org/wp-content/themes/twentytwentyfive/screenshot.png?ver=1.5",
"downloadUrl": "https://downloads.wordpress.org/theme/twentytwentyfive.1.5.zip",
"ratingPercent": 84,
"ratingAverage": 4.2,
"ratingCount": 12,
"downloaded": 9372740,
"lastUpdated": "2026-05-20",
"requiresWordPress": "6.7",
"requiresPhp": "7.2",
"tags": ["blog", "full-site-editing"],
"author": {
"username": "wordpressdotorg",
"displayName": "WordPress.org",
"profileUrl": "https://profiles.wordpress.org/wordpressdotorg/",
"authorUrl": "https://wordpress.org"
},
"reviewsUrl": "https://wordpress.org/support/theme/twentytwentyfive/reviews/",
"scrapedAt": "2026-07-07T00:00:00.000Z"
}

How to scrape WordPress themes

  1. Open the actor on Apify.
  2. Enter one or more search terms, tags, browse mode, or theme slugs.
  3. Set maxItems to the number of unique themes you want.
  4. Keep includeDetails enabled for the richest dataset.
  5. Run the actor.
  6. Export results as JSON, CSV, Excel, XML, or via API.

Tips for better results

  • Use broad search terms first, then narrow with tags.
  • Use direct slugs when monitoring known competitors.
  • Use browse=updated for freshness monitoring.
  • Use browse=popular for market-share snapshots.
  • Use browse=none when you only want exact searches or exact slugs.
  • Keep maxItems low for tests and increase after checking the output.

Integrations

CRM enrichment

Export author profile URLs and author websites to enrich vendor or partner lead records.

Competitive intelligence dashboards

Schedule the actor and send datasets to Google Sheets, BigQuery, Snowflake, or a BI tool.

Product marketing research

Combine theme tags, rating counts, and downloads to prioritize integration campaigns.

Content workflows

Use theme screenshots, descriptions, and compatibility data for review or comparison workflows.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/wordpress-themes-directory-scraper').call({
searchTerms: ['seo'],
browse: 'popular',
maxItems: 100,
includeDetails: true,
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/wordpress-themes-directory-scraper').call(run_input={
'searchTerms': ['seo'],
'browse': 'popular',
'maxItems': 100,
'includeDetails': True,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~wordpress-themes-directory-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"searchTerms":["seo"],"browse":"popular","maxItems":100,"includeDetails":true}'

MCP server usage

Use this actor from Claude Desktop, Claude Code, or another MCP client through Apify MCP.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/wordpress-themes-directory-scraper

Add it in Claude Code with:

$claude mcp add apify-wordpress-themes https://mcp.apify.com/?tools=automation-lab/wordpress-themes-directory-scraper

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-wordpress-themes": {
"url": "https://mcp.apify.com/?tools=automation-lab/wordpress-themes-directory-scraper"
}
}
}

Example prompts:

  • "Scrape 100 popular WordPress themes and summarize the top author websites."
  • "Find SEO-related WordPress themes and rank them by rating count."
  • "Monitor recently updated block themes and return those requiring WordPress 6.7+."

Scheduling

Run the actor daily, weekly, or monthly to monitor theme ecosystem changes.

For repeated monitoring, keep the same input and compare dataset exports over time using slug as the stable key.

Data freshness

The actor reads the public WordPress.org Themes API at run time.

Values such as ratings, downloads, versions, and last updated dates reflect what the API returns during the run.

Legality

This actor collects public metadata from WordPress.org theme directory endpoints.

You are responsible for using exported data lawfully, respecting applicable terms, and complying with privacy and outreach rules in your jurisdiction.

FAQ

Can I scrape WordPress themes without a login?

Yes. The actor uses public WordPress.org theme directory endpoints and does not require a WordPress.org account.

Can I monitor the same market every week?

Yes. Schedule the same input and compare exports by slug, version, ratingCount, downloaded, and lastUpdated.

Troubleshooting

Why did I get fewer themes than maxItems?

The actor deduplicates by slug. If the same theme appears in multiple sources, it is saved once.

Why did a direct slug fail?

Check that the slug exists in a WordPress.org theme URL. Invalid slugs are skipped and logged.

Why are some commercial URLs empty?

WordPress.org only exposes external support or repository URLs for themes that provide those fields.

Automation Lab also offers related WordPress and web-research actors:

Output field reference

  • queryType โ€” input source type: slug, search, tag, or browse.
  • query โ€” exact keyword, tag, browse collection, or slug that found the theme.
  • name โ€” theme display name.
  • slug โ€” stable WordPress.org theme slug.
  • version โ€” current theme version.
  • homepageUrl โ€” WordPress.org theme page.
  • previewUrl โ€” WordPress theme preview URL.
  • screenshotUrl โ€” theme screenshot URL.
  • downloadUrl โ€” ZIP download URL when available.
  • description โ€” public theme description.
  • ratingPercent โ€” WordPress.org rating percentage.
  • ratingAverage โ€” rating converted to a 0-5 average.
  • ratingCount โ€” number of ratings.
  • downloaded โ€” public total download count when available.
  • lastUpdated โ€” last updated date.
  • requiresWordPress โ€” minimum WordPress version.
  • requiresPhp โ€” minimum PHP version.
  • tags โ€” theme tag slugs.
  • tagLabels โ€” readable theme tag labels.
  • author โ€” nested author profile and website data.
  • sourceApiUrl โ€” API endpoint used for traceability.
  • scrapedAt โ€” ISO timestamp when the item was saved.

Changelog

0.1

Initial release with keyword, tag, browse, and direct slug collection from the public WordPress.org Themes API.