WordPress Themes Directory Scraper avatar

WordPress Themes Directory Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
WordPress Themes Directory Scraper

WordPress Themes Directory Scraper

$0.5/1K πŸ”₯ WordPress themes scraper! 8000+ themes with downloads, ratings, authors & screenshots. No key. JSON, CSV, Excel or API in seconds. Research the theme market ⚑

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

ninhothedev

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape the official WordPress.org theme directory β€” 8,000+ free themes with download counts, star ratings, full ratings breakdowns, author profiles, tags, screenshots and direct .zip download links.

No API key. No login. No cookies. No proxy required. The actor talks directly to the free, public WordPress.org Themes API (v1.2) and returns one clean, flat dataset row per theme.

~$0.50 per 1,000 themes. A 200-theme run finishes in well under a minute on the 512 MB default.


Themes β‰  plugins β€” how this differs from wordpress-plugins-scraper

This actor and WordPress Plugins Scraper are two separate scrapers hitting two separate WordPress.org directories. They do not overlap:

WordPress Themes Scraper (this actor)WordPress Plugins Scraper
Directorywordpress.org/themeswordpress.org/plugins
Catalog size~8,400 themes (popular listing), ~15,000 records incl. newest/updated~60,000+ plugins
API endpointthemes/info/1.2/plugins/info/1.2/
Unique fieldsscreenshot_url, preview_url (live wp-themes.com demo), is_commercial, is_community, theme feature tags (Block themes, Accessibility ready, RTL, Style variations…)active_installs, support_threads, support_threads_resolved, donate_link, plugin contributors
Typical useDesign-market research, theme-shop competitor tracking, screenshot galleriesPlugin ecosystem research, install-base analysis

Use this actor when you care about design, look-and-feel, theme authors and screenshots. Use the plugins actor when you care about functionality and install counts. Running both gives you a complete picture of the WordPress ecosystem.


What you get

Every row is one theme:

{
"slug": "astra",
"name": "Astra",
"version": "4.13.7",
"author_name": "Brainstorm Force",
"author_username": "brainstormforce",
"author_url": "https://wpastra.com/",
"author_profile": "https://profiles.wordpress.org/brainstormforce/",
"description": "Astra is fast, fully customizable & beautiful WordPress theme…",
"rating": 98,
"rating_stars": 4.9,
"num_ratings": 6498,
"ratings_breakdown": { "1": 84, "2": 12, "3": 15, "4": 55, "5": 6332 },
"downloaded": 25013585,
"last_updated": "2026-05-27",
"creation_time": "2017-05-30T15:45:06Z",
"requires_wp": "6.2",
"requires_php": "7.4",
"is_commercial": true,
"is_community": false,
"tags": ["Blog", "Custom colors", "E-commerce", "RTL language support", "Two columns"],
"tag_slugs": ["blog", "custom-colors", "e-commerce", "rtl-language-support", "two-columns"],
"tag_count": 19,
"homepage": "https://wpastra.com/",
"preview_url": "https://wp-themes.com/astra/",
"screenshot_url": "https://ts.w.org/wp-content/themes/astra/screenshot.jpg?ver=4.13.7",
"download_link": "https://downloads.wordpress.org/theme/astra.4.13.7.zip",
"reviews_url": "https://wordpress.org/support/theme/astra/reviews/",
"url": "https://wordpress.org/themes/astra/",
"source": "wordpress.org",
"scraped_at": "2026-07-28T18:02:11Z"
}

Field notes

  • rating is 0–100 (that is how WordPress.org returns it). rating_stars is the convenient 0–5 value, rounded to one decimal.
  • ratings_breakdown gives you the raw review distribution {"1": n … "5": n} β€” enough to spot themes with a polarised 1β˜…/5β˜… split.
  • tags vs tag_slugs β€” the API returns tags as a {slug: label} map. You get both: human-readable labels and machine-friendly slugs.
  • screenshot_url is normalised to https:// (the API returns protocol-relative //ts.w.org/... URLs that break in most tools).
  • author_name works for both author shapes the API emits (structured object on modern records, plain string on legacy ones).
  • download_link points at the current .zip on downloads.wordpress.org.
  • All fields are nullable β€” the dataset schema is permissive, so nothing breaks on partial records.

Modes

browse β€” walk the directory

Pick a listing and page through it.

browseWhat it returns
popularMost-installed themes, ~8,400 records
featuredWordPress.org editor picks (15 themes)
newNewest submissions, ~15,000 records
updatedMost recently updated themes
{ "mode": "browse", "browse": "popular", "maxItems": 500 }

search β€” keyword queries

Each query is paged separately; results are de-duplicated by slug.

{ "mode": "search", "queries": ["ecommerce", "portfolio", "magazine"], "maxItems": 300 }

slugs β€” specific themes

Fetch exact themes by their wordpress.org slug.

{ "mode": "slugs", "slugs": ["astra", "hello-elementor", "kadence", "generatepress"] }

Tag filter

Combine any mode with a tag to narrow the field β€” e.g. blog, e-commerce, portfolio, full-site-editing, accessibility-ready, dark, news.

{ "mode": "browse", "browse": "popular", "tag": "e-commerce", "maxItems": 1000 }

Input reference

FieldTypeDefaultDescription
modeselectbrowsebrowse, search or slugs
browseselectpopularpopular, featured, new, updated
queriesarray[]Search keywords (mode search)
slugsarray[]Exact theme slugs (mode slugs)
tagstringβ€”Optional theme tag slug filter
maxItemsinteger200Cap on total themes pushed (max 5,000)

Use cases

Theme market research. Pull the full popular listing with downloads, ratings and creation dates, then rank categories by demand. Which tags are saturated? Which tag combinations have high download volume but few high-rated options? ratings_breakdown shows you where users are actively unhappy β€” that gap is a product brief.

WordPress agency prospecting. author_username, author_profile and author_url give you a direct line to every theme shop on the directory. Filter by is_commercial: true to find authors already monetising (they have budget), or by high downloaded with a stale last_updated to find popular themes that need maintenance help. Feed the list straight into your CRM.

Trend analysis. creation_time plus tag_slugs lets you chart the rise of block themes and full-site editing against classic themes over time. Track requires_wp and requires_php across the catalog to see how fast the ecosystem adopts new WordPress and PHP baselines β€” useful for deciding your own minimum-version policy.

Competitor tracking. Schedule a daily slugs run over your competitors' themes and diff the dataset: version bumps, download deltas, new 1β˜… reviews and rating shifts all become time-series data. Pair it with the plugins scraper to watch a competitor's whole WordPress footprint.


Output & exports

Results land in the Apify dataset and export to JSON, CSV, Excel, XML, HTML or RSS in one click, or via the Apify API. The dataset ships an overview view (theme name, downloads, star rating, last updated) for a readable table without touching the raw fields.


Technical notes

  • Async Python actor, batches of 50 records per API call.
  • curl_cffi with a Chrome 124 TLS fingerprint, automatic urllib fallback β€” no third-party transport is required for the actor to work.
  • Exponential backoff with jitter on transient failures; unknown slugs (HTTP 404) are logged and skipped rather than crashing the run.
  • The run fails loudly with a clear message if zero themes were scraped, so an empty dataset never passes silently.
  • Legal note: this actor reads a public, free, unauthenticated API published by WordPress.org for exactly this purpose. No personal data beyond public author display names and profile URLs is collected.


FAQ

Do I need a WordPress.org account or API key? No. The Themes API is completely open.

How many themes can I get? The popular listing exposes ~8,400 themes; new and updated expose ~15,000 records. maxItems caps at 5,000 per run β€” use multiple runs with different browse values or tag filters to cover more.

Why is rating 98 and not 4.9? WordPress.org returns ratings on a 0–100 scale. rating_stars (4.9) is provided for convenience.

Are premium/commercial themes included? Only themes listed in the free wordpress.org directory. Many of those are freemium β€” is_commercial: true flags themes with a paid upgrade path.

Can I download the theme files? download_link gives you the direct .zip URL for every theme; fetch it separately if you need the source.

License

MIT