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:
- Queue — POST to an export endpoint to start a job. You get back a job ID.
- Poll — GET the job status until
status is completed (or failed).
- 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