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

# List items

> Returns inventory items for a vendor with optional filters. Supports offset and cursor pagination.

<ParamField header="x-api-key" type="string" required>
  BOH API key with `catalog:read` scope.
</ParamField>

<ParamField path="vendorId" type="string" required>
  Vendor UUID.
</ParamField>

<ParamField query="search" type="string">
  Partial match on item name or code (1–256 characters).
</ParamField>

<ParamField query="status" type="string" default="ACTIVE">
  Filter by status: `ACTIVE`, `ARCHIVED`, or `ALL`.
</ParamField>

<ParamField query="procurement_type" type="string">
  `PURCHASED`, `PRODUCED`, or `PURCHASED_AND_PRODUCED`.
</ParamField>

<ParamField query="count_frequency" type="string">
  `DAILY`, `WEEKLY`, or `MONTHLY`.
</ParamField>

<ParamField query="tag_id" type="string">
  UUID of an item tag — returns only items that belong to that tag.
</ParamField>

<ParamField query="store_id" type="string">
  UUID of a BOH store — filters items visible to that store.
</ParamField>

<ParamField query="include" type="string">
  Comma-separated sideloads: `tags`, `unit_group`, `memberships`.
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Page size (1–200).
</ParamField>

<ParamField query="offset" type="integer" default="0">
  Offset for page-based pagination. Mutually exclusive with `cursor`.
</ParamField>

<ParamField query="cursor" type="string">
  Opaque cursor for cursor-based pagination. Mutually exclusive with `offset`.
</ParamField>

<ResponseField name="items" type="object[]">
  Array of item summaries.
</ResponseField>

<ResponseField name="total" type="integer">
  Total matching items. Present only in offset mode.
</ResponseField>

<ResponseField name="limit" type="integer">
  Page size applied.
</ResponseField>

<ResponseField name="offset" type="integer">
  Offset applied. Present only in offset mode.
</ResponseField>

<ResponseField name="next_cursor" type="string | null">
  Cursor for the next page. Present only in cursor mode; `null` when no more pages.
</ResponseField>

<ResponseField name="has_more" type="boolean">
  `true` when more pages are available. Present only in cursor mode.
</ResponseField>

<RequestExample>
  ```http theme={null}
  GET /api/v1/public/vendors/vnd_abc123/catalog/items?status=ACTIVE&include=tags&limit=20
  x-api-key: boh_live_xxxxxxxx
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "items": [
      {
        "id": "itm_01j5k...",
        "account_id": "acc_01j...",
        "external_item_id": "SKU-001",
        "code": "FLOUR-KG",
        "name": "All-purpose flour",
        "type": "INGREDIENT",
        "procurement_type": "PURCHASED",
        "unit_group_id": "ug_mass_01...",
        "base_unit_id": "unit_g_01...",
        "is_inventory_tracked": true,
        "is_active": true,
        "count_frequency": "WEEKLY",
        "created_at": "2026-01-10T09:00:00.000Z",
        "updated_at": "2026-07-01T12:00:00.000Z",
        "tags": [
          { "id": "tag_dry_01...", "code": "DRY-GOODS", "name": "Dry goods" }
        ]
      }
    ],
    "total": 1,
    "limit": 20,
    "offset": 0
  }
  ```
</ResponseExample>
