Skip to main content
A few objects show up across every FacetFlux endpoint. Understanding how they fit together makes the rest of the API obvious.

Products and variants

A product is a single catalog item. A product can have variants — concrete purchasable versions that differ along one or more axes (size, color, length). A cordless drill is a product; the 2 Ah and 4 Ah kits are its variants. Attribute values live at whichever level they belong to:
  • Product-scoped — the same for every variant (brand, product family, description).
  • Variant-defining — the axes that distinguish variants (voltage, capacity).
  • Per-variant — differ by variant but don’t define them (weight, GTIN).
When you write attribute values you target either the product or a specific variant, and the attribute’s scope has to match the target.

Schemas, product types, and attributes

A schema is the shape of a slice of your catalog. It contains:
  • Product types — what kind of thing a product is. A product type determines which attributes a product is expected to have. (Product type is about structure and data — it is not the same as a merchandising category like “Summer Sale.”)
  • Traits — reusable bundles of attributes that product types are composed from.
  • Attribute definitions — the typed fields themselves: a name, a data type, and optionally allowed values.
You’ll usually read schemas to interpret product data — an API response gives you attribute values keyed by attribute-definition id, and the schema tells you what each one means.

Attribute data types

Every attribute value is native JSON matching its definition’s data type:
Enum-typed values are always the string value, in camelCase — never a numeric index. This matches how the whole API serializes enumerations.

Classification standards

FacetFlux classifies products to industry standards — primarily ETIM and eCl@ss. Classification maps a product to a class in the standard (for example an ETIM class) and, where enabled, to the standard’s expected features. Enrichment can fill and normalize the values those classes expect.

Credits and pricing

AI operations (enrichment, some diagnostics) are billed per product. Reads of your own catalog are not. Pricing is per outcome — see the pricing page for current rates. Enrichment responses include usage headers so you can track consumption programmatically; see Enrichment.