com.trychannel3.catalog.global adds Channel3-specific fields on top of standard UCP catalog: store filters, seller details, URL lookup, and our id formats.
It’s listed in the profile and works with search, lookup, and get_product.
New here? Start with the overview or quickstart.
Request extensions
catalog.urls[] (lookup only)
lookup_catalog accepts store product page URLs in catalog.urls[], as well as product ids in catalog.ids[]:
POST /v1/lookup. If we can’t find the URL, you get messages[] with code: "not_found".
Put page links in urls[], not ids[]. If a URL ends up in ids, we return use_catalog_urls.
catalog.filters
Extra filters on top of UCP categories and price. Filters combine with AND; multiple values in one field combine with OR.
price.min and price.max are in cents (minor units). Example: 9995 means $99.95 USD.
catalog.context
The base spec defines context as buyer signals. We honor:
catalog.placements (opt-in)
Set catalog.placements: ["affiliate"] to have variants carry a placement object with the commission earned on a converted sale. Requires a Token-tier API key — anonymous callers (no key or invalid key) never receive commission data. Omit the field (or pass []) and responses are unchanged.
Response extensions
products[]
Standard UCP product fields, plus Channel3 metadata. Buy and store links live on variants[] only (same as Shopify — products[].url is omitted).
options and selected (get_product)
Standard UCP fields for variant selection (color, size, etc.). Returned on get_product only — not on search or lookup.
See Get product for
catalog.selected and catalog.preferences.
products[]
A UCP products[] entry is a Channel3 product (one product across all stores). Per-store listings are in variants[] — when several stores sell the same product, each store’s offer is its own entry in variants[], so multiple offers for one product are multiple variants, not a nested list:
variants[] (per-store listings)
Each variant is one store’s listing of the product:
Commissions / placements
Placements are in preview and mirror Shopify’s catalog
placement shape, so agents that already read commissions from a Shopify catalog read Channel3’s identically. Fields may change.catalog.placements: ["affiliate"] on a Token-tier key, monetizable variants carry a placement:
- Absent ≠ zero. A variant without
placementhas no disclosed commission (offer not monetizable, or you didn’t opt in) — don’t treat a missingplacementas 0%. - Commission is the vendor’s net share after Channel3’s cut. Actual payout depends on the merchant program and locale; treat the value as an estimate.
Product ids
We use two id formats:- Product id (e.g.
HvGOfxD) - one product across all stores - Variant id (e.g.
HvGOfxD:lGBj:01KJ38CXYZ9CJ8K2Y9HDYQ8DXT) - one store’s listing:product:store:sku
catalog.ids[] and get_product. https://buy.trychannel3.com/... links also work in ids.
Messages
messages[] entries we emit:
Versioning
Current version:2026-04-08 (see the profile).