WordPress.org Themes & Plugins Scraper
Pricing
from $3.00 / 1,000 results
WordPress.org Themes & Plugins Scraper
Scrape WordPress.org themes and plugins, search by keyword, browse by author, fetch by slug or URL. Returns ratings, install counts, version info, tags, and direct download URLs. No proxy or auth required
Pricing
from $3.00 / 1,000 results
Rating
5.0
(7)
Developer
Crawler Bros
Maintained by CommunityActor stats
7
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape themes and plugins from WordPress.org — the world's largest open-source CMS marketplace.
No API key, no proxy, and no authentication required. Works on the free Apify plan.
What you can do
- Search themes or plugins by keyword with optional sort order (popular, new, updated, featured, top-rated)
- Browse featured/popular themes and plugins in any browse category
- Fetch by author — get all themes and plugins published by a WordPress.org username
- Fetch by slug or URL — get full details for specific themes or plugins
- Filter by rating (0–5 stars) and minimum active installs
- Paginate up to 500 results per run
Modes
| Mode | Description | Key Input Fields |
|---|---|---|
searchThemes | Search themes by keyword | searchQuery, browse, minRating, minInstalls |
searchPlugins | Search plugins by keyword | searchQuery, browse, minRating, minInstalls |
byAuthor | All themes & plugins by a WordPress.org username | authorSlug, contentType |
getTheme | Fetch theme details by slug or URL | themeSlugs, startUrls |
getPlugin | Fetch plugin details by slug or URL | pluginSlugs, startUrls |
featured | Browse featured/popular themes and plugins | browse, contentType |
Input
| Field | Type | Description | Default |
|---|---|---|---|
mode | select | Scraping mode (see table above) | searchThemes |
searchQuery | string | Keyword to search (searchThemes, searchPlugins) | — |
authorSlug | string | WordPress.org username (byAuthor) | — |
startUrls | string[] | Direct WordPress.org theme/plugin URLs | — |
themeSlugs | string[] | Theme slugs for getTheme, e.g. twentytwentyfour | — |
pluginSlugs | string[] | Plugin slugs for getPlugin, e.g. woocommerce | — |
browse | select | Sort order: popular, new, updated, featured, top-rated | popular |
contentType | select | For byAuthor/featured: both, themes, plugins | both |
minRating | number | Minimum rating 0–5 (filters out lower-rated items) | — |
minInstalls | integer | Minimum active installs threshold | — |
maxItems | integer | Maximum records to return (1–500) | 50 |
Example inputs
Search for blog themes:
{"mode": "searchThemes","searchQuery": "blog","browse": "popular","minRating": 3.0,"maxItems": 50}
Get top WooCommerce plugins:
{"mode": "searchPlugins","searchQuery": "woocommerce","browse": "top-rated","minInstalls": 10000,"maxItems": 100}
All plugins by Automattic:
{"mode": "byAuthor","authorSlug": "automattic","contentType": "plugins","maxItems": 200}
Fetch specific themes by slug:
{"mode": "getTheme","themeSlugs": ["twentytwentyfour", "astra", "hello-elementor"]}
Fetch theme from URL:
{"mode": "getTheme","startUrls": ["https://wordpress.org/themes/neve/"]}
Output
Each record represents one theme or plugin.
Theme fields
| Field | Type | Description |
|---|---|---|
slug | string | Unique theme identifier |
name | string | Theme display name |
version | string | Current version |
author | string | Author display name |
authorUrl | string | Author profile URL |
description | string | Theme description (HTML stripped) |
previewUrl | string | Live preview URL |
screenshotUrl | string | Screenshot image URL |
rating | number | Rating 0–5 (normalized from WordPress.org 0–100 scale) |
numRatings | integer | Number of ratings |
activeInstalls | integer | Number of active installs |
lastUpdated | string | Last update date |
homepageUrl | string | Theme homepage |
downloadUrl | string | Direct .zip download URL |
tags | string[] | Theme tags/categories |
url | string | WordPress.org theme page URL |
contentType | string | Always "theme" |
scrapedAt | string | ISO timestamp of when this record was scraped |
Plugin fields
| Field | Type | Description |
|---|---|---|
slug | string | Unique plugin identifier |
name | string | Plugin display name |
version | string | Current version |
author | string | Author display name |
authorUrl | string | Author URL |
shortDescription | string | Short plugin description |
homepageUrl | string | Plugin homepage |
rating | number | Rating 0–5 |
numRatings | integer | Number of ratings |
activeInstalls | integer | Number of active installs |
downloadCount | integer | Total all-time downloads |
lastUpdated | string | Last update date |
requiresWpVersion | string | Minimum WordPress version required |
testedWpVersion | string | Tested up to WordPress version |
tags | string[] | Plugin tags/categories |
url | string | WordPress.org plugin page URL |
downloadUrl | string | Direct .zip download URL |
contentType | string | Always "plugin" |
scrapedAt | string | ISO timestamp |
Example output (theme)
{"slug": "twentytwentyfour","name": "Twenty Twenty-Four","version": "1.2","author": "WordPress.org","authorUrl": "https://profiles.wordpress.org/wordpressdotorg/","description": "A clean, minimal theme for blogs and portfolios.","screenshotUrl": "https://ts0.wp.com/themes/twentytwentyfour/screenshot.png","rating": 4.0,"numRatings": 523,"activeInstalls": 1000000,"lastUpdated": "2024-03-15","downloadUrl": "https://downloads.wordpress.org/theme/twentytwentyfour.1.2.zip","tags": ["Blog", "One Column", "Custom Colors"],"url": "https://wordpress.org/themes/twentytwentyfour/","contentType": "theme","scrapedAt": "2026-05-17T10:30:00+00:00"}
FAQ
Does this require an API key?
No. The WordPress.org Themes and Plugins APIs are completely public and require no authentication.
Does this use a proxy?
No proxy is needed. WordPress.org has no bot protection on their public API endpoints.
How many results can I get?
Up to 500 per run. WordPress.org returns 100 items per page; the actor paginates automatically.
How is the rating calculated?
WordPress.org stores ratings on a 0–100 scale. This actor normalizes them to the standard 0–5 star scale by dividing by 20.
What does activeInstalls represent?
The number of WordPress sites currently running this theme or plugin, as reported by WordPress.org.
Can I search for themes and plugins at the same time?
Use mode=featured or mode=byAuthor with contentType=both to get both in a single run. For keyword searches, run two separate runs with searchThemes and searchPlugins.
Can I get a theme/plugin by its WordPress.org URL?
Yes — use mode=getTheme or mode=getPlugin with startUrls containing the full WordPress.org URL.
What is the browse parameter for?
It controls the sort order for search and featured results: popular (most installs), new (recently published), updated (recently updated), featured (handpicked by WordPress.org), top-rated (highest ratings).
Data Source
Data comes directly from the official WordPress.org Themes and Plugins APIs:
- Themes:
https://api.wordpress.org/themes/info/1.2/ - Plugins:
https://api.wordpress.org/plugins/info/1.2/
These are the same APIs used by the WordPress admin dashboard when you search for themes and plugins to install. All data is publicly available.