Unadhi Guides

How to export a Shopify or WooCommerce store's product list to CSV (for price tracking)

Updated 13 Oct 2026 · Disclosure: the Apify Actor mentioned in option 3 is built and published by Unadhi.

Short answer: most Shopify shops publish their catalogue at /products.json, and most WooCommerce shops at /wp-json/wc/store/v1/products. Open that URL, or let a scraper read it for many shops at once and give you a CSV.

Doing this by hand every week gets old.

Real example: the copy-paste inputs and sample output on this page show exactly what you get. It checks robots.txt and each shop's terms, and skips shops that forbid scraping.

Free during launch: the Shopify & WooCommerce Product + Price Tracker on Apify charges nothing itself; you pay only Apify platform usage. Built by Unadhi (disclosure).

Low risk: run it on one site first and check the rows before you scale.

Try the Shopify & WooCommerce Product + Price Tracker on Apify →

Who this is for

Sellers watching competitor prices, agencies auditing a client's catalogue before a migration, and anyone who needs a product list from a shop they don't own the admin login for. If it's your own shop, use the built-in export in your admin first; it's free and complete.

Option 1: Shopify's products.json (free, one shop)

  1. Take the shop's address, for example https://example-shop.com.
  2. Add /products.json?limit=250 and open it in your browser.
  3. If you see JSON, the shop's public catalogue is readable. Add &page=2, &page=3 and so on until a page comes back empty.
  4. Paste the JSON into a JSON-to-CSV converter, or load it in Google Sheets with a script.

Some shops switch this endpoint off or put it behind a bot check. If you get an error page, respect that and stop.

Option 2: WooCommerce Store API (free, one shop)

Open https://example-shop.com/wp-json/wc/store/v1/products?per_page=100. Add &page=2 for the next page. Prices come back in the shop's minor units (for example paise or cents), so divide by 100 where needed.

Option 3: many shops at once, straight to CSV

Doing this by hand for 20 competitors every week gets old. Our E-commerce Product Scraper on Apify tries Shopify products.json, then the WooCommerce Store API, then schema.org data on the page, and gives you one row per product: title, brand, price, currency, sale price, stock, SKU/GTIN, variants and images.

{
  "startUrls": [{ "url": "https://competitor-one.com" }, { "url": "https://competitor-two.com" }],
  "maxProductsPerShop": 500
}

When the run finishes, download the dataset as CSV or Excel from the run page, or by API:

curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&token=<YOUR_APIFY_TOKEN>" -o products.csv

To track prices, schedule the same input daily in Apify and compare the price column between runs. Current pricing is shown on the Store page; Apify's free monthly credit covers small test runs.

What it won't do

Related

Need the shop's contact email or WhatsApp too? The Contact Details Scraper returns role emails, phones and social links per website. Inputs and code samples for both are in this guide.

When the free way stops being enough

Try the Product Scraper

← All guides

Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.