Catalog API / beta

Catalog API search results
can now include products from brands that don't sell on Shopify

search_catalog now has a new sources parameter that returns Shopify merchant products and external brand products in a single response. If you don't specify it, behavior is unchanged, so existing calls need no changes.

On this page
  1. What's changing (30-second overview)
  2. How it works: sources controls what's returned
  3. The 3 sources patterns
  4. Characteristics of external products
  5. Eligible apps and beta limitations
  6. How to adopt it (3 steps)
  7. 5 key points for developers
  8. 3 practical use cases
  9. One-line summary for proposals

1What's changing

Until now, Catalog API (beta) search results included only Shopify merchant products.
Now, by adding the sources parameter, you can also returnproducts from brands that don't sell on Shopifyin the same response.

Before: Shopify merchant products only

search_catalog results are limited to products sold on Shopify.sources is omitted, this behavior stays the same going forward.

Now: external brand products are an option

["shopify","external"] returns both;["external"] returns external brands only. No new endpoint is needed.

2How it works: sources controls what's returned

Your app Site search / Recommendations search_catalog sources: [ ... ] Just add an argument to the existing method Omitted / ["shopify"] Shopify merchant products only (unchanged) ["shopify", "external"] Merchant products + external brand products ["external"] Only brands that don't sell on Shopify
There's no new endpoint. The existing search_catalog method just needs sources added.
The ID-based get_product also returns external products when you pass an external product ID.lookup_catalog support is listed as "coming later."

3Three sources patterns

sources valueProducts returnedImpact on existing code
Omitted or ["shopify"] Shopify Merchant products only No changes needed (same behavior as before)
["shopify", "external"] Shopify + External Both You need to handle external products (e.g., their link destinations)
["external"] External Only brands that don't sell on Shopify Same as above

Support by method

Supported

search_catalog

sources parameter lets you include external products.

Supported

get_product

Returns external products when you pass an external product ID.

Coming later

lookup_catalog

Only listed as "coming later." No timeline given.

4Characteristics of external products

Description
description
Images
image
Price
price
Link to the brand's product page
Purchased on the brand's own site
Shopper (US) Selects an external product native_checkout: false Can't be purchased through Shopify checkout Not subject to Promoted Placements fees either Redirects to the brand's own site Complete the purchase there
External products are always eligible.native_checkout: false. They can't be purchased through Shopify checkout, andno Promoted Placements commission is charged.

5Affected apps and beta limitations

Affected apps

Apps that use the Catalog API for on-site search or recommendations and want to include products from brands outside Shopify.

US

US shoppers only

External products are returned only when the shopper is in the US. In other countries, only Shopify merchant products are returned.

Data comes from brand websites

During the beta, external product data is sourced from each brand's website.

Shoppers outside the US, including Japan, won't see external products. General availability timing, country expansion, and data refresh frequency are not stated.

6How to adopt it (3 steps)

1

Decide your approach

If you only need Shopify products, no action is required. Existing search_catalog calls keep working as-is.

2

Add sources

For both, use ["shopify","external"]; for external brands only, use ["external"] in your request.

3

Check link handling

If you link to product detail pages, make sure external products correctly send shoppers to the brand's own site.

Opt-in, so it's backward compatible. If you do nothing, behavior stays the same. Your app explicitly chooses whether to show external products.

75 key points for developers

OPT-IN

1. Defaults are unchanged (backward compatible)

sources When omitted, it behaves the same as ["shopify"] . No regression risk for existing implementations.

true false

2. Branch on native_checkout

External products always have eligible.native_checkout: false. The simplest approach is to use this flag to decide whether to show add-to-cart and Shopify checkout flows.

3. Account for external URLs in PDP links

External products link to the brand's product page. Hardcoding links to your own PDP route will break them, so review how you handle URLs.

US

4. Results vary by region

External products are returned only to US shoppers.["external"] only: what's returned outside the US (e.g., whether results are empty) isn't stated. Verify in testing.

5. Support varies by method

search_catalog and get_product(by external product ID) is already supported, whilelookup_catalog will be supported later.For now, avoid designs that rely on lookup_catalog to handle external products.

83 use cases you can apply to your business

USE CASE 1

Improve catalog coverage in search and comparison apps

Challenge
Your app offers product search through the Catalog API, but results are limited to Shopify merchant products, so the brands shoppers are looking for sometimes don't show up.
Approach
search_catalog set to sources: ["shopify","external"] so products from brands outside Shopify appear in the same result list.
Impact
Search coverage widens for US shoppers, reducing drop-off from "couldn't find it" moments.
Technical note
External products are native_checkout: false , so the card UI should show a different CTA, such as "Buy on brand site".
Shopify Add to cart External External link
USE CASE 2

Design separate purchase flows when updating an existing app

Challenge
Once external products are mixed in, a UI that assumes your own PDP and add-to-cart button breaks down for those products.
Approach
Branch on the response's eligible.native_checkout field:true keeps the existing flow, whilefalse switches to a link to the brand's product page.
Impact
Even when Shopify and external products are mixed, shoppers can reach the right place to buy without confusion.
Technical note
Reviewing link handling is also called out explicitly as an action item in the official "What to do" section.get_product lookups of external product IDs should go through the same branch.
Measure by sources
USE CASE 3

Validate the value of including external products step by step

Challenge
External products can't be purchased through Shopify checkout and don't generate Promoted Placements fees, so it's hard to tell whether including them helps your app's revenue.
Approach
For only a subset of US shoppers, set sources to include external , keep it omitted for everyone else, and compare the results.
Impact
You can compare search satisfaction and click-through rates, along with the impact on purchases of Shopify products, before deciding whether to roll it out fully.
Technical notes
Switching is just a matter of adding or removing a parameter, so implementation cost is low. Design with the assumption that the beta is limited to the US.

9One-line summary for proposals

"In the Catalog API's search_catalog , just add sources to show products from brands outside Shopify in search results too (beta, US only).
Existing calls need no changes, and external products use native_checkout: false to send shoppers to the brand's site.
When adopting it, you only need to handle the purchase flow and which link destination to show."