On the Apify Store and as an MCP server live
Shopify scraper and WooCommerce scraper, in one
Paste the URLs of any Shopify or WooCommerce stores. Get every product back in one clean format: prices, sale prices, variants, SKUs, barcodes, stock, weights and images. Turn on change tracking and it becomes a competitor price monitor.

What you get
62 fields per product, the same on both platforms.
We benchmarked it on the same three Shopify stores against the two leading Shopify scrapers on Apify. Their rows had 55 and 38 field paths; ours have 62, and most of the fields only they return are other names for ours.
- Product: title, handle, URL, vendor, type, categories, tags, lowest and highest price, compare-at price, on sale, in stock, options with every value, description as plain text and as HTML, dates.
- Variants: title and options (Size, Color), SKU, barcode, price and sale price, in stock, stock count where public, backorder policy, weight in grams, image.
- Images: URL, width, height, alt text and the variants each one belongs to.
- Per store: the platform detected, how many products the store announces, and why a store failed when it did.

Shopify and WooCommerce, side by side
What each platform actually publishes.
The two platforms do not expose the same things publicly. Where one publishes nothing, the field is empty rather than guessed.
| Field | Shopify | WooCommerce |
|---|---|---|
| Catalog endpoint | /products.json, 250 per request | /wp-json/wc/store/v1/products, 100 per request |
| Prices and sale prices | Yes, per variant | Yes, per variation (one extra request per page) |
| Stock count | When the store tracks inventory (Ajax endpoint) | Only when stock is low |
| Barcode (GTIN, EAN, UPC) | When entered (Ajax endpoint) | Not published |
| Weight | Grams, every variant | In the store's unit, converted to grams |
| Created and updated dates | Yes | Not published |
| Ratings and review count | Not in the catalog | Yes |
| Collections or categories | Collections, by URL or handle | Categories, by URL or slug |
Price and stock monitoring
Pay for changes, not for re-reading the same catalog.
With change tracking on, the first run saves a snapshot of each store and every later run outputs only what moved. Turn off product rows and a scheduled monitor pays only for the changes it finds.
A run stopped by your product limit cannot know whether an unread product still exists, so it reports price and stock changes only and says why. Cover the whole catalog to get new and removed products too.
Sourcing from AliExpress? The AliExpress scraper reads the supplier side the same way: every SKU's price and stock, the shipping cost to each country you list, and only the products that changed since the last run.
Measured
How fast a store is read.
Ready-to-run examples
Open one, change the input, run it.
- Export a Shopify store's product catalog: Allbirds
- Scrape a WooCommerce store's products and prices
- Shopify product variants with SKU, barcode and stock
- Track price and stock changes of a Shopify store
- Scrape one Shopify collection: Allbirds men's shoes
Each example opens the Actor on Apify with its input filled in. All examples on the Apify Store.
Pricing
Pay per product, no subscription.
$0.90 per 1,000 products returned and $0.005 per change detected, billed by Apify with platform usage included. A 1,000 product store costs $0.90, and Apify's free plan covers about 5,500 products a month.
For AI agents
The same catalogs, as an MCP server.
An agent rarely needs a whole catalog at once. The MCP server reads a store a page at a time, searches it, or returns one product in full, in compact JSON, billed per call from the credits that work on every AgentToolWorks server. 100 credits are free without a card.
| Tool | Credits | What it does |
|---|---|---|
| inspect_store | 0.2 | Find out whether a store runs Shopify or WooCommerce, whether its catalog can be read, its currency and how many products it publishes. The store's public storefront. |
| list_products | 1 | Page through a store's catalog, or one collection or category, up to 50 products a page in a compact shape: title, URL, price range, sale price, stock, variant count, image. Shopify products.json, the WooCommerce Store API. |
| get_product | 1 | One product in full: every variant with SKU, barcode (GTIN/UPC/EAN), price, stock where public and weight; options, images with alt text, description, rating. Shopify product JSON and Ajax endpoints, the WooCommerce Store API. |
| search_products | 1 | Search one store by keyword through its own public search. Up to 10 results on Shopify, 20 on WooCommerce. Shopify predictive search, the WooCommerce Store API. |
| get_usage | free | Read the remaining credit balance and the last 30 days of calls. Your account. |
https://storecatalog.agenttoolworks.com/mcp
claude mcp add --transport http storecatalog \ https://storecatalog.agenttoolworks.com/mcp \ --header "Authorization: Bearer atw_live_your_key"
Get a free key, then follow the docs for Claude Desktop, Cursor, Windsurf and VS Code. WooCommerce stores answer a page in 4 to 8 seconds (measured): that is the store's own speed, and the tool waits for it.
Use cases
What agents use it for, with real calls.
- Track a Shopify competitor's prices and stock. Read a competitor's Shopify collection with current prices, sale prices and stock, a page at a time, from an agent. For scheduled monitoring, the Apify Actor reports only what changed.
- Export a WooCommerce store's product catalog. Read every product of a WooCommerce store, or of one category, through its public Store API: titles, prices, categories, stock and images, in pages of up to 50.
- Get product barcodes, SKUs and stock from a Shopify store. Read one Shopify product in full: every variant with its SKU, barcode, price, stock where the store tracks it and weight in grams, from the product page URL.
- Check whether a site runs Shopify or WooCommerce. One cheap call tells an agent whether a store runs Shopify or WooCommerce, whether its catalog can be read, its currency and how many products it publishes.
- Search a store's products by keyword, from an agent. Find products in one Shopify or WooCommerce store by keyword through the store's own public search, with prices, availability and the product URL.
For developers
The Apify Actor, in one HTTP call.
Run it and get the products back in the same request through the Apify API. Snippets for Node.js and Python are in the Actor's README.
curl -X POST "https://api.apify.com/v2/acts/agenttoolworks~shopify-woocommerce-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"storeUrls": ["https://www.allbirds.com"], "maxProductsPerStore": 100}'Questions
Is there a Shopify scraper that also works on WooCommerce?
This one. Paste Shopify and WooCommerce store URLs in the same list: the platform is detected for each store, and every product comes back in the same format, so one spreadsheet or one database table holds both.
How does it read a Shopify store?
Through the storefront's own public endpoints: products.json for the catalog, 250 products per request, and the per-product Ajax endpoint for stock counts, barcodes and image alt text. When the address you paste is a headless storefront (Hydrogen, Next.js) or sits behind a bot wall, the Actor reads the same products.json on the store's Shopify Online Store host, such as its myshopify.com domain, after checking that host's /meta.json names your store's domain. No login, no admin access, nothing a shopper's browser does not already receive.
Can I get barcodes (GTIN, EAN, UPC) from a Shopify store?
Yes, when the store entered them. Barcodes are not in products.json; they come from the per-product endpoint, which the Actor reads when 'Include stock levels, barcodes and image alt text' is on. On our test stores, Allbirds and Kith had a barcode on every variant.
Can it monitor competitor prices?
Yes. Turn on change tracking and schedule the Actor on Apify: each run outputs only what changed since the previous one, price up, price down, back in stock, out of stock, new product, removed product, and you pay per change.
What does it cost?
$0.90 per 1,000 products returned and $0.005 per change detected, billed by Apify. Apify's free plan includes $5 of monthly usage, about 5,500 products.
Can an AI agent read a Shopify store directly?
Yes, through our MCP server at storecatalog.agenttoolworks.com/mcp: inspect a store, list its products a page at a time, search it by keyword, or read one product in full with barcodes and stock. It answers in compact JSON so the agent does not pay for tokens it does not need, and it is billed per call from the same credits as our other servers.
Which stores does it not work on?
Sites that refuse automated requests on every host and name no Shopify store we can confirm as theirs: in our tests on October 17, 2026, www.hellomolly.com (Vercel's bot checkpoint) and www.tesla.com (HTTP 403). Also WooCommerce stores whose Store API is closed or behind a firewall, and a collection URL that is not a collection (kith.com/collections/mens redirects to an editorial page; the run summary lists real collections instead). Headless Shopify storefronts do work: Gymshark, Fashion Nova, Ruggable and Bombas are read from their Shopify Online Store. The run summary names every store that failed and why, so a store never silently returns nothing.
Public storefront data only: no login, no customer data. Not affiliated with Shopify or WooCommerce.