I’m working on fetching product data from a Shopify store using their REST API. Currently I’m making requests to the standard products endpoint:
{SHOP_URL}/products.json
However, this only returns a subset of the store’s inventory, not the complete catalog. I tried increasing the limit parameter significantly:
{SHOP_URL}/products.json?limit=50000000
This gives me more results but still doesn’t capture everything. I’m using fetch for my HTTP requests. The store definitely doesn’t have millions of items, so I’m confused why I can’t pull the full inventory.
Does anyone know what causes this limitation? Is there a proper method to retrieve all products, including their variants and additional details, from a Shopify store’s API?
same problem! that 250 limit is really annoying! i used the cursor pagination method with page_info too. just keep fetching until the headers show no next page. it took me around 15 calls for my full catalog, but it works!
Had the exact same issue when I built my inventory system six months ago. The 250 product limit isn’t documented anywhere obvious, which is super confusing. I fixed it with a simple while loop that keeps fetching until you get fewer than 250 products back or the Link header doesn’t have a next page URL. Watch out for rate limits though - you can only hit 2 requests per second with the REST API, so throw in a small delay between requests or you’ll get throttled. If you need real-time updates, use webhooks with your initial sync instead of constantly pulling the whole catalog.
The limit is hardcoded at 250 products max regardless of the parameter used. I faced this same issue last year while building a sync tool. The API ignores any limit beyond 250, which explains why your request isn’t returning everything. You will need to implement cursor-based pagination with the page_info parameter. After each API call, check the Link header for the next cursor. Continue fetching until you encounter an empty products array. This method will allow you to retrieve all items, including variants and metadata, without exceeding rate limits.
Shopify’s REST API caps at 250 products per request no matter what limit you set. I wasted hours trying different values before figuring this out. You’ll need pagination - use page_info for newer API versions or since_id for older ones. Make your first request, grab the pagination token from the response headers, then keep hitting the API until you get empty results or no more tokens. It’ll pull your whole catalog eventually, but expect multiple calls depending on how much inventory you’ve got.
yeah, like they said, shopify paginates results. look for the Link header in the response for the next page. you gotta keep fetching those pages until u pull all the products. it’s a bit of a pain but works!