WordPress Themes Directory Scraper
Pricing
from $2.99 / 1,000 themes
WordPress Themes Directory Scraper
Extract public WordPress.org theme metadata, author leads, ratings, downloads, tags, screenshots, and compatibility data.
Pricing
from $2.99 / 1,000 themes
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does WordPress.org Themes Directory Scraper do?
This Actor reads the official, public WordPress.org Themes Directory through its keyless themes API and returns one normalized record per theme. It supports direct public theme URLs or slugs, plus bounded catalog discovery by search text, author, tag, and browse order. Enriched rows include public theme metadata, ratings, downloads, compatibility, tags, screenshots, author leads, and official download or preview links.
The Actor uses the documented api.wordpress.org endpoint over HTTPS, validates the response shape, caps response size, retries transient failures, and waits between requests. It does not log in, access private or premium content, download credentials, mutate WordPress.org, or bypass an access boundary. Apify provides API access, scheduling, dataset exports, monitoring, and integrations around the extraction.
Why use WordPress.org Themes Directory Scraper?
Use the dataset for theme-market research, compatibility inventories, WordPress migration planning, public author lead generation, update monitoring, catalog comparisons, and editorial trend analysis. Stable IDs derived from the theme slug make repeated runs easy to deduplicate. Run outcomes and numeric diagnostic counts are kept in the key-value summary, while dataset rows contain source-backed theme data.
How to use WordPress.org Themes Directory Scraper
- Open the Input tab and choose direct
themeUrlsorthemeSlugs, or provide a public catalog query. - Set
maxItems,page, andenrichDetailsto match the amount of metadata you need. - Keep the request delay and response limits polite for the official public endpoint.
- Start the Actor, inspect the theme dataset, and export or connect it to your workflow.
Input
Use themeUrls or themeSlugs for known themes. If no direct theme is supplied, searchQuery defaults to blog. author, tag, and browse narrow catalog discovery. page and maxItems are bounded, and enrichDetails controls the second public API request for each result. requestDelayMs, requestTimeoutSeconds, retries, and maxResponseBytes control resource use. userAgent is optional and should remain a descriptive, ordinary identifier.
{"themeSlugs": ["twentytwentyfour"],"searchQuery": "","maxItems": 3,"enrichDetails": true,"requestDelayMs": 250,"requestTimeoutSeconds": 30,"retries": 1,"maxResponseBytes": 5000000}
Output
Dataset rows contain only source-backed theme data and provenance. Request totals, response byte counts, run filters, and numeric diagnostic counts remain in OUTPUT_SUMMARY; diagnostic details are limited to logs. Saved theme rows produce status: "SUCCEEDED"; optional detail or metadata issues set dataStatus: "PARTIAL". A genuine empty search is SUCCEEDED with dataStatus: "NO_RESULTS"; a source failure before any theme record is FAILED with dataStatus: "FAILED" and no diagnostic dataset row.
{"recordId": "wordpress_theme_<sha256-prefix>","recordType": "wordpress_theme","source": "WordPress.org public themes directory","provenance": "wordpress_org_themes_api_v1","themeName": "Twenty Twenty-Four","themeSlug": "twentytwentyfour","themeUrl": "https://wordpress.org/themes/twentytwentyfour/","version": "1.3","authorName": "WordPress.org","ratingPercent": 76,"downloadCount": 9296796,"fetchedAt": "2026-09-08T00:00:00.000Z"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Description |
|---|---|
recordId, recordType | Stable theme identity and normalized record kind. |
themeName, themeSlug, version | Public directory identity and current version. |
description, tagMap, tagNames | Public description and source-backed capability tags. |
authorName, authorUsername, authorProfileUrl | Public author and profile signals. |
ratingPercent, ratingsCount, downloadCount | Point-in-time public popularity measures. |
requiresWordPress, requiresPhp | Compatibility requirements when the API exposes them. |
screenshotUrls, previewUrl, downloadUrl | Public visual, preview, and download links. |
sourceUrl, apiUrl, provenance | Evidence and extraction lineage. |
Pricing / Cost estimation
How much does it cost to scrape WordPress.org themes?
The Actor makes one bounded catalog request and, when enrichment is enabled, one bounded detail request per selected theme. Direct theme runs are therefore predictable; retries, larger response limits, and more results use more compute. Final cost depends on your Apify plan, and small runs may fit within the platform free tier.
Tips or advanced options
Use direct slugs for repeatable monitoring of known themes. Set enrichDetails to false when list metadata is enough and speed matters. Keep requestDelayMs at its default or higher for larger discovery runs. Ratings, download counts, availability, and versions are point-in-time observations and can change between runs.
FAQ, disclaimers, and support
Only official public WordPress.org theme-directory API data is in scope. The Actor does not access private sites, accounts, paid or premium downloads, credentials, or authenticated APIs. You are responsible for using the data lawfully and respecting WordPress.org terms and rate guidance. If the directory changes its API shape, the Actor reports the failure in run metadata rather than fabricating fields. Use the Issues tab for support or request a custom integration for a different public catalog.
Local verification
npm cinpm testnpm run lintapify validate-schemaapify run --purge --input-file test/inputs/default.jsonnpm run validate