Skip to main content
Exports convert your enriched products into the formats your channels expect. Every export runs through an export profile — a named target that binds your attributes to a format and serializer. You list the profiles available for a schema, then export a single product, a selection, or the whole catalog.

List export profiles

GET /api/v1/pim/exports/profiles?schemaId=... returns the profiles that apply to a schema:
Each profile has a key (used in the export calls below), a displayName, the contentType and fileExtension it produces, and the languages it supports (available plus a default).

Export one product

GET /api/v1/pim/exports/products/{productId}?profileKey=...&language=... returns the file directly — the Content-Type matches the profile, and the body is the export:

Export a selection

POST /api/v1/pim/exports/selection bundles up to 200 products into a ZIP synchronously:
Python
For more than 200 products, use a catalog export job instead.

Export the whole catalog

A full-schema export runs as a background job. Start it, poll status, then download:
1

Start the job

POST /api/v1/pim/exports/catalog with { "schemaId": "...", "profileKey": "...", "language": "..." } returns 202 with a jobId.
2

Poll status

GET /api/v1/pim/exports/{jobId}/status returns status (Queued / Processing / Success / Failed), progress, and ready — poll until ready is true.
3

Download

GET /api/v1/pim/exports/{jobId}/download streams the artifact once the job succeeded.
Only one catalog export runs per (schema, profile) at a time — starting a duplicate returns 409. Downloading before the job succeeds returns 409; the artifact is retained for a limited time after completion.
Job status uses capitalized values (Success, Queued, Processing, Failed) — distinct from the lowercase status values on products and diagnostics. Compare exact strings.