Shopify products.json Pagination: 250 Limit and the 25,000 Cap
To paginate a Shopify store's public /products.json , request ?limit=250&page=1 , then page=2 , and so on until the response is {"products":[]} . 250 is the most products you can get per page. Asking for more is silently clamped to 250, and leaving limit out gives you 30. Pagination also stops at 25,000 products: once page × limit goes past 25,000, the store returns HTTP 400 "Page * Limit exceeds…
Shopify s storefront API allows paginated retrieval of products via the /products.json endpoint. Each page can contain up to 250 products, with pagination controlled by the page number parameter. If more than 25,000 products exist, pagination stops once the page * limit exceeds 25,000, returning an HTTP 400 error. The API does not paginate by cursor, so an empty products array signals the end of results.
Each product object includes its ID, title, handle, and other standard fields like vendor, type, tags, variants, images, and variants. Variant details such as ID, title, options, SKU, shipping information, and pricing are also included within the variant array for each product. Notably, product price and stock status are stored within the variant object, not the product itself.
The API endpoint is accessible without authentication, but a store owner's access token is required for programmatic access. Unlike the authenticated Admin API, which uses HTTP headers for pagination and includes a total count and cursor, the public storefront API relies on page numbers. An empty products array is the sole indication that all products have been retrieved.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.