Skip to content

WooCommerce Scraper

Try for free

Scrape products from any WooCommerce store: names, prices, sale prices, stock, ratings, reviews, SKUs, images, categories, tags, attributes and variations. Paste a store domain, category or product URL. No login needed.

🛒 WooCommerce Scraper

Get every product from any WooCommerce store: names, prices, sale prices, stock, ratings, review counts, SKUs, images, categories, tags, attributes and, if you want them, every variation's own price and stock. Paste a store domain, a category URL or a product URL. No login, no API keys, no browser: the scraper reads the store's public Store API, so even big catalogues come back in seconds.

✨ Why use WooCommerce Scraper?

  • ⚡ Fast — 100 products per request and pages fetched in parallel; a 1,000-product catalogue takes well under a minute.
  • 🔓 No login or API key — uses the public WooCommerce Store API that every WooCommerce 4.0+ store ships with.
  • 🧭 Any entry point — a domain scrapes the whole store, a /product-category/ URL one category, a /product-tag/ URL one tag, a /product/ URL one product.
  • 🎯 Filters on the store's side — keyword, categories, tags, price range, on sale, in stock, featured. You only pay for products that match.
  • 🧩 Variations included — optional per-size / per-colour price, sale price, SKU, stock and image, at no extra charge.
  • 🛡️ Robust — retries, residential fallback when a store's firewall refuses datacenter addresses, clear per-store reasons when a site is not a WooCommerce store.

🎯 Use cases

  • 💰 Competitor price monitoring — schedule daily runs on rival stores and compare prices, discounts and new arrivals.
  • 📦 Stock and backorder tracking — available, isOnBackorder, lowStockRemaining and the store's stock text show when products run low.
  • ⭐ Ratings benchmarking — average rating and review count for every product, without opening product pages.
  • 🗂️ Catalogue and feed building — full product data with SKUs, images, categories and attributes for comparison sites or product databases.
  • 🤝 Supplier and dropshipping audits — check range, pricing and availability of WooCommerce suppliers before you partner.

🚀 How to use

  1. Paste one or more store addresses into Store URLs or domains (mystore.com, https://www.mystore.com, a category URL or a product URL).
  2. Set Maximum products per store (0 = the whole catalogue).
  3. Optionally add a search keyword, categories, a price range or the on-sale / in-stock filters.
  4. Click Start.
  5. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

Not sure a site runs WooCommerce? Open https://the-store.com/wp-json/wc/store/v1/products in your browser: a JSON list means it works.

📥 Input

FieldWhat it does
startUrlsStore domains, home pages, category, tag or product URLs
maxResultsMaximum products per store address (0 = no limit)
searchKeyword for the store's own product search
categories, tagsOnly products in these categories / tags (name, slug or id)
minPrice, maxPricePrice range in the store's currency
onSaleOnly, inStockOnly, featuredOnlyOnly sale, in-stock or featured products
sortBy, sortOrderNewest, price, popularity, rating, name, store order...
includeVariationsAdd every variation's price, SKU, stock and image
includeHtmlAlso keep the descriptions' original HTML
proxyConfigurationDatacenter by default; residential is used automatically when a store blocks datacenter
{
  "startUrls": ["https://porterandyork.com", "https://www.mandarinstone.com/product-category/new-arrivals/"],
  "maxResults": 100,
  "inStockOnly": true,
  "includeVariations": true
}

📤 Output

One row per product.

FieldDescription
store, storeUrlStore domain and home page
id, name, url, slug, sku, typeProduct identity (type: simple, variable, grouped, external)
featuredImage, images, imageCountImage URLs
currency, currencySymbolISO currency code and symbol
price, regularPrice, salePrice, priceMin, priceMaxPrices as numbers; salePrice is null when not on sale; min/max cover all variations
onSale, discountPercentSale flag and discount
available, isPurchasable, isOnBackorder, lowStockRemaining, stockStatusStock data
averageRating, reviewCountRatings (rating is null without reviews)
variationCount, variantsNumber of variations, and the variation details when turned on
categories, tags, brandsNames
attributes, attributeValuesAttribute names, and each attribute's values
shortDescription, descriptionPlain text (HTML in descriptionHtml when turned on)
scrapedAtWhen the row was saved (UTC)

Example from a real run (description shortened):

{
  "store": "porterandyork.com",
  "storeUrl": "https://porterandyork.com",
  "id": 63346,
  "name": "31/40 Shrimp – 2LB",
  "url": "https://porterandyork.com/product/31-40-shrimp-2lb/",
  "sku": "PY5460",
  "type": "simple",
  "featuredImage": "https://porterandyork.com/wp-content/uploads/31-40-Shrimp-Website-photo-scaled.jpg",
  "imageCount": 1,
  "currency": "USD",
  "price": 24,
  "regularPrice": 24,
  "salePrice": null,
  "onSale": false,
  "available": true,
  "isOnBackorder": false,
  "averageRating": null,
  "reviewCount": 0,
  "variationCount": 0,
  "categories": ["Seafood"],
  "description": "2 lbs of succulent 31/40 count shrimp: peeled, vein removed, tail removed, and ready to cook. ..."
}

A variation in variants (with Include variations on):

{
  "id": 472106,
  "title": "Size: 1200x600x10",
  "options": {"Size": "1200x600x10"},
  "sku": "PAURM12x6",
  "price": 44.64,
  "regularPrice": 44.64,
  "salePrice": null,
  "available": true,
  "stockStatus": "902 in stock"
}

The run's OUTPUT record lists every store address with its status, the number of matching products and how many were saved, plus the reason when a store could not be read.

💰 Pricing

$0.70 per 1,000 products ($0.0007 per product), charged only for products saved. Variations, descriptions and stores that could not be read cost nothing extra. Platform usage (compute and proxy traffic) is billed separately and is small: in our test runs a 1,070-product store used about $0.001 and a 1,847-product store about $0.009 of usage.

Example: 1,000 products ≈ $0.70 in product charges plus well under one cent of usage.

❓ FAQ

Is it legal? The scraper reads only the public Store API that the store's own pages use, with no login. Check each store's terms before large commercial use, and handle any personal data according to the law that applies to you.

Do I need a login, API key or proxy? No login or key. The default datacenter proxy works for most stores; when a store's firewall refuses it, that store switches to residential exits in its own country automatically.

How many products can I get? As many as the store publishes: set the limit to 0 for the whole catalogue. Use the run's maximum charge to cap spending on very large stores.

Why is a field empty? The store did not fill it (many stores have no SKU, short description, tags or reviews). salePrice is null when a product is not on sale and averageRating is null when it has no reviews.

Can I schedule it or use the API? Yes. Schedule daily runs for price monitoring, or start runs and read results through the API and export them as JSON, CSV or Excel.

Can I come from a similar actor on another platform? Yes: the domains and maxProducts input names are accepted too.

⚠️ Limits

  • Works only on WordPress sites with WooCommerce and its Store API turned on (the default since WooCommerce 4.0). Other sites are skipped with a reason in OUTPUT.
  • Password-protected or members-only stores, and stores whose firewall blocks every proxy, cannot be read.
  • Prices come in the store's configured currency. Currency-switcher or country-pricing plugins can make the API price differ from what a visitor in another country sees.
  • For variable products price is the lowest variation price; turn on Include variations for every variation's own price.
  • Product search uses the store's own search, so results match what the store's search box returns.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.