Skip to main content
The Bulk Catalog Export pattern pulls Snappy’s catalog into your own data store asynchronously. You queue a job, poll until it completes, then download a compressed JSON file. This is the right pattern when you need a local copy of the catalog — for blending with other data sources, powering a search index, or serving from your own infrastructure.

When to use

Use bulk export when:
  • You already have local catalog infrastructure (search index, database, product schema)
  • You want to blend Snappy products with other sources
  • Your rendering layer cannot tolerate per-request API latency
Use Real-Time Catalog Access instead for simpler integrations that don’t need a local copy.

The three-phase lifecycle

Every export goes through Queue → Poll → Download:
  1. Queue — POST to an export endpoint to start a job. You get back a job ID.
  2. Poll — GET the job status until status is completed (or failed).
  3. Download — fetch the file URL from the completed job response.

Two export paths

Filtered products export

Export products from the full catalog with optional filters.

Collection-scoped export

Export all products in a specific collection.
Only 1 concurrent export job is allowed at a time, shared across all export types. Creating another export while a job is active returns 409 Conflict. Poll for completion before starting a new job.

Poll and download

Both export types share the same poll endpoint:

Keeping your local copy fresh

After the initial bulk export, use the stock-availability-updates webhook to receive incremental updates instead of re-exporting the full catalog on a timer.
Subscribe to this event in your Webhook configuration. Each event carries the products whose availability or pricing changed. Update only those records in your local store.
Re-run a full bulk export periodically (daily or weekly) as a safety net, and rely on webhooks for real-time freshness in between. This covers any webhook delivery failures.

Common pitfalls

Last modified on July 27, 2026