BlogOpen Source

We Open-Sourced a Free Shopify Store Scraper

MEMehul JalondharaSeptember 12, 20263 min read
Target site
Render + bypass anti-bot
Extract fields
Clean + normalize
Deliver: sheet or API
How every DataScrape feed runs, end to end.

What we built

We open-sourced a Shopify store scraper: a single Python file, MIT licensed, on GitHub at github.com/mrmehul789/shopify-store-scraper. Point it at any Shopify store URL, a custom domain or a myshopify.com address, and it downloads the full product catalog to JSON and CSV with one command. No API key, no login, no paid service.

We use this kind of tooling in our own work, and Shopify data comes up often enough in e-commerce that a clean, free version felt worth sharing.

Why Shopify is the easy case

Every Shopify store exposes its catalog on a public JSON endpoint. Add /products.json to a store's root domain and you get a paginated feed of products, each with variants, prices, SKUs, availability, options, and images, as structured JSON with no HTML parsing needed. A single product sits at /products/{handle}.json, and a live price and stock check for one variant at /variants/{id}.js. This is public data, the same a shopper's browser loads, which is why pulling a Shopify catalog is genuinely straightforward.

We keep this live for you

The prices, stock, and reviews behind posts like this change constantly. We track them for you on a schedule you set, delivered clean.

Get a free sample

What the tool does

The scraper resolves any store URL to its underlying myshopify.com domain, reads the store currency, and confirms the site is really Shopify, then paginates /products.json to grab every product and variant. It can also pull collections, fetch a single product by handle, or check a live variant price and stock. It exports raw JSON or a flat CSV with one row per variant, ready for Excel or Google Sheets.

Under the hood it tries several HTTP clients in order, with TLS fingerprinting for stores behind bot protection, retries on transient failures, optional proxy rotation, and polite rate limiting. It also runs on the Python standard library alone if you install nothing extra.

How to use it

Clone the repo and run it against any store:

python shopify_scraper.py gymshark.com

That writes the full catalog to a JSON file. Add -f both -o out/ to also get a CSV, --collections to include collections, or --check to just confirm a URL is a Shopify store and print its name, domain, and currency. There is a small Python API too if you want to call it from your own code, and the full options and examples are in the README.

Where it stops, and where we come in

Pulling a catalog once is the easy part, and Shopify makes it easy on purpose. The harder, more valuable work starts after that: watching a set of competing stores on a schedule and catching every price change and restock the moment it happens, matching products across stores, cleaning and validating the data, and keeping it all running as catalogs grow and stores add protection. That scheduled monitoring is the service we run for clients. The scraper is the free starting point. If you want the changes that matter delivered to you without running any of it yourself, that is what we do.

The takeaway

Shopify catalogs are openly readable through /products.json, and our free open-source tool turns that into a full JSON or CSV export in one command. The scraper is free; the ongoing monitoring is the part worth paying for.

Frequently asked questions

Want this kind of data for your business?

We build the monitoring, you get the clean feed. Start with a free sample of your own target.

Get a Free Sample