lunalink.ai
← lunalink.ai blog
October 25, 2026 · The lunalink.ai team

Should you trust a Shopify catalogue export that stops at 250 products?

Hands typing on a laptop showing an e-commerce website in a modern office setting.
Photo by Shoper .pl on Pexels

Your product export says it found 250 products. That can feel reassuring if the file opens cleanly and the first few rows look right.

It is not enough.

A catalogue that stops at exactly 250 products may be complete. It may also be the first page of a larger catalogue. The difference matters when you are moving products, checking what search engines can see, feeding a reporting tool, or asking software to review your store.

The useful question is not, “Did I get an export?” It is, “What did this export include, and did it ask for the next page?”

Why 250 should make you look twice

Shopify uses pagination in several places. Pagination means Shopify sends a set number of records at once, then provides a way to request the next set.

For Shopify’s GraphQL Admin API, the maximum is 250 resources per page. A proper catalogue reader checks `hasNextPage`, takes the `endCursor`, and requests the next page until there are no more pages.

The REST Admin API works in a similar way. It returns up to 250 results per page, with 50 as the default. The response includes a `Link` header with the URL for the next page. If software reads the first response and ignores that link, it has only read one page.

The Storefront GraphQL API also paginates products. It uses fields including `first`, `after`, and `pageInfo`. An exporter that requests 250 products and never checks `hasNextPage` has not proved it found the whole catalogue.

So 250 is not a reassuring number by itself. It is a number worth investigating.

We found this in our own catalogue reader

We ran into this while building our own `llms.txt` builder.

The builder needed to read a Shopify catalogue, not just the first part of one. Shopify’s `/products.json` returns at most 250 products per page. At first, a read can look complete. You have product titles, handles, images, and prices. Nothing visibly fails.

But a store with more than 250 products quietly becomes a partial catalogue unless the reader handles pagination.

That is the awkward part of this kind of bug. The output often looks believable. It may contain the store’s bestsellers, newest products, or products that happen to appear first. Missing products do not arrive with a warning label.

We handled the pagination rather than assuming the first response was the catalogue.

That is the standard to apply to any export or tool: it should either retrieve every page or clearly tell you that it did not.

A Shopify CSV export is different from an API page

Do not mix up the Shopify admin export screen with an API response.

In Shopify’s product export tool, you can choose:

  • Current page
  • All products
  • Selected products
  • Products matching search filters

If you choose Current page, a smaller file is expected. You asked Shopify to export what is on that page.

If you choose Selected products or filtered products, the file is only as complete as your selection or filter.

If you need the whole catalogue, choose All products. Shopify’s documentation does not say that an “All products” CSV export has a 250-product maximum.

Shopify does note that exports with thousands of variants can time out. Its suggested fix is to split the export using filters. That is a different problem from an API reader stopping after its first page.

In short: a CSV with 250 products is not automatically wrong. But you need to know which export option created it.

Check this in under a minute

Open Shopify admin and go to Products.

Start a product export. Before you download anything, look at the option selected in the export dialog.

If it says Current page, the file is not intended to be a full catalogue unless your store only has that page of products.

If it says Selected products, check whether you selected every product.

If it says Products matching search filters, check the active filter. A collection, status, vendor, tag, or search term may be narrowing the result.

If you want the complete product list, select All products.

Then keep a simple record of what you exported and why. “All products, exported from Shopify admin” is much more useful than a file named `products-final.csv` six months later.

Ask better questions when software gives you a count

A tool saying “250 products found” is not necessarily broken. It may have been designed to inspect one page. But it should be able to answer a few plain questions.

Ask:

  • Did you read every page of products?
  • What happens after the first 250 results?
  • Do you check `hasNextPage` and `endCursor`?
  • If you use REST, do you follow the next-page `Link` header?
  • Can you tell me when the read stopped?
  • Does the count reflect all products or only products visible through a filter?

You do not need to write code to ask those questions. A good provider should answer them clearly.

If the answer is vague, treat the output as a sample rather than a full inventory.

This matters beyond reporting. A partial catalogue can leave gaps in product feeds, internal search reviews, content checks, AI-readable product files, and migration work. The missing products are often the ones nobody notices until a customer looks for them.

For large catalogues, use the right route

If you are building software against Shopify’s Admin GraphQL API and need a large dataset, Shopify recommends GraphQL bulk operations.

A bulk operation runs asynchronously. `bulkOperationRunQuery` produces a downloadable JSONL file, provides an `objectCount`, and keeps the result URL available for seven days.

That can be a better fit than making page after page of requests when you need a full catalogue for a larger job.

But bulk export does not remove the need to check scope. You still need to know what your query asked for. A complete download of the wrong subset is still the wrong dataset.

There is one more export type worth separating from a normal product export. A Markets catalog CSV export is created from Markets > Catalogs and is emailed when it is ready. It includes fixed prices, but excludes products using only a percentage price adjustment. Do not use it as proof that you exported every product and price configuration in the store.

Treat round numbers as a prompt, not proof

A catalogue count of 250 is not a diagnosis. It is a clue.

It may mean your store has 250 products. It may mean you chose Shopify’s Current page export. It may mean a developer set an API page size to its maximum and did not fetch another page. It may mean the tool intentionally reviewed a subset.

The resolution is simple: check the export scope, then check whether the system follows pagination.

If you are passing catalogue data to another person or tool, include that information with the file. Say whether it came from Shopify’s All products export, a filtered export, or an API read that continued until no pages remained.

That small note prevents a lot of confident work on incomplete data.

Sources

shopifycataloguedatastore operations

See how AI assistants actually read your store — a free 30-second scan, no install and no signup.

Check my store