> ## Documentation Index
> Fetch the complete documentation index at: https://docs.facetflux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product catalog

> Read products, schemas, and attribute definitions to sync enriched data back into your own systems.

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:

```bash theme={null}
curl "https://app.facetflux.com/api/v1/public/products?page=1&pageSize=50&status=active" \
  -H "Authorization: Bearer $FACETFLUX_API_KEY"
```

```json theme={null}
{
  "page": 1,
  "pageSize": 50,
  "totalCount": 1284,
  "data": [ { "id": "...", "skuList": ["..."], "roleValues": { "name": "..." } } ]
}
```

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:

<Steps>
  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

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](/concepts) for the full data-type mapping.

<Note>
  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.
</Note>

<Card title="Full field reference" icon="code" href="/api-reference/introduction">
  Every field of every response is documented in the interactive API reference — with a playground to try calls against your own tenant.
</Card>
