Web Product Scraper

Shopify products.json:
the product feed every store publishes.

Almost every Shopify store publishes its products as a public JSON feed. This guide explains what is in it, what is not, how to page through it, and how to turn it into an Excel sheet, by hand or without writing any code.

Add to Chrome, it's free No account · no server · nothing leaves your browser
Excel export preview in the Web Product Scraper sidebar: the first five product rows with code, name, SKU, price and image URLs

What is products.json on a Shopify store?

It is a public, read-only JSON feed that Shopify serves for an online store. Add /products.json to the store address, or /collections/NAME/products.json for one collection, and you get the published products as structured data: title, handle, vendor, product type, description, tags, variants with prices and SKUs, and full-size image links.

  1. Open the store in your browser.
  2. Add /products.json to the address, for example shop-name.com/products.json.
  3. Add ?limit=250 to get the most products per page; 250 is the largest page the feed allows.
  4. Add &page=2, &page=3 and so on for the next pages, until a page comes back with fewer products.
  5. For one collection, use /collections/NAME/products.json with the same limit and page settings.

What each product entry contains

The same fields for every product, whatever the theme.

Title and handle

The product name, and the handle: the last part of the product address, as in /products/HANDLE.

Vendor and product type

The brand or supplier name the shop entered, and the product type it uses to group products.

Description

The full description as HTML, with the formatting tags the shop used.

Variants

One entry per size, colour or option: price, compare-at price, SKU, the option values, and whether it is available.

Images

Links to every product image at its original size, in the shop's order.

Tags and dates

The product tags, and when it was created, published and last updated.

What it does not contain

No stock counts. A variant says whether it is available, not how many are left.

No currency. Prices are plain numbers in the store's currency; the currency is shown on the store's pages, not in the feed.

Only published products. Drafts, archived products and password-protected stores are not in it.

No reviews or extra fields from apps. Reviews, size charts and custom fields usually come from apps and are not part of the feed.

Some stores do not serve it at all: a store built on a custom (headless) storefront may answer with an error instead.

From products.json to Excel without code

This is what Web Product Scraper does on a Shopify collection page.

Open a collection

Open any collection page of the store and click the extension icon.

It reads the feed

It fetches /collections/NAME/products.json 250 products at a time, up to 1,000 products per collection. When a store has no feed, it reads the product cards on the page instead.

It flattens the variants

One row per product: the lowest variant price, the highest compare-at price above it as the MRP, the first SKU found, the vendor as brand and the product type as category. The currency comes from the page.

Download

Excel, CSV or JSON, or a ZIP with every image in a folder per product, named after it.

Doing it yourself

If you write code, a short script does the same: request the feed page by page with limit=250 until a page returns fewer than 250 products, then write one row per product or per variant. Pause between requests.

The work is in the details: choosing which variant's price to show, turning the description HTML into text, and downloading the images. The extension does those for you and needs no setup.

Can a store owner hide products.json?

There is no simple setting in the Shopify admin to switch it off, which is why the question comes up on Shopify's own community forum. The feed shows only what the store already shows to every visitor: published products, their prices and their photos.

Using it is still your responsibility. Read the store's terms, take only what you need, and keep a pause between requests.

Frequently asked questions

Is products.json the same as the Shopify API?

No. The Admin API needs the store owner's permission and returns everything, including stock and unpublished products. products.json is the public storefront feed: read-only, published products only.

Why does /products.json show only some products?

The feed is paged. Add ?limit=250 for the largest page and &page=2, &page=3 for the rest.

Can I get one collection instead of the whole store?

Yes: /collections/NAME/products.json, where NAME is the last part of the collection's address.

Does the extension need products.json to work?

No. It uses the feed when a Shopify collection has one, and reads the product cards on the page otherwise, so it also works on other platforms.

Add to Chrome, it's free