E-commerce Product Scraper - Prices, Stock, GTIN & Variants
Pricing
from $0.45 / 1,000 product scrapeds
E-commerce Product Scraper - Prices, Stock, GTIN & Variants
Scrape products from any online store for $0.45 per 1,000: price, sale price, currency, stock, brand, SKU, GTIN, images, rating, variants and breadcrumbs. Product, category, collection and search pages; Shopify, WooCommerce, VTEX and any schema.org store. Price monitor.
Pricing
from $0.45 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Top Api
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
What does E-commerce Product Scraper do?
E-commerce Product Scraper turns any online-store URL into clean product rows: name, price, sale price, currency, stock, brand, SKU, GTIN, MPN, images, rating, review count, variants, category and where the product came from. Paste a product page, a category or collection page, a search page or a store home page, or search inside any store by keyword. One row per product, from as many stores as you like in one run.
E-commerce product scraper - product data scraper - price scraper - online store product extractor - Shopify / WooCommerce product export
- ๐ Any store - reads the product data the store publishes for search engines (schema.org JSON-LD, microdata, RDFa, OpenGraph product tags), so independent shops, brand sites and big retailers all work the same way.
- โก Store platforms read natively - Shopify, WooCommerce and VTEX stores are read through their own open product feeds: full variant lists with SKU, barcode, price, compare-at price and stock, 100-250 products per request.
- ๐ท๏ธ Variants and identifiers - every size and colour with its own SKU, GTIN, price, stock and image; or one row per variant.
- ๐ Price and stock monitor - schedule it and get only new products, or products whose price, sale price or stock changed, with the previous values.
- ๐ Shipping and returns - shipping cost, delivery days and return policy when the store publishes them.
- ๐ No login, no cookies, no API key - public store pages only.
- ๐ Export and integrate - JSON, CSV, Excel, API, webhooks, Make, Zapier, n8n, MCP for AI agents.
What data can you get from an online store?
๐ท๏ธ Name name | ๐ฒ Price price | ๐ Original price originalPrice |
๐ Discount % discountPercent | ๐ฑ Currency currency | ๐ฆ Stock availability / inStock |
๐ข Brand brand | ๐ข SKU sku | ๐ GTIN / EAN / UPC gtin |
๐ฉ MPN mpn | ๐ Store product id productId | ๐ผ๏ธ Images image / images |
โญ Rating rating | ๐ฌ Review count reviewCount | ๐งญ Category / breadcrumbs |
๐จ Variants (size, colour...) variants | ๐ Description description | ๐ Specifications specifications |
๐ Shipping cost and days shippingCost | โฉ๏ธ Return policy returnsPolicy | ๐ณ Installments paymentPlans |
๐ช Seller seller | ๐งฑ Store platform platform | ๐ URL, store, source page |
How to scrape product data with E-commerce Product Scraper
- Create a free Apify account (it comes with monthly platform credit).
- Open E-commerce Product Scraper and paste store URLs under Start URLs: product pages, category or collection pages, search pages or home pages.
- Or type a Keyword and the Stores to search in (e.g.
backpackinbergfreunde.eu,nalgene.com). - Set Total maximum products and any filters (in stock only, price range, discounted only).
- Click Start, then download the products as JSON, CSV or Excel, or read them through the API.
โฌ๏ธ Input
| Parameter | Type | Description |
|---|---|---|
startUrls | array | Any store URL: product, category / collection, search or home page. Type detected automatically. Prefilled. |
detailsUrls | array | URLs you know are single product pages. |
listingUrls | array | URLs you know are category, collection or search pages; pagination is followed. |
keyword / keywords | string / list | Search terms, searched inside every store in storeUrls with the store's own search. |
storeUrls | list | Stores for the keyword search (domains or URLs). Empty = the stores of your Start URLs. |
maxListingPages | integer | Listing pages to follow per URL. Default 20. |
onlyInStock, onlyOnSale, minPrice, maxPrice, onlyWithGtin | filters | Applied before a product is saved; removed products are not charged. |
updatedSince | date | Skip products the store says were last updated earlier (2026-10-01 or 7 days). Shopify stores publish this date. |
urlIncludePatterns / urlExcludePatterns | list | Keep / skip product URLs containing a text or regular expression. |
scrapeProductDetails | boolean | Open each listed product for what only its page has (rating, GTIN, breadcrumbs, shipping). Default on. |
includeVariants, additionalProperties, includeReviews, includeDescription | booleans | What each row carries. |
monitorMode, monitorChanges, monitorStoreName | monitoring | Only new products, plus price / stock changes, remembered in a named store. |
maxProductResults | integer | Products per run (0 = no limit). Default 50, prefilled 20. |
maxResultsPerUrl | integer | Cap per start URL or keyword-and-store search, so one big catalogue does not use up the total. |
compact, splitVariants, descriptionMaxLength | output | Core fields only; one row per variant; shorter descriptions. |
proxyConfiguration, useResidentialFallback, useUnblockerFallback | network | Default: direct, then datacenter, residential and Unblocker only for a store that refuses. |
maxConcurrency, maxConcurrencyPerStore, requestTimeoutSecs, maxRunSeconds | speed | Parallel pages overall (8) and per store (4). |
Input JSON
{"startUrls": [{ "url": "https://www.allbirds.com/collections/mens" },{ "url": "https://www.ikea.com/us/en/cat/bookcases-shelving-units-st002/" },{ "url": "https://www.bergfreunde.eu/stoic-nijakst-ii-backpack-18-walking-backpack/" }],"keyword": "bottle","storeUrls": ["nalgene.com"],"onlyInStock": true,"maxResultsPerUrl": 25,"maxProductResults": 100}
Paste the page that lists the products you want
A collection, category or search page gives you every product it lists, page after page. A store's home page reads its whole catalogue on Shopify and WooCommerce stores; on other stores it reads the products the home page links to. A product page gives that one product.
Use maxResultsPerUrl when you mix stores
Products are collected from all your URLs at once and the run stops at Total maximum products. A fast store can fill that total before a slow one starts; set maxResultsPerUrl to give each URL its own share.
โฌ๏ธ Output
A real row (bergfreunde.eu, run 08Re5Qwm1rV0nMnRc, trimmed):
{"url": "https://www.bergfreunde.eu/stoic-nijakst-ii-backpack-18-walking-backpack/","name": "Stoic - NijakSt. II Backpack 18 - Walking backpack","brand": "Stoic","price": 71.97,"currency": "EUR","availability": "InStock","inStock": true,"sku": "504-1788","rating": 5,"reviewCount": 1,"category": "Outdoor equipment > Backpacks > Walking backpacks","variantCount": 3,"shippingCost": { "amount": 4.45, "currency": "EUR", "destination": "AT" },"deliveryTime": { "handlingDaysMin": 1, "handlingDaysMax": 1, "transitDaysMin": 1, "transitDaysMax": 2 },"returnsPolicy": { "category": "MerchantReturnFiniteReturnWindow", "days": 100, "fees": "FreeReturn", "method": "ReturnByMail" },"marketplace": "bergfreunde.eu","detailStatus": "detail-page","extractionMethod": "json-ld","fetchedVia": "direct"}
Fields
Fill rates from a 93-product run across seven stores (IKEA, Bergfreunde, ColourPop, WebstaurantStore, Naldo, Nalgene, MUJI; run iPdzncxl6t3mOgjLm). A field is filled when the store publishes it.
| Field | Meaning | Filled |
|---|---|---|
url, name, price, currency, availability, inStock, image, images, brand, category | The product and its offer | 100% |
offers | The same offer in the schema.org shape (price, priceCurrency, availability...) | 100% |
sku | Store SKU | 84% |
breadcrumbs | The page's breadcrumb trail | 68% |
productId | Shopify / WooCommerce / VTEX / schema.org product id | 68% |
rating, reviewCount | Average rating and number of reviews | 67% |
mpn | Manufacturer part number | 54% |
gtin | GTIN / EAN / UPC (8-14 digits) on the product; variants carry their own | 45% |
variants, variantCount | Sizes, colours, options with SKU, GTIN, price, stock, image | 45% |
seller, condition | Seller and condition named in the offer | 48-49% |
returnsPolicy | Return window, fees, method | 32% |
specifications, categories | Specification table; platform categories | 32% |
productType, tags, createdAt, publishedAt, updatedAt, handle | Shopify / WooCommerce catalogue data | 16-35% |
originalPrice, discountPercent | Price before the discount, when discounted | 19% |
shipping, shippingCost, deliveryTime | Shipping offers from the page | 16% |
paymentPlans, paymentMethods, warranty | Installments and warranty (VTEX stores) | 16% |
platform, marketplace, inputUrl, sourceUrl, keyword | Where the product came from | - |
detailStatus, extractionMethod, fetchedVia | How it was read: platform feed or page, which sources, which route | 100% |
monitorStatus, previousPrice, previousAvailability, priceChange, changedFields, firstSeenAt | Monitor mode only | - |
The run summary (key-value store record RUN_SUMMARY) lists, per input, how many products were found and delivered, the platform and method used, and every page not read with the reason (not found, refused, no product data).
How can I use online store product data?
- ๐ฒ Pricing teams - track competitors' prices, discounts and stock across many stores in one scheduled run, with only the changes delivered.
- ๐๏ธ Marketplaces and comparison sites - fill a catalogue with GTINs, brands, images and variants from brand stores.
- ๐ฆ Brands and distributors - check how resellers list, price and stock your products (MAP monitoring).
- ๐ Market researchers - pull whole categories with ratings and review counts to size a niche.
- ๐ค AI and agent builders - feed clean product rows (
compactmode) to an LLM or a shopping assistant. - ๐ Dropshippers and buyers - watch a supplier's catalogue for new products and stock changes.
How much does it cost to scrape products?
E-commerce Product Scraper is pay-per-result: $0.45 per 1,000 products, no start fee and no fee per listing page. Pages without product data, products your filters remove, duplicates and unchanged monitor products are not charged.
| Products | Cost |
|---|---|
| 100 | $0.045 |
| 1,000 | $0.45 |
| 10,000 | $4.50 |
| 100,000 | $45.00 |
Two surcharges apply only to products from stores that refuse normal requests, because those pages go through paid proxies: +$7.60 per 1,000 for products read through the residential proxy and +$6.20 per 1,000 for products read through the Unblocker. Every row's fetchedVia field says which route read it. Measured speed on the default 512 MB: 93 products from seven stores in 23 s; 1,000 products from one Shopify store in 8 minutes.
Integrations, API, scheduling & MCP
- Schedules: run E-commerce Product Scraper daily or hourly from the Schedules tab; turn on Monitor mode to get only new products and price or stock changes.
- Webhooks: call a URL when a run finishes to push products to your database, Slack or a sheet.
- No-code: Make, Zapier, n8n, Google Sheets, Airtable via Apify integrations.
- API: start runs and read products with
apify-client- code on the API tab and the Apify API reference. - MCP / AI agents: connect Claude, Cursor or any MCP client through the MCP tab and ask for products from a store in plain language.
More e-commerce scrapers
| ๐ SHEIN Product Scraper | ๐๏ธ TikTok Shop Scraper | ๐ MercadoLibre Scraper |
| ๐ฎ Taobao & Tmall Product Scraper | ๐ฐ๐ท Naver Shopping Scraper | ๐งฑ Website Technology Scraper (which platform a store runs on) |
All our actors: apify.com/TopApi.
Limits & empty runs
- Stores that render products with JavaScript only: product pages almost always carry structured data, but some search and category pages build their product list in the browser (Target, Best Buy and Zumiez search pages in our tests). Paste category or product URLs of those stores instead.
- Marketplaces with bot walls: each store is tried directly, then through the datacenter proxy, the residential proxy and the Unblocker. A store that refuses every route (eBay and Etsy search pages in our tests) is named in the run summary and nothing is charged for it. Walmart opened only through the Unblocker, and its pages carry no schema.org product data, so they yield no rows.
- Platform caps: Shopify catalogue feeds go to 25,000 products per store; VTEX search to 2,500 per query; WooCommerce has no cap.
- Prices follow the store's market: many stores price by visitor country. Pick a proxy country to see that market's prices; every row carries its
currency. - Empty dataset: the run summary says why: page not found, refused on every route, no product data on the page, or filters removed everything. Nothing is charged.
FAQ
How many products can E-commerce Product Scraper collect in one run?
As many as you set in Total maximum products (0 = no limit). On Shopify and WooCommerce stores whole catalogues are read through the store's feed; on other stores every listing page is followed up to Max listing pages per URL.
Can E-commerce Product Scraper track price changes on a schedule?
Yes. Turn on Monitor mode, save the input as a task and schedule it. Each run delivers only products that are new or whose price, original price or stock changed, with previousPrice, previousAvailability and changedFields. Unchanged products are not charged.
Which stores does E-commerce Product Scraper work with?
Any store whose pages publish product data for search engines (schema.org JSON-LD, microdata, RDFa or OpenGraph product tags), which most stores do. Shopify, WooCommerce and VTEX stores are also read through their own product feeds for full variant data.
Can E-commerce Product Scraper search for a keyword inside a store?
Yes. Put the keyword under Keyword search and the stores under Stores to search in. It uses the store's own search (Shopify, WooCommerce, VTEX, Magento, BigCommerce, or the search address the store declares).
Can I get one row per variant with E-commerce Product Scraper?
Yes, turn on One row per variant: each size or colour becomes a row with its own SKU, GTIN, price and stock, linked to its product by parentId. Each row is charged as a product.
Can I use E-commerce Product Scraper with the Apify API?
Yes. Use apify-client for Node.js or Python to start runs and read products; the API tab has code ready to paste.
Can I use E-commerce Product Scraper through an MCP server?
Yes. Open the MCP tab, connect Claude Desktop, Cursor or another MCP client and ask for products from a store URL. Turn on Compact output for short rows.
Do I need an account, cookies or an API key for E-commerce Product Scraper?
No. It reads public store pages only; you paste URLs or a keyword and a store.
Why did E-commerce Product Scraper return no products?
Open the RUN_SUMMARY record: it lists each page not read and why. The usual causes are a page that is not a product or listing page (a blog or help page), a search page that lists products only through JavaScript (paste a category URL instead), filters that removed everything, or a store that refused every route.
Is it legal to scrape product data from online stores?
E-commerce Product Scraper extracts only publicly available product information - names, prices, stock and store details. It does not log in or collect private data.
Your feedback
Missing a store, a field or a platform? Open an issue on the Issues tab and we will look at it.
