Skip to main content
The catalog API is the read side: pull products, and pull the schemas that tell you what a product’s fields mean. It’s how you sync FacetFlux’s enriched data back into your PIM, storefront, or data warehouse. All catalog reads work with a read-only key.

List and fetch products

GET /api/v1/public/products returns a paged envelope:
The items live under data (not items) and the total is totalCount. pageSize is capped at 200. Optional filters: status (active, draft, archived, requiresAttention) and purpose (standard, onDemand, internal). Each product carries its identifiers (skuList, productNumber), its structure (schemaId, primaryTypeId, traitIds, channelCodes), and a convenience roleValues block with the resolved name, description, brand, customerProductId, and primaryImageUrl — enough to render a product card without touching the schema.
  • GET /api/v1/public/products/{id} — one product.
  • GET /api/v1/public/products/search?q=... — full-text over name, description, brand, and SKU; same paged envelope.

Interpreting attribute values

A product’s detailed attribute values are keyed by attribute-definition id. To know what each one means, read the schema’s attribute definitions:
1

List schemas

GET /api/v1/public/schemas returns each schema with its kind (master, standard, …), any standardCode / standardVersion, and counts of types, traits, and attributes.
2

Read the product types

GET /api/v1/public/schemas/{id}/types lists the product types — what kind of thing each product is, and which traits it’s built from.
3

Read the attribute definitions

GET /api/v1/public/schemas/{id}/attributes returns each definition’s code, labels, dataType, scope, role, and unit. Match a value’s definition id here to learn its type and meaning.
The dataType tells you the JSON shape of the value (text, number, boolean, enum, multiEnum, …) and scope tells you whether it lives on the product or a variant. See Core concepts for the full data-type mapping.
Schemas for shared industry standards (ETIM, eCl@ss) are readable by any tenant, so you can resolve standard classifications even for classes you didn’t create.

Full field reference

Every field of every response is documented in the interactive API reference — with a playground to try calls against your own tenant.