Catalogue Enrichment Report
GET/api/v2/listings/catalogue-enrichment
Every product that publishes through a listing template, ordered by default supplier (nulls last) then SKU, with the data points it is still missing.
products:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Columns are keyed on the thing you would fill, not on each channel's name for the requirement. That is what makes one table cover the whole catalogue: per template the required-field sets are all different, but three TikTok fields (Region of origin, Country of origin, Country or region of origin) all read one Country of Origin attribute, so they collapse to a single column and demanded_by records all three. On siber this turns 70 required-field slots into 14 data points.
data_points[].missing and summary always describe the WHOLE catalogue, so the totals do not move as the caller filters rows. Unpaged, with a 2000-row backstop reported via truncated / row_cap rather than applied silently.
Which products a template serves follows the publish path: a per-channel category override wins over the product type's mapping, a variant with no type of its own inherits the family parent's, and a non-default template is reachable only by an explicit pin. Archived products are excluded.
data_points[].applies_to counts the products whose templates actually require that data point, and data[].applicable lists the data points asked of that one product; missing is a subset of both. The distinction matters because the columns are catalogue-wide while the demand for them is per template — a product routed to a template that never asks for a CPSIA tracking label is absent from both applicable and missing, and must be rendered as not-applicable rather than as a satisfied requirement.
Request
Responses
- 200
- 401
- 403
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.