Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk3 min

Shopify products.json Pagination: 250 Limit and the 25,000 Cap

The 250 limit is a page size; the 25,000 cap is a separate ceiling on pagination. Here is how to page with the Link header and what to do past the cap.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

On the Shopify REST Admin API, products.json returns at most 250 products per request. The default is 50. To get more, follow the cursor URL in the response’s Link header. The 25,000-object cap is a separate limit. It restricts how far array pagination can go, whatever your page size. If you need more than 25,000 matching objects, you have to narrow the query with filters or move to GraphQL bulk operations.

The two numbers, and what each one controls

Figure What it is Where Shopify states it
50 Default limit for the REST products list REST pagination guide and Product endpoint reference
250 Maximum limit per REST request. Shopify’s wording: “The maximum limit value is 250.” REST pagination guide and Product endpoint reference
25,000 Ceiling on pagination of arrays of objects. Shopify’s wording: “Shopify limits pagination of arrays of objects to 25,000 objects.” GraphQL pagination guide and API limits page
25,001 The value a count query returns to signal the actual count exceeds the cap GraphQL pagination guide

The 250 figure is only a page size. A full traversal can span many pages, up to the overall cap. At 250 per page, 25,000 objects is 100 pages. Shopify says counts are accurate through 25,000. Above that, a count query returns 25,001 rather than the true total, so treat that value as “more than 25,000”, not as an exact number.

As an Amazon Associate I earn from qualifying purchases.

This article covers the Admin API endpoint. The figures come from Shopify’s documentation as read in 2026, not from tests against a live store. Your token’s access scopes and the API version you pin can change what you see, so check the versioned reference for your target version.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to paginate with the Link header

REST pagination is cursor-based. The legacy page parameter returns an error, so you can’t compute page numbers.

  1. Send the first request to a versioned path, such as /admin/api/{api_version}/products.json?limit=250. Choose and verify the version for your app.
  2. Put every filter you need in this first request. Shopify’s guide advises this.
  3. Read the response’s Link header. It carries a rel="next" URL and, where applicable, a rel="previous" URL.
  4. Request the next URL exactly as given. Don’t edit page_info and don’t add or change other parameters by hand.
  5. Stop when a response has no next link.

Shopify says these link URLs are temporary and are meant only for use with the response that produced them. Don’t store them for later runs. If you need to resume a job, restart from a fresh first request.

url = f"https://{shop}/admin/api/{version}/products.json?limit=250&status=active"
while url:
    resp = http_get(url, headers={"X-Shopify-Access-Token": token})
    handle(resp.json()["products"])
    url = resp.links.get("next", {}).get("url")   # follow as-is

The example uses status=active only to show a filter in the first request. Check the endpoint reference for the filters your API version supports.

What happens past 25,000

Under Shopify’s documented cap, ordinary pagination cannot enumerate more than 25,000 matching objects. Shopify points to two remedies.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Narrow the dataset with filters

Split a large catalog into slices that each stay well below the cap, then paginate each slice separately. Shopify recommends filters to keep paginated sets manageable. Range filters have a pitfall. On a sufficiently large collection, a range search can time out or error when the search field differs from the sort order. Shopify’s remedy is to make the sort key match the range field.

Use GraphQL bulk queries

Shopify’s documented route for volumes beyond ordinary pagination is the GraphQL Admin API bulk query operation. It fits full-catalog exports and syncs better than a long loop of page requests.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Why new work should target GraphQL

Shopify states: “The REST Admin API is a legacy API as of October 1, 2024.” It directs developers to build with the GraphQL Admin API. Since April 1, 2025, new public apps must use GraphQL exclusively. An existing REST integration can keep working, but a new public app can’t be built on REST.

Axis REST Admin API GraphQL Admin API
Status Legacy since October 1, 2024 Shopify’s recommended API
Max page size 250 (limit) 250 resources per request (first)
Continuation Link header with opaque page_info after with the previous page’s endCursor, plus PageInfo
Beyond 25,000 Filter into smaller slices Filters, or bulk query operations

The 25,000-object pagination limit is documented in Shopify’s GraphQL pagination guide, so GraphQL connections face the same ceiling. Bulk operations are how you get past it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Checklist

  • Set limit=250 to minimize requests, because the default is only 50.
  • Never build page= parameters or edit page_info.
  • Apply filters and sorting in the first request only.
  • Treat a count of 25,001 as “over the cap”.
  • If a range filter times out, align the sort key with the filtered field.
  • For new apps or catalogs near the cap, plan on GraphQL and bulk queries.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.