catalog:read scope and both return the same product shape.
Paginated export
integer
default:"0"
Zero-based page index.
integer
default:"100"
Items per page. Clamped to the range 1–500; values outside it are coerced into range.
string
Optional. Return only products updated after this moment. Accepts epoch milliseconds, an
ISO-8601 instant (
2026-06-01T00:00:00Z), or a local date-time (2026-06-01T00:00:00).
Use it to run incremental syncs instead of re-reading the whole catalog.Paginating through the whole catalog
Only active products are returned. Results are sorted by ascending
id, so the ordering is
stable across pages even while the catalog changes.Fetch by SKU
When you already know which products to enrich, look them up directly. Send the SKUs in the request body:The product shape
Both endpoints return products in the sameEnrichmentProductDto shape:
attributes (and each variant’s attributes) only include values that are actually set — an
attribute with an empty value is omitted rather than returned as an empty string.Product variants
Products that belong to a variant family (e.g. the same tool in several voltages) expose their relationship through three fields. Which are populated depends on whether the product is the family’s master or one of its variants — the fields that don’t apply arenull.
Master product — carries the family. variantAttributes lists the attribute names that
distinguish the variants, and variants holds the sibling products (the master itself is not
repeated in the array). variantMaster is null.
variantMaster. variantAttributes and
variants are null.
null.
See the full field reference on the Get products page. Next, turn
these into proposals — Submitting proposals.