What the sources parameter changes
Shopify's beta Catalog API can now return products from brands that don't sell on Shopify. The Shopify developer changelog states that a new sources parameter on the existing search_catalog method controls which products come back. There is no new endpoint to call. If an app leaves the parameter out, nothing changes: results stay limited to Shopify merchant products.
The bigger change is what the catalog can now contain. Shopify documents the Catalog API under the Agents section of its developer docs. That section describes building "agentic shopping experiences powered by Shopify merchants, from product discovery to checkout." After this change, the same catalog can also hold products from brands outside Shopify. Those products are described using data from each brand's own website, and shoppers are sent back to that website to buy. Our read: for brands off Shopify, their PDPs may now feed a Shopify catalog.
sources value | What search_catalog returns, per the changelog |
|---|---|
| Omitted | Shopify merchant products only (the default; existing calls are unchanged) |
["shopify"] | Shopify merchant products only |
["shopify", "external"] | Shopify merchant and external products in the same response |
["external"] | Only brands that don't sell on Shopify |
The changelog sets three limits on scope. First, get_product returns an external product when given its ID. Second, lookup_catalog support is "coming later," with no date. Third, during the beta, external products only appear for shoppers in the United States. Shoppers in other countries still get Shopify merchant products only. The changelog does not say when the parameter became available.
What an external product includes, and what it leaves out
Per the changelog, every external product includes a description, an image, a price and a link to the brand's product page. The shopper finishes the purchase on the brand's own site. That is a small set of fields, and what is missing matters as much as what is there.
| Attribute | What the changelog says |
|---|---|
| Description | Included |
| Image | Included |
| Price | Included |
| Link to brand's product page | Included; the purchase happens on the brand's site |
eligible.native_checkout | Always false; can't be bought through Shopify checkout |
| Promoted Placements commission | Not earned |
| Availability or stock status | Not mentioned |
| Data source (beta) | Each brand's website |
| Shopper location (beta) | United States only |
The changelog says nothing about how external products rank against Shopify merchant products when an app asks for both. In practice, we expect the checkout flag to create two tiers in the results. An app or agent built to finish purchases inside its own flow can keep an eligible Shopify merchant product in that flow. For an external product, it has to send the shopper to another site. Systems tuned for completed sales may favor the products they can actually check out. This is our guess about how apps will behave. Shopify has not said it.
What it means for ecommerce brands on and off Shopify
Brands that don't sell on Shopify
This opens a new path to shoppers through Shopify-powered search and recommendation apps, without moving to Shopify checkout. The reach is limited. Only apps that opt in to external sources will show these products, only to US shoppers, and only under the beta's current sourcing model. The changelog doesn't name any other platform. It says only "brands that don't sell on Shopify" and "each brand's website." It doesn't say whether a brand that sells only through a marketplace, with no product pages of its own, counts. We would not assume it does.
Shopify merchants
No action is required. The changelog states that existing search_catalog calls work without changes. The competitive effect is indirect. If an app switches to ["shopify", "external"], its results mix in non-Shopify products where they used to be Shopify-only. Every external product returns with a price, so price comparisons in those apps can now include brands on other stacks. In our view, the merchant's main advantage is checkout eligibility, and how much exposure changes depends on how many apps adopt the parameter. For how Shopify exposes merchant pricing to agents, see our analysis of the Catalog API list_price field.
The brand's website as source data
The changelog's only statement about sourcing is that, during the beta, external product data comes from each brand's website. It doesn't say how Shopify collects it. That could be crawling, Product JSON-LD, merchant feeds or something else, and the changelog confirms none of these. It also doesn't say whether PDP structure, schema markup or robots.txt settings affect inclusion or ranking.
Our hypothesis: if Shopify builds each external product from the brand's site, the easiest PDPs to represent accurately are the ones with a clear text description, a primary image, a price in the page's HTML and markup, and a stable canonical URL. Those four things match the four fields the changelog says every external product returns. A page that only shows the price after JavaScript runs, or whose canonical URL changes with tracking parameters, is plausibly harder to turn into a clean product record. Treat this as a precaution, not a known ranking factor.
The same basics already matter for the AI engines that cite products, so the work is useful either way. See how AI engines pick which products to cite and our walkthrough on fixing product schema for AI search.
What Shopify has not said yet
The changelog leaves most of brands' likely questions open. The linked docs on catalog sources and the Global Catalog MCP tools may have more detail. They were not part of the material this analysis is based on.
- Collection method. Crawling, structured data, feeds or another approach.
- Eligibility. Which brands or sites qualify, and whether there is a size, category or quality bar.
- Control. Whether a brand can opt in, opt out, claim or correct its external product data.
- Ranking. How external products are ordered against Shopify merchant products when both are returned.
- Freshness. How often prices are refreshed, and whether availability is tracked at all.
- Marketplace-only brands. Whether a brand without its own product pages can appear.
- Timeline. When
lookup_catalogsupport arrives, when results reach shoppers outside the US, and when the Catalog API leaves beta.
What to do this week
- Shopify merchants: nothing needs to change. List the on-site search and recommendation apps on your storefront that use the Catalog API, and ask their developers whether they plan to turn on external sources.
- Brands off Shopify: check a sample of PDPs for the four fields the changelog lists. Each page should have a text description and a primary image, show the price in both the HTML and the Product markup, and resolve to a single canonical URL.
- Brands off Shopify: keep product URLs stable. The changelog says shoppers go to the brand's product page to buy, so a redirected or retired URL could break that step.
- App developers: to include external products, set
sourcesto["shopify", "external"]or["external"]onsearch_catalog. Checkeligible.native_checkoutbefore offering Shopify checkout. Handle external product URLs so shoppers land on the brand's site. - App developers: plan around the beta limits. Shoppers outside the US get Shopify merchant products only.
lookup_catalogdoesn't support external products yet, so lookup flows may need to fall back toget_productby ID. - Agencies: tell clients on WooCommerce, BigCommerce, Adobe Commerce or headless stacks to watch this, not start a project. Until Shopify explains how it reads brand websites, PDP quality is the only thing they control, and it helps with AI search either way.
The strategic read
Our read is that Shopify is splitting the catalog from checkout. Discovery now reaches brands off Shopify. Checkout and Promoted Placements commission stay limited to Shopify merchants. Apps and agents get a more complete product index, and Shopify's commercial incentives stay tied to its own merchants.
For brands off Shopify, the point is that during the beta this catalog draws on their own website, not a channel listing. That makes the PDP's machine readability more important, which is where AI search is already heading. For Shopify merchants, checkout eligibility becomes an advantage when results are mixed. That ties this change to Shopify's wider agent-checkout work, including buyer consent in Checkout MCP and Cart MCP.
How far this reaches depends on adoption. A US-only beta with lookup support still pending is an early capability. Its effect on any brand will depend on how many apps turn on external sources. For more on how Shopify's catalog access is changing, see our coverage of the Global Catalog REST API shutdown and our agentic commerce glossary entry.
Frequently asked questions
Do Shopify merchants need to change anything because of the Catalog API sources parameter?
No. Shopify's changelog states that if sources is omitted, results stay limited to Shopify merchant products and existing search_catalog calls work without changes. Apps that opt in to external sources may show non-Shopify products next to merchant products.
Can shoppers buy external products through Shopify checkout?
No. Per the changelog, external products always return eligible.native_checkout: false. Each one includes a link to the brand's product page, and the shopper completes the purchase on the brand's own site. External products also don't earn Promoted Placements commission.
Where does Shopify get external product data?
The changelog states that during the beta, external product data comes from each brand's website. It does not say how that data is collected, whether by crawling, structured data, feeds or another method, or which signals affect inclusion.
Are external products available to shoppers outside the United States?
Not during the beta. The changelog states that external products only return when the shopper is in the United States. Searches for shoppers in other countries continue to return Shopify merchant products only. No timeline for other countries is given.
Which Catalog API methods support external products?
Per the changelog, search_catalog supports them through the sources parameter, and get_product returns an external product when passed its ID. lookup_catalog support is described as coming later, with no date.
Ask AI about this
Ask an AI engine to explain the Catalog API change, then check our read against Shopify's own documentation.