WordPress Themes Directory Scraper avatar

WordPress Themes Directory Scraper

Pricing

from $2.99 / 1,000 themes

Go to Apify Store
WordPress Themes Directory Scraper

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

w3crawler

Maintained by Community

Actor 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

  1. Open the Input tab and choose direct themeUrls or themeSlugs, or provide a public catalog query.
  2. Set maxItems, page, and enrichDetails to match the amount of metadata you need.
  3. Keep the request delay and response limits polite for the official public endpoint.
  4. 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

FieldDescription
recordId, recordTypeStable theme identity and normalized record kind.
themeName, themeSlug, versionPublic directory identity and current version.
description, tagMap, tagNamesPublic description and source-backed capability tags.
authorName, authorUsername, authorProfileUrlPublic author and profile signals.
ratingPercent, ratingsCount, downloadCountPoint-in-time public popularity measures.
requiresWordPress, requiresPhpCompatibility requirements when the API exposes them.
screenshotUrls, previewUrl, downloadUrlPublic visual, preview, and download links.
sourceUrl, apiUrl, provenanceEvidence 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 ci
npm test
npm run lint
apify validate-schema
apify run --purge --input-file test/inputs/default.json
npm run validate