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

# Dimensions and labels

> Organize one storefront's Library Material with dimensions.

## Overview

A **dimension** is a storefront-owned organizing axis, such as Category,
Topic, Audience, or Vertical. A **label** is a value from that dimension on a
Library Material document. Dimensions and labels belong only to the current storefront:
they never appear in another seller's customer account.

Dimensions help organize and find records. They do not select inventory, grant
authority, or change property tags. Property tags continue to drive live
selection under their existing rules.

## Library facets

The Library has four storefront dimensions: **Category**, **Topic**,
**Audience**, and **Vertical**. They are system-owned, cap-exempt, and
available when the Library is available for your storefront. Sellers cannot
create or edit these four dimensions directly. Each day, the service
reconciles them from the current document category and relevance annotations
for the storefront, including removing labels that the metadata no longer
supports. The seed is idempotent and does not change the meaning of an
existing property tag.

If a storefront already has a seller-owned key such as `category`, the Library
keeps that dimension unchanged and uses a reserved `library_<key>` facet such
as `library_category` for its system metadata. Reserved `library_` keys are
system-managed, cap-exempt, and cannot be created or edited with
`save_dimension`. The Library resolves that fallback automatically for filters,
Category ordering, and the Uncategorized chip.

The Library shows Category first, then the other available facets. Choosing a
facet value sends the filter to the server, so every result page belongs to the
same selection. Multiple values within one facet are alternatives; values from
different facets are combined. Category grouping uses the Category dimension,
and uncategorized documents remain last.

## Use dimensions with your storefront agent

Use `save_dimension` to create or update a storefront dimension. A dimension
has an immutable `key`, a display `name`, a value mode, and the seller object
kinds it can label. Use `get` and `search` to read labels, and use
`filter.labels` to find matching records. A label filter combines different
dimension keys with AND and values inside one key with OR.

For example, this finds Library Material with either of two audience labels and
the supplied vertical label:

```json theme={null}
{
  "kind": "material",
  "filter": {
    "labels": {
      "audience": ["marketers", "executives"],
      "vertical": ["retail"]
    }
  }
}
```

Seller dimensions apply to Material.

## Related

<CardGroup cols={2}>
  <Card title="Library" href="/v2/storefront/library" icon="books">
    Manage seller Material, responses, and reusable pages.
  </Card>

  <Card title="Product marketing" href="/v2/storefront/product-marketing/overview" icon="sparkles">
    Keep product claims and supporting seller context current.
  </Card>
</CardGroup>
