WooCommerce Marketplace Scraper: Extensions & Prices
Pricing
from $1.60 / 1,000 extensions
WooCommerce Marketplace Scraper: Extensions & Prices
Scrape extensions and themes on the WooCommerce.com Marketplace: price, rating, active installs, version, vendor, compatibility, HPOS and blocks support.
Pricing
from $1.60 / 1,000 extensions
Rating
0.0
(0)
Developer
MRSLM Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Features
Share
Extensions and themes on the official WooCommerce.com Marketplace: price, rating, active installs, version, vendor, compatibility, HPOS and checkout-blocks support. $2.00 per 1,000 extensions.
Scrape listings from the official WooCommerce.com Marketplace to research extensions, themes, prices and compatibility. Export the listing data to CSV for analysis.
Quick start
- Open the Actor in Apify Console and enter this example input:
{"products": ["woocommerce-subscriptions","stripe"]}
- Press Start. Replace the example values with your own sources when ready.
- Open Output to inspect and export the results. Save the input as a task to run it again.
What it does
The Actor reads public WooCommerce.com Marketplace data. Give it listing slugs or URLs, or leave the list empty to walk the catalog, most recently updated first. A vendor API key is not required.
Use products for specific slugs or URLs. In catalog mode, updatedSince accepts a date or a period such as 30 days, and productTypes selects sections such as extensions, themes or business services. Filtered-out listings are not opened or charged. maxResults defaults to 100, with 0 meaning no cap. includeDescription controls the short description, and proxyConfiguration is available if needed.
Each saved listing becomes a dataset row. Keep the source URL and collection timestamp with your export so that you can check the source and understand when a value was observed. Separate runs create separate snapshots; comparing them is an analysis step you control.
Who it is for
- Retailers and vendors: compare public prices, product details and market positioning.
- Agencies: investigate public listings before making a recommendation or planning a migration.
- Researchers: build a structured snapshot for a defined set of sources.
- Data teams: feed repeatable exports into spreadsheets and internal reporting workflows.
Start with a small set of sources and inspect the available columns before expanding the scope. Public pages may expose different details, so checking coverage early makes comparisons more reliable.
Real example: WooCommerce Marketplace listings
Step 1: Enter the input
Open the Actor and paste this exact input in the JSON editor:
{"products": ["woocommerce-subscriptions","stripe"]}
Step 2: Run it
Press Start and inspect the run's dataset. Our test run on Nov 10, 2026 saved 2 saved rows. Both are shown trimmed below. A new run may return different rows because the source changes.
Step 3: Read the output
The following are trimmed real rows from that run. The displayed values are unchanged; other columns are omitted for readability.
[{"name": "WooCommerce Subscriptions","slug": "woocommerce-subscriptions","sku": "WOO508","productType": "WooCommerce extensions","vendor": "Woo","vendorUrl": "https://woocommerce.com/vendor/woocommerce/","price": 279,"currency": "USD","ratingValue": 3.91,"reviewCount": 139,"latestVersion": "9.4.1","hposCompatible": false,"cartCheckoutBlocksCompatible": false,"url": "https://woocommerce.com/products/woocommerce-subscriptions/"},{"name": "Stripe","slug": "stripe","sku": "WOO392","productType": "WooCommerce extensions","vendor": "Stripe","vendorUrl": "https://woocommerce.com/vendor/stripe/","price": 0,"currency": "USD","ratingValue": 3.65,"reviewCount": 54,"latestVersion": "11.1.1","hposCompatible": false,"cartCheckoutBlocksCompatible": false,"url": "https://woocommerce.com/products/stripe/"}]
Keep the currency alongside a price, and retain the source URL when comparing results. A missing value should not be silently converted to zero. Review the source page when a value affects a purchasing, compatibility or business decision.
Output fields
The fields below appeared in that real run. Values can differ or be absent in other rows. Arrays are shown as arrays here; a flat spreadsheet export may represent them differently.
| Field | Example from the real run |
|---|---|
name | "WooCommerce Subscriptions" |
slug | "woocommerce-subscriptions" |
sku | "WOO508" |
productType | "WooCommerce extensions" |
vendor | "Woo" |
vendorUrl | "https://woocommerce.com/vendor/woocommerce/" |
price | 279 |
currency | "USD" |
isFree | false |
billing | "annual subscription" |
ratingValue | 3.91 |
reviewCount | 139 |
latestVersion | "9.4.1" |
activeInstalls | "100K+" |
activeInstallsMin | 100000 |
categories | ["WooCommerce extensions", "Developed by Woo", "Wallets & express checkouts", "Payment management", "Merchandi… |
phpVersionRequired | "7.4" |
testedWithWordPress | "7.1" |
testedWithWooCommerce | "11.2" |
requiresWordPress | "7.0" |
requiresWooCommerce | "11.1" |
hposCompatible | false |
cartCheckoutBlocksCompatible | false |
compatibility | [] |
qualityChecks | ["Known vulnerability check passed", "Dependent packages vulnerability check passed", "Follows Marketplace bes… |
worksWith | [] |
countries | ["Worldwide"] |
qualityBadge | "Excellence verified" |
description | "WooCommerce Subscriptions is a WooCommerce extension that lets customers subscribe to your products or servic… |
icon | "https://woocommerce.com/wp-content/uploads/2012/09/Woo_Subscriptions_icon-marketplace-160x160-2.png" |
firstPublished | "2012-09-30" |
lastModified | "2026-11-06" |
url | "https://woocommerce.com/products/woocommerce-subscriptions/" |
scrapedAt | "2026-11-10T09:52:29.385Z" |
Use JSON if you need to preserve arrays, and CSV or Excel for a flat table. Keep identifiers as text during import to avoid changing their formatting. Null and empty values are part of the observed output, so check them before calculating averages or joining datasets.
Export to CSV, Excel or Google Sheets
Open the run in Apify Console, select Output, and choose Export. Download CSV for a portable table, Excel for a workbook, or JSON for structured data. Select the columns relevant to your analysis and check how your spreadsheet handles arrays and empty cells.
You can also download the dataset with its ID and an Apify token:
curl -H "Authorization: Bearer $APIFY_TOKEN" \"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=1" -o woocommerce-marketplace-extensions.csvcurl -H "Authorization: Bearer $APIFY_TOKEN" \"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=xlsx&clean=1" -o woocommerce-marketplace-extensions.xlsx
For a one-time Google Sheets import, download the CSV and choose File > Import > Upload in Sheets. For a recurring workflow, connect an Apify run or task to Make, Zapier or n8n, retrieve dataset items and write the rows to a sheet. Choose whether to replace the previous snapshot or append each run; appending preserves history but requires a plan for identifying duplicate listings.
Schedule it
Save the input as a task in Apify Console, create a schedule and attach the task. For example, 0 7 * * 1 runs every Monday at 7 AM in the selected timezone. Each run has its own dataset, so you can retain snapshots and compare them later.
Review the limits and event prices before scheduling. Check early runs for coverage and missing values, and update a fixed date filter yourself if your workflow uses one. An integration can retrieve the dataset after a successful run and pass the rows to your reporting system.
Call it from the API in Python, JavaScript or curl
Put your Apify token in the APIFY_TOKEN environment variable. These examples use the example input. The Python example uses the typed run object returned by apify-client 3.x.
Python (pip install "apify-client>=3"):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run_input = {"products": ["woocommerce-subscriptions","stripe"]}run = client.actor("mrslm_data/woocommerce-marketplace-extensions").call(run_input=run_input)for item in client.dataset(run.default_dataset_id).iterate_items():print(item.get("name"))
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const input = {"products": ["woocommerce-subscriptions","stripe"]};const run = await client.actor('mrslm_data/woocommerce-marketplace-extensions').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0]);
curl starts a synchronous run and returns CSV. Keep synchronous requests small because the request waits for completion.
curl -X POST "https://api.apify.com/v2/acts/mrslm_data~woocommerce-marketplace-extensions/run-sync-get-dataset-items?format=csv" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"products": ["woocommerce-subscriptions", "stripe"]}' -o woocommerce-marketplace-extensions.csv
For larger jobs, start a run and retrieve the dataset after it finishes. Store tokens securely and restrict access to any automation that can read them.
What it costs
The Actor uses pay-per-event pricing. One extension event is charged for each saved listing, and an apify-actor-start event is charged per run. These are the current prices; check the Actor page for current pricing before a run.
Price per event
| Event | Free / Bronze | Silver | Gold |
|---|---|---|---|
extension per 1,000 saved | $2.00 | $1.80 | $1.60 |
apify-actor-start per run | $0.00005 | $0.00005 | $0.00005 |
At the Free/Bronze rate, one run with 2 saved rows costs $0.00405, including the start event. One run with 1,000 saved rows costs $2.00 plus $0.00005. Each additional run has its own start event. These examples use saved-row counts and do not guarantee that a source will return that many rows.
Use maxResults to bound the number of saved rows. When planning recurring work, account for both the number of runs and the number of rows per run. A small initial run helps you assess source coverage and likely scale.
Limits
Coverage is limited to the public WooCommerce.com Marketplace, not extensions sold elsewhere. Catalog filters apply in catalog mode. Prices, versions and compatibility indicators can change; verify them on the source and test in the target environment. Empty lists or nulls are not proof that a feature is absent.
Public data is a snapshot, and a listing can change or disappear. A result limit can also make the dataset smaller than the source catalog. Keep raw exports if you need to audit a comparison later, and inspect the source when completeness matters.
FAQ
How do I scrape WooCommerce Marketplace listings without an API key?
Add Marketplace slugs or URLs to products. The Actor reads public Marketplace data without a vendor API key.
Can I collect specific WooCommerce extensions?
Yes. Put their slugs or Marketplace URLs in products. The example selects two slugs and the test run returned two rows.
How do I scrape the WooCommerce Marketplace catalog?
Leave products empty. The catalog walk starts with the most recently updated listings. Set maxResults deliberately: its default is 100 and 0 removes the cap.
How do I find recently updated extensions?
In catalog mode, set updatedSince to a date or a period such as 30 days. The public sitemap supplies the filter and excluded listings are not opened or charged.
Can I collect WooCommerce themes and business services?
In catalog mode, use productTypes to select sections such as themes or business services. An empty list includes all sections, subject to the result cap.
Does the output include HPOS and checkout block compatibility?
The sample includes hposCompatible and cartCheckoutBlocksCompatible, both false for the two sampled listings. Verify compatibility for your own versions and store.
Can I compare free and paid extensions?
The sample includes price, currency, isFree and billing. Compare currency and billing terms with the price and check the source for current details.
How do I limit Marketplace listings saved?
Set maxResults to a positive number. The default is 100; 0 means no result cap. The actual number saved depends on source coverage and other filters.
How much do 1,000 Marketplace listings cost?
On Free/Bronze, 1,000 saved listings cost $2.00 plus the $0.00005 start event, totaling $2.00005 for one run.
Related scrapers
- WooCommerce Products Scraper: Prices, Sales & Stock
- WordPress Plugin Scraper: Stats, Installs & Reviews
- WordPress Theme Scraper: Installs, Ratings & Downloads
Is it legal?
This Actor only reads pages and feeds that the website itself publishes to every visitor without a login. It obeys each site's robots.txt, keeps a polite request rate, and never tries to get past logins, paywalls, captchas or bot checks. It does not collect personal data such as emails, phone numbers or names of private individuals. You are responsible for how you use the data: follow the source site's terms, copyright and the privacy laws that apply to you (GDPR, CCPA, etc.). This tool is independent and not affiliated with or endorsed by the platforms it reads.