Shopify Store Products Scraper – Prices, Variants & Stock avatar

Shopify Store Products Scraper – Prices, Variants & Stock

Pricing

from $0.19 / 1,000 products

Go to Apify Store
Shopify Store Products Scraper – Prices, Variants & Stock

Shopify Store Products Scraper – Prices, Variants & Stock

Export every product from any Shopify store: title, vendor, type, tags, min/max price, compare-at price, sale %, stock, variants with SKUs, images. Reads the store's public products feed. $0.00019 per product + $0.0005 per run.

Pricing

from $0.19 / 1,000 products

Rating

0.0

(0)

Developer

LOUDTZU TZULOUD

LOUDTZU TZULOUD

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

Give it one or more Shopify store addresses. It returns every product in the store (or in one collection): title, brand/vendor, type, tags, lowest and highest price, "compare at" (was) price, sale %, stock, variants with SKUs, and images. One row per product.

It reads the store's own public products feed (/products.json), the same feed Shopify serves to every visitor. No login, no browser, no residential proxies, so it is fast and cheap.

What you can use it for

  • Price monitoring: track a competitor's prices and sales every day.
  • Catalogue export: copy a supplier's product list into a spreadsheet.
  • Market research: see how many products, which brands and which price bands a store carries.
  • Stock checks: see which sizes or colours are sold out.

Input

FieldWhat it doesDefault
Store URLsOne store per line: https://www.allbirds.com, shop.example.com, or a collection like https://shop.example.com/collections/saleallbirds.com
Max products per storeStop after this many products from each store (1–50,000)100
Include variantsAdds a variants list (size/colour, SKU, price, was-price, in stock)on
Include descriptionAdds the description as plain text (emails and phone numbers removed)on

Example input:

{ "storeUrls": ["https://www.allbirds.com", "https://shop.example.com/collections/sale"], "maxProductsPerStore": 500 }

Output (one row per product)

{
"store": "www.allbirds.com",
"productId": 7012345678901,
"title": "Men's Tree Runners",
"url": "https://www.allbirds.com/products/mens-tree-runners",
"vendor": "Allbirds",
"productType": "Shoes",
"tags": ["mens", "running"],
"priceMin": 98.0,
"priceMax": 98.0,
"compareAtPriceMax": null,
"onSale": false,
"maxDiscountPct": null,
"currency": "USD",
"available": true,
"variantCount": 12,
"availableVariantCount": 9,
"imageUrl": "https://cdn.shopify.com/…jpg",
"updatedAt": "2026-11-01T10:00:00-04:00",
"variants": [{ "variantId": 1, "title": "8 / Black", "sku": "TR-8-BK", "price": 98.0, "compareAtPrice": null, "available": true }]
}

The table view in Apify Console shows the main columns; the JSON, CSV and Excel exports have every field. Field notes are in the dataset schema.

Pricing

Pay per result:

  • $0.00019 per product saved (= $0.19 per 1,000 products)
  • $0.0005 per run, charged only once the first product is saved.

Runs that save nothing (not a Shopify store, blocked, robots.txt says no) cost you nothing. You can set "Max charge per run" in Apify; the Actor stops cleanly when it is reached and says so in the status.

Rivals (checked 2026-11-05)

Live Apify Store prices read on 2026-11-05 (~16:30 AST) from the Store API. One row per Apify plan (Free, Bronze, Silver, Gold, Platinum, Diamond). Users = monthly users at that time. Prices change; check the Store before relying on them.

ActorUsers (30 d)PlanMain result priceStart fee
autofacts/shopify111Free$0.001 per product$0.00005
autofacts/shopify111Bronze$0.0009 per product$0.00005
autofacts/shopify111Silver$0.0008 per product$0.00005
autofacts/shopify111Gold$0.0007 per product$0.00005
autofacts/shopify111Platinum$0.0007 per product$0.00005
autofacts/shopify111Diamond$0.0007 per product$0.00005
trovevault/shopify-products-scraper105Free$0.001 per result$0.001
trovevault/shopify-products-scraper105Bronze$0.00095 per result$0.00095
trovevault/shopify-products-scraper105Silver$0.0009 per result$0.0009
trovevault/shopify-products-scraper105Gold$0.00085 per result$0.00085
trovevault/shopify-products-scraper105Platinum$0.00085 per result$0.00085
trovevault/shopify-products-scraper105Diamond$0.00085 per result$0.00085
clearpath/shop-by-shopify-product-scraper68Free$0.00249 per product$0.00005
clearpath/shop-by-shopify-product-scraper68Bronze$0.00229 per product$0.00005
clearpath/shop-by-shopify-product-scraper68Silver$0.00199 per product$0.00005
clearpath/shop-by-shopify-product-scraper68Gold$0.00179 per product$0.00005
clearpath/shop-by-shopify-product-scraper68Platinum$0.00179 per product$0.00005
clearpath/shop-by-shopify-product-scraper68Diamond$0.00179 per product$0.00005
lergassy/shopify-store-intel19Free$0.0005 per productnone
lergassy/shopify-store-intel19Bronze$0.00045 per productnone
lergassy/shopify-store-intel19Silver$0.0004 per productnone
lergassy/shopify-store-intel19Gold$0.00035 per productnone
lergassy/shopify-store-intel19Platinum$0.00035 per productnone
lergassy/shopify-store-intel19Diamond$0.00035 per productnone
rl1987/shopify-api-scraper1Free$0.000399 per variant rownone
rl1987/shopify-api-scraper1Bronze$0.0003 per variant rownone
rl1987/shopify-api-scraper1Silver$0.000276 per variant rownone
rl1987/shopify-api-scraper1Gold$0.00025392 per variant rownone
rl1987/shopify-api-scraper1Platinum$0.00025392 per variant rownone
rl1987/shopify-api-scraper1Diamond$0.00025392 per variant rownone
This Actor–All plans$0.00019 per product$0.0005 (only after the first product)

Notes: rl1987 charges per variant row, so a product with several sizes costs several rows there; this Actor charges once per product with all variants included.

What to expect from a run

  • Expected case: clean runs on real, working stores that save several products. That is what the price is designed for.
  • Bad URLs still use some compute: a store that is blocked, isn't a store of this type, has no products, or is closed by robots.txt still takes a few requests (and some run time) before the Actor can tell. It returns no products, and nothing is charged for it: no product fee, and no run fee if no product is saved at all. Each such store is listed with its reason in the ERRORS record and the status message.
  • If every store in a run fails, the run ends with "0 products saved … Nothing was charged."
  • Public data only. It reads the public products feed that Shopify stores serve to everyone. It never logs in, never opens password-protected stores, and never gets past a paywall.
  • robots.txt is checked for every store before any product request. If a store's robots.txt disallows /products.json (or the collection feed), that store is skipped and listed in the ERRORS record. If robots.txt cannot be read because of a server error, the store is skipped too (RFC 9309). A Crawl-delay for all user agents is honoured (up to 30 s).
  • Terms: each store has its own terms of service; some forbid automated copying. You are responsible for checking the terms of the stores you read and for how you use the data. Shopify's own platform terms cover merchants, not visitors reading public storefront pages.
  • No personal data. Products are not people. Descriptions are scrubbed of email addresses and phone numbers. The vendor field is the brand name the store set for the product; it is kept as-is.
  • Requests go one at a time per store, through Apify's datacenter proxy.

FAQ

How do I know if a site is a Shopify store? Just add it. If it isn't one (or the feed is turned off), the run lists it in the ERRORS record as "no public Shopify products feed" and charges nothing for it.

Can I read just one collection? Yes. Paste the collection URL, e.g. https://shop.example.com/collections/sale.

What currency are prices in? The store's main currency. The currency field comes from the store's public /meta.json; it is null if the store hides it, or if the store's robots.txt asks for a crawl-delay above 2 seconds (the Actor then skips that extra request to keep runs fast). Prices are not converted.

Why is available sometimes null? Some stores hide stock in their feed. Then available and availableVariantCount can't be known.

Is the stock number shown? No. Shopify's public feed only says whether a variant can be bought, not how many are left.

Why did a store stop early? Shopify returns 250 products per page. The run stops at your "Max products per store", at the end of the feed, or if the store blocks or rate-limits the requests after retries (shown in the ERRORS record).

Does it get reviews or customer data? No. Only product data.

Where are problems listed? In the run's key-value store, record ERRORS, and in the status message.