E-commerce Scraper - Product Prices, Variants & Stock avatar

E-commerce Scraper - Product Prices, Variants & Stock

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
E-commerce Scraper - Product Prices, Variants & Stock

E-commerce Scraper - Product Prices, Variants & Stock

Scrape any online store: Shopify, WooCommerce, Amazon, Walmart and schema.org sites. Prices, variants, stock and GTINs to CSV, Excel, JSON or XML.

Pricing

from $1.00 / 1,000 product results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

๐Ÿ›๏ธ E-commerce Scraper

๐Ÿš€ Export product data from almost any online store in seconds. Paste product, category or store URLs and get 29 clean columns per product: price, original price, discount, stock, GTIN, SKU, brand, rating, variants, images and specifications.

The E-commerce Scraper reads the same structured data a store publishes for search engines and for its own front end. Shopify stores are read through their product JSON, WooCommerce stores through the WooCommerce Store API, Amazon and Walmart through dedicated page parsers, and every other store through its schema.org Product data (JSON-LD or microdata), OpenGraph product tags, or a price-and-title fallback for plain HTML shops.

One run can mix stores and platforms. A Shopify collection comes back 250 products per request, a WooCommerce category 100 per request, and a whole store can be exported from its home page through its catalog API or its product sitemaps. Every product has the same 29 fields, whatever the store, so you can compare prices across sites in one table.

๐ŸŽฏ Target Audience๐Ÿ’ก Primary Use Cases
Pricing and revenue teamsCompetitor price monitoring across many stores
E-commerce managers and marketplacesCatalog audits, assortment gaps, MAP checks
Data engineers and agenciesProduct feeds, PIM enrichment, GTIN matching
Researchers and foundersMarket sizing, brand and category studies

๐Ÿ“‹ What the E-commerce Scraper does

  • ๐Ÿ”— Product URLs: any product page. One row per product (or one row per variant if you want).
  • ๐Ÿ—‚๏ธ Category, collection and search URLs: finds every product on the page, follows pagination and scrapes each one. Shopify collections and WooCommerce categories go straight to the store's catalog API.
  • ๐Ÿฌ Whole store URLs: give a home page and get the full catalog, through Shopify products.json, the WooCommerce Store API or the store's product sitemaps. A market path such as ikea.com/us/en/ keeps the crawl on that market.
  • ๐Ÿงฉ Variants: sizes and colours with their own SKU, GTIN, price, compare-at price and stock, nested or as separate rows.
  • ๐Ÿ›ก๏ธ Blocked stores: when a store refuses direct traffic, the Actor retries it through residential proxy in the store's country, automatically.

๐Ÿ’ก Why it matters: price monitoring tools usually need one scraper per store. This Actor gives you one input, one schema and one dataset for Shopify brands, WooCommerce shops, Amazon, Walmart, IKEA, Nike, Decathlon and thousands of smaller stores.

๐ŸŽฌ Full Demo

๐Ÿšง Coming soon.

๐Ÿ“Š Output

Fields a store does not publish hold Not Disclosed; fields that do not apply hold N/A. Prices are numbers.

FieldDescription
๐Ÿ–ผ imageUrlMain product image
๐Ÿ“Œ titleProduct name
๐Ÿ”— urlCanonical product URL
๐Ÿ†” idStore product ID (Shopify ID, ASIN, Walmart item ID...)
๐Ÿ‘ช parentIdParent product ID on variant rows, otherwise N/A
๐Ÿท๏ธ skuSKU of the product or of the first available variant
๐Ÿ”ข gtinGTIN, UPC or EAN barcode
๐Ÿ”ง mpnManufacturer part number or model
๐Ÿญ brandBrand or vendor
๐Ÿ’ฐ priceCurrent price as a number
๐Ÿ’ฑ currencyISO currency code
๐Ÿท๏ธ originalPriceCompare-at, list or "was" price when the product is discounted
๐Ÿ“‰ discountPercentDiscount against originalPrice, rounded
๐Ÿ“ฆ availabilityAvailability as the store states it
โœ… inStockYes or No
โœจ conditionNew, Used, Refurbished...
๐Ÿช sellerSeller or merchant, on marketplaces
โญ ratingAverage rating
๐Ÿ’ฌ reviewCountNumber of reviews or ratings
๐Ÿ—‚๏ธ categoryCategory or breadcrumb path
๐Ÿ“ descriptionDescription as plain text
๐ŸŽจ variantCountNumber of variants
๐Ÿงฉ variantsVariant list: id, title, sku, gtin, price, originalPrice, inStock, imageUrl
๐Ÿ–ผ๏ธ imagesImage gallery URLs
๐Ÿ“ specificationsAttributes and specs as name / value pairs
๐Ÿงฑ platformWhere the data came from: Shopify, WooCommerce, Amazon, Walmart, JSON-LD, Microdata, OpenGraph or HTML
๐ŸŒ domainStore domain
๐Ÿ•’ scrapedAtISO timestamp
โŒ errornull on success; error rows carry the URL and the reason

Three real records from a cloud run (long descriptions, variant lists, galleries and spec lists shortened here):

[
{
"imageUrl": "https://cdn.shopify.com/s/files/1/1330/6287/files/default_c26654cc-c7a7-4c97-a443-38676e7bcfac.jpg?v=1790096125",
"title": "Simond Men's MT500 Down Puffer Jacket",
"url": "https://www.decathlon.com/products/forclaz-mens-mt500-down-puffer-jacket",
"id": "8214661529662",
"parentId": "N/A",
"sku": "375680",
"gtin": "3608439667718",
"mpn": "Not Disclosed",
"brand": "Forclaz",
"price": 149,
"currency": "USD",
"originalPrice": "N/A",
"discountPercent": "N/A",
"availability": "In Stock",
"inStock": "Yes",
"condition": "Not Disclosed",
"seller": "Not Disclosed",
"rating": "Not Disclosed",
"reviewCount": "Not Disclosed",
"category": "Down jacket",
"description": "RDS-certified down jacket designed for backpacking in the mountains in cold weather down to 14ยฐF when active and 32ยฐF when static.",
"variantCount": 6,
"variants": [
{ "id": "43195505311806", "title": "2XL", "sku": "375680", "gtin": "3608439667718", "price": 149, "originalPrice": "N/A", "inStock": "Yes", "imageUrl": "Not Disclosed" },
{ "id": "43195508654142", "title": "3XL", "sku": "375682", "gtin": "3608439667701", "price": 149, "originalPrice": "N/A", "inStock": "Yes", "imageUrl": "Not Disclosed" }
],
"images": [
"https://cdn.shopify.com/s/files/1/1330/6287/files/default_c26654cc-c7a7-4c97-a443-38676e7bcfac.jpg?v=1790096125",
"https://cdn.shopify.com/s/files/1/1330/6287/files/default_d15dc24c-e52e-4961-a356-0de540031c12.jpg?v=1790096125"
],
"specifications": [{ "name": "Size", "value": "2XL, 3XL, L, M, XL, S" }],
"platform": "Shopify",
"domain": "decathlon.com",
"scrapedAt": "2026-09-24T16:29:24.950Z",
"error": null
},
{
"imageUrl": "https://m.media-amazon.com/images/I/51VxSqysy6L._AC_SL1500_.jpg",
"title": "KTGEE Wireless Earbuds Bluetooth 5.3 Ear Buds Headphones, 40Hrs Playback",
"url": "https://www.amazon.com/dp/B0D5HG7TC3",
"id": "B0D5HG7TC3",
"parentId": "N/A",
"sku": "B0D5HG7TC3",
"gtin": "Not Disclosed",
"mpn": "Not Disclosed",
"brand": "KTGEE",
"price": 16.1,
"currency": "USD",
"originalPrice": 25.99,
"discountPercent": 38,
"availability": "In Stock",
"inStock": "Yes",
"condition": "Not Disclosed",
"seller": "whping Power Tech",
"rating": 4.3,
"reviewCount": 6881,
"category": "Electronics > Headphones, Earbuds & Accessories > Headphones & Earbuds > Earbud Headphones",
"description": "40Hrs Extra-Long Battery Life Wireless Earbuds - Enough time to listen to 500+ songs: T08 wireless earbuds can provide up to 8 hours of music on a single ...",
"variantCount": 0,
"variants": [],
"images": [
"https://m.media-amazon.com/images/I/51VxSqysy6L._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/61HGB-ctP9L._AC_SL1500_.jpg"
],
"specifications": [
{ "name": "Brand", "value": "KTGEE" },
{ "name": "Color", "value": "A-White" },
{ "name": "Ear Placement", "value": "In Ear" }
],
"platform": "Amazon",
"domain": "amazon.com",
"scrapedAt": "2026-09-24T16:29:26.603Z",
"error": null
},
{
"imageUrl": "https://i5.walmartimages.com/asr/3c3cb9a4-cbae-459d-ab83-f5083b8b75aa.5f98f5bb100a4d663ba29e3b0fe63ffd.jpeg",
"title": "Apple AirPods Pro 2 In-Ear Headphones with USB-C Charging Case, White",
"url": "https://www.walmart.com/ip/AirPods-Pro-2nd-generation-with-MagSafe-Case-USB-C/5689919121",
"id": "5689919121",
"parentId": "N/A",
"sku": "5689919121",
"gtin": "195949704529",
"mpn": "MTJV3AM/A",
"brand": "Apple",
"price": 173.99,
"currency": "USD",
"originalPrice": 197.98,
"discountPercent": 12,
"availability": "In Stock",
"inStock": "Yes",
"condition": "Not Disclosed",
"seller": "Gadget Replay",
"rating": 4.2,
"reviewCount": 35,
"category": "Services > Immersive Shopping Suite > View in 3D",
"description": "Apple AirPods Pro 2 In-Ear Headphones with USB-C Charging Case, White: Brand: Apple Headphone Style: In-Ear Headphone Type: Headphones Wireless Technology: TRUE ...",
"variantCount": 0,
"variants": [],
"images": [
"https://i5.walmartimages.com/asr/3c3cb9a4-cbae-459d-ab83-f5083b8b75aa.5f98f5bb100a4d663ba29e3b0fe63ffd.jpeg",
"https://i5.walmartimages.com/asr/0f13e8de-9f60-4810-a5e2-a77ceacdd085.f043c740e058c48b072836f0211d8a9e.jpeg"
],
"specifications": [
{ "name": "Noise control technology", "value": "Active Noise Cancellation" },
{ "name": "Battery life", "value": "6 h" },
{ "name": "Works with", "value": "iPhone, iPad, Mac" }
],
"platform": "Walmart",
"domain": "walmart.com",
"scrapedAt": "2026-09-24T16:29:28.128Z",
"error": null
}
]

โœจ Why choose this Actor

What you get
One schema for every store29 flat columns, prices as numbers, ISO currencies. Shopify, WooCommerce, Amazon, Walmart and schema.org stores land in the same table.
Variants done properlyEvery size and colour with its own SKU, barcode, price, compare-at price and stock. Nested by default, one row per variant with a switch.
Barcodes for matchingGTIN / UPC / EAN and MPN where the store publishes them, so the same product can be matched across retailers.
Discounts computed for youoriginalPrice and discountPercent from compare-at, list and strikethrough prices.
Whole catalogs, fastShopify and WooCommerce catalogs come from their JSON APIs: 250 or 100 products per request, no page rendering.
Honest error rowsA blocked page or a page without product data returns a row that says why, instead of an empty or invented product.

๐Ÿ“ˆ How it compares to alternatives

FeatureParseForge E-commerce ScraperApify E-commerce Scraping ToolTypical universal scrapers
Product and category URLsYesYesMostly product URLs
Whole-store export from a home pageYesNot listedRarely
Flat columns with numeric pricesYes, 29 fieldsNested objectsVaries
Variants with SKU, GTIN, price and stock eachYesVariants listedRarely
Discount and original priceYesNot listedVaries
Shopify / WooCommerce catalog APIsYesNot listedSome
Residential retry for blocked storesAutomaticYesRarely
Reviews, sellers and AI summariesNoYesRarely
eBay, Best Buy, Home Depot, Lowe's, ArgosNo (blocked over HTTP)Yes, with a browserVaries

The Actor reads pages over HTTP with a real browser TLS fingerprint and never starts a browser. That keeps runs fast and cheap, and it means stores that only render products with JavaScript, or that block every non-browser client, are out of reach. They come back as error rows that name the reason.

๐Ÿš€ How to use

  1. Create a free Apify account with $5 in credit.
  2. Open the E-commerce Scraper and paste product URLs, category URLs or store URLs.
  3. Set Max Items, and turn on One row per variant if you want each size or colour as its own row.
  4. Click Start and download the dataset as CSV, Excel, JSON or XML.

A mixed first run:

{
"productUrls": [
{ "url": "https://www.allbirds.com/products/mens-tree-runner-go" },
{ "url": "https://www.amazon.com/dp/B0D5HG7TC3" }
],
"listingUrls": [{ "url": "https://www.allbirds.com/collections/mens" }],
"storeUrls": [{ "url": "https://www.decathlon.com/" }],
"maxItems": 100
}

๐Ÿ’ผ Business use cases

๐Ÿ“Š Price monitoring

Schedule a daily run on your competitors' product or collection URLs and diff price, originalPrice and inStock by id. One dataset covers every store you track.

๐Ÿงพ Catalog and assortment audits

Export a competitor's whole store and compare brand, category, variantCount and sizes against your own range to spot gaps and overlaps.

๐Ÿ”ข Product matching and MAP checks

Match products across retailers by gtin and mpn, then flag sellers pricing below the minimum advertised price.

๐Ÿ—‚๏ธ Feeds and PIM enrichment

Pull titles, descriptions, images and specifications into your product information system or a marketplace feed.

๐Ÿ”Œ Automating E-commerce Scraper

  • Make and Zapier: start a run on a schedule and send the CSV to Google Sheets or Airtable.
  • Slack: post a message when prices change or a product goes out of stock.
  • Airbyte: load each dataset into your warehouse.
  • GitHub and Google Drive: archive daily exports for price history.

All of them are on the Actor's integrations tab, or use Apify integrations.

๐ŸŒŸ Beyond business use cases

  • Research: study price dispersion, discount depth and assortment across retailers.
  • Personal: track a wish list across several stores and buy at the lowest price.
  • Non-profit: monitor the price of essentials across local shops.
  • Experimentation: build a product dataset to train a classifier or a recommender.

๐Ÿค– Ask an AI assistant about this scraper

Add the Actor to Claude, Cursor or any MCP client and ask in plain language, for example "compare the price of these three jackets across Decathlon and Allbirds":

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/e-commerce-scraper"

โ“ Frequently Asked Questions

๐Ÿ›’ Which stores work? Shopify and WooCommerce stores, Amazon, Walmart product pages, and any store that publishes schema.org Product data, which includes most large retailers (IKEA, Nike, Decathlon and many more). Plain HTML shops work when the page shows one title and a visible price.

๐Ÿ”— What is the difference between the three URL fields? Product URLs are single product pages. Category / search / collection URLs are pages that list products: the Actor collects the product links, follows pagination and scrapes each product. Whole store URLs are home pages: the Actor exports the full catalog.

๐Ÿงฉ How do variants work? By default each product is one row with a variants array. Turn on One row per variant to get one row per size or colour, each with its own id, sku, gtin, price and inStock, and the product in parentId.

๐Ÿ›ก๏ธ What happens when a store blocks me? The Actor first tries two browser fingerprints directly. If the store still refuses, it retries through residential proxy in the store's country and keeps using it for that store. If that fails too, you get an error row with the reason. You can switch the residential fallback off.

๐Ÿšซ Which stores do not work? Stores that block every non-browser client, such as eBay, Best Buy, Home Depot, Lowe's and Argos, and stores that load products only with JavaScript. Walmart product pages work, but Walmart category and search pages do not publish products in their HTML, so pass Walmart product URLs.

๐Ÿฌ How does whole-store mode find products? It asks the store's Shopify or WooCommerce catalog API first. Otherwise it reads the product sitemaps listed in robots.txt. Add a market path such as /us/en/ to stay on one country's catalog.

๐Ÿ’ฑ Which currency do I get? The one the store shows. Amazon shows prices in the shopper's local currency, which depends on the IP address, so the currency column always says which one you got.

โญ Why is rating sometimes Not Disclosed? Many stores do not publish ratings in their page data, and Shopify's product JSON has none. When a store does publish them, they are included.

๐Ÿ“„ How many listing pages are followed? Max pages per listing (default 5) for HTML listings. Shopify and WooCommerce listings page through their APIs until Max Items.

๐Ÿ”ข Why do some rows have N/A in originalPrice? The product is not discounted, so there is no original price to show.

๐Ÿ†“ What do free users get? Up to 10 products per run as a preview. Upgrade your plan for up to 1,000,000 products per run.

๐Ÿ”Œ Integrate with any app

Pull results with the API in any language:

curl "https://api.apify.com/v2/acts/parseforge~e-commerce-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"productUrls":[{"url":"https://www.amazon.com/dp/B0D5HG7TC3"}],"maxItems":10}'

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Shopify, WooCommerce, Amazon, Walmart or any store it reads. It collects only publicly available product data. You are responsible for using it in line with each site's terms and applicable law.