WordPress Themes Directory Scraper
Pricing
from $0.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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 | |
|---|---|---|
| Directory | wordpress.org/themes | wordpress.org/plugins |
| Catalog size | ~8,400 themes (popular listing), ~15,000 records incl. newest/updated | ~60,000+ plugins |
| API endpoint | themes/info/1.2/ | plugins/info/1.2/ |
| Unique fields | screenshot_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 use | Design-market research, theme-shop competitor tracking, screenshot galleries | Plugin 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
ratingis 0β100 (that is how WordPress.org returns it).rating_starsis the convenient 0β5 value, rounded to one decimal.ratings_breakdowngives you the raw review distribution{"1": n β¦ "5": n}β enough to spot themes with a polarised 1β /5β split.tagsvstag_slugsβ the API returns tags as a{slug: label}map. You get both: human-readable labels and machine-friendly slugs.screenshot_urlis normalised tohttps://(the API returns protocol-relative//ts.w.org/...URLs that break in most tools).author_nameworks for both author shapes the API emits (structured object on modern records, plain string on legacy ones).download_linkpoints at the current.zipon 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.
browse | What it returns |
|---|---|
popular | Most-installed themes, ~8,400 records |
featured | WordPress.org editor picks (15 themes) |
new | Newest submissions, ~15,000 records |
updated | Most 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
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | browse | browse, search or slugs |
browse | select | popular | popular, featured, new, updated |
queries | array | [] | Search keywords (mode search) |
slugs | array | [] | Exact theme slugs (mode slugs) |
tag | string | β | Optional theme tag slug filter |
maxItems | integer | 200 | Cap 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_cffiwith a Chrome 124 TLS fingerprint, automaticurllibfallback β 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.
Related actors by ninhothedev
- WordPress Plugins Scraper β the plugin side of the WordPress ecosystem (60k+ plugins, active installs, support threads)
- Product Hunt Scraper β daily launches, upvotes, makers
- GitHub Repos Scraper β repository metadata, stars, topics
- VS Code Marketplace Scraper β extension installs, ratings, publishers
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