BETA. The catalog stream is the foundational stream — every other stream references products from here.
ProductV2: title, slug,
type, status, visibility, purchasability, tags, and Google product category. Rows are scoped to
the shops owned by the API key’s merchant.
Endpoint
There is no
shop_id query parameter — rows are already scoped to the key’s merchant
(across all shops the merchant owns). Tenant isolation is enforced server-side regardless of
query.Row shape
Response envelope
curl
Snapshot
For a cached point-in-time view of the first 200 rows (TTL controlled byINVENTORY_OS_API_SNAPSHOT_CACHE_TTL_SEC, default 300s):
Cursor pagination
Pages returnnextCursor until the stream is exhausted (null). Cursors are opaque — don’t
parse them. Use since for incremental syncs instead of walking the full feed each time.
Rate limits
Catalog reads are in the high-budget class — 1000 reads/min/key. Usesince + a larger
limit for incremental syncs; full crawls should be hourly or less frequent.
Related
- Inventory level stream — stock per SKU
- Pricing stream — list price + royalty per SKU
- Provenance stream — onchain NFT recording per product
- Webhook subscriptions — receive
catalog.changedevents