Skip to main content
The Real-Time Catalog Access pattern serves Snappy’s V3 catalog API on demand, with data fetched live from Snappy (and optionally cached at your edge). No local mirror, no nightly sync. Snappy is the source of truth.

When to use

Use real-time when:
  • You want live pricing and availability without sync lag
  • You don’t have local catalog infrastructure to maintain
  • You want the simplest possible integration path
Use Bulk Catalog Export instead when:
  • You already have a local catalog or search index you want to blend Snappy products into
  • You need offline access or want to blend with other data sources
  • Your rendering layer can’t tolerate API latency on every request

Two paths

Fetch products scoped to a specific collection — the usual pattern for partners who have a dedicated collection for their program.
This endpoint uses cursor pagination. Follow links.next until it returns null.

Filter-based

Fetch from the full catalog with filters, without scoping to a collection.
Useful when you want to merge multiple collections, apply tag or price filters globally, or access the catalog without a fixed collectionId.

After picking a product

Once a user selects a product, fetch the full detail and its variants:
JavaScript
The product detail endpoint returns the object directly (no data wrapper). The variants endpoint returns { data, links } with page-number pagination.

Resolve the selected variant at checkout

JavaScript
Pre-select each option’s firstSelectableVariant on page load to avoid dead-end combinations.

Caching guidance

Fetching live on every render is fine for most traffic levels. Add a short cache at your edge if you need to reduce latency or API call volume: Cache by (collectionId, location, page[cursor]) for list pages, and by (productId, location) for detail pages.

Common pitfalls

Last modified on July 27, 2026