Shopify Store Product & Price Extractor avatar

Shopify Store Product & Price Extractor

Pricing

from $0.50 / 1,000 product rows

Go to Apify Store
Shopify Store Product & Price Extractor

Shopify Store Product & Price Extractor

Extract every product, variant, SKU and price from any public Shopify store. One row per variant, CSV or JSON.

Pricing

from $0.50 / 1,000 product rows

Rating

0.0

(0)

Developer

Nicolas

Nicolas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull the entire public catalogue of any Shopify store — every product, every variant, every SKU, every price — into a spreadsheet you can open in Excel or push into your own database.

Give it a store address. Get back one row per variant.

What people use it for

Watch a competitor's prices. Run it on a schedule and you have a price history: what they charge, what they discount, what they mark as sold out, and when any of that changes. The compare_at_price column tells you the sticker price they are discounting from, so you can see the real depth of a promotion instead of guessing.

Check your own catalogue. Missing SKUs, products with no image, variants that quietly went out of stock, price typos with a stray zero. Easier to spot in a spreadsheet of 4,000 rows than in the Shopify admin.

Size up a market before entering it. Run it across 30 stores in a niche and you have a picture of the price bands, the product types, and how deep each brand's range goes.

Build a supplier or dropshipping catalogue. Product titles, handles, images, weights and prices in one file, ready to map into your own store.

Feed a comparison site or a deal alert. Fresh prices every morning, no manual copying.

What you get back

One row per variant by default. Here are five rows from a real run, trimmed to fit:

store_domainproduct_titlevariant_titleskupricecompare_at_priceavailable
trailhead.comMerino RunnerUS 9 / GreyTR-MR-9-GY128.00148.00true
trailhead.comMerino RunnerUS 10 / GreyTR-MR-10-GY128.00false
trailhead.comMerino RunnerUS 11 / BlackTR-MR-11-BK128.00148.00true
trailhead.comTrail CapDefault TitleTR-CAP32.00true
trailhead.comAlpine ShellS / StormTR-AS-S-ST245.00245.00true

Full field list:

FieldWhat it is
store_domainThe store the row came from. Lets you run many stores into one file.
product_id, product_title, handleShopify's own product identifiers and name.
product_urlDirect link to the product page.
vendor, product_type, tagsHow the store itself classifies the product.
variant_id, variant_title, skuThe specific size / colour / option and its stock code.
priceCurrent selling price.
compare_at_priceThe "was" price. Empty when the item is not on sale.
availabletrue / false — whether that exact variant is in stock right now.
gramsShipping weight, when the store publishes it.
image_urlFirst product image.
product_published_at, variant_updated_atWhen it went live and when it last changed.
source_url, collected_at, collection_method, record_hashWhere each row came from, when, and a stable fingerprint so you can dedupe against your own data.

Download as CSV, JSON, Excel or XML, or pull it straight from the Apify API.

A note on currency: Shopify's public catalogue does not publish a currency code, so prices come back as plain numbers in the store's own currency. If you are comparing across countries, set the currency per store on your side.

Settings

SettingDefaultWhat it does
Shopify store URLsOne or more store addresses. Paste the homepage, custom domains included.
One row per variantOnOff gives you one row per product instead, using the first variant's price.
Only items in stockOffOn drops sold-out variants.
Max products per store10000 means the whole catalogue. This is your cost dial.
Requests per second1Polite by default and works everywhere. There is rarely a reason to raise it.

What it costs

Pay per event — you pay for what a run actually produces, not for time:

EventPrice
Run started$0.01
Store processed$0.02
Row returned$0.0005

A 2,000-row catalogue from one store costs about $1.03. Ten stores at 500 rows each is about $2.71. A run that finds nothing costs a cent.

Good to know

  • This reads public data only. It uses the same public product endpoint your browser hits when it loads a store's collection page. Nothing behind a login, no customer data, no orders.
  • It respects robots.txt. If a store asks crawlers to stay out, this actor stays out and tells you which store it skipped, rather than pretending the store has no products.
  • Sites that are not on Shopify are reported, not hidden. Add a URL you are unsure about; it comes back in the run's SKIPPED record with the reason.
  • Rate limited on purpose. One request per second per store by default.
  • It is cheap to run because it is simple. No headless browser, so no browser-sized bill.

Questions or a broken run?

Open an issue on the actor and I answer within 12 hours. If you need this shaped differently — a specific set of stores on a weekly schedule, delivered as a file to your inbox or a Google Sheet — that is what I do: rowcrate.com.