---
title: "List catalog entries"
method: GET
path: "/catalog/entries"
tags: ["catalog"]
---

# List catalog entries

`GET /catalog/entries`

Returns a paginated list of catalog entries, filterable by company, vendor, and search term. Use `expand=prices,allowances` to populate `properties`, `display_name`, `prices`, and `allowances` keys or retrieve a single entry to populate them.

## Query parameters

- `ottimate_company_id` integer
- `erp_vendor_id` string
- `search` string
- `page` integer
- `limit` integer
- `expand` string
- `sku` string
- `upc` string
- `buying_format` string
- `size` string
- `uom` string
- `price` number, double
- `unit_price` number, double

## Headers

- `Authorization` string, required
- `X-Api-Key` string, required
- `X-API-Version` string

## Response `200`

Successful response with paginated catalog entry list

- CatalogEntryListResponse
  - `count` integer, required — Total number of results
  - `results` CatalogEntryListResponseResultsItems[], required — List of catalog entries.
    - `id` string, required — Unique identifier (prefixed with cte_)
    - `ottimate_company_id` integer, required — Company ID
    - `reference_id` string — Unique key for the catalog entry
    - `catalog_unique_key` string — Auto-generated normalized key used to match entries for upsert. Always derived from the company's configured key format — a value submitted on create or update is never stored as-is; only the auto-derived value is persisted. Which fields make up the key depends on the company's catalog matching mode and ERP integration (for example: vendor+sku+size+item_name for Starter/default mode; vendor+upc+buying_format for Growth/Premium mode; vendor+upc for some ERP integrations regardless of mode). Always present in responses.
    - `item_name` string, required — Item name for the catalog entry
    - `description` string — Deprecated: use item_name instead. This field will be removed in a future API version.
    - `original_description` string, nullable — Item name/description as originally submitted, before any normalization.
    - `sku` string — SKU code
    - `upc` string — UPC code
    - `buying_format` string, nullable — Buying format distinguishing multiple purchasing formats for the same item (e.g., 'CASE', 'EACH'). Used as part of the composite unique key for integrations that differentiate catalog entries by buying format. Optional — null or omitted for integrations that do not use buying format.
    - `size` string — Pack size
    - `uom` string — Unit of measure
    - `price` string — Price (decimal string)
    - `unit_price` string — Unit price (decimal string)
    - `last_purchased_price` string — Last purchased price (decimal string)
    - `erp_vendor_id` string — ERP Vendor id from ERP/accounting system
    - `ottimate_vendor_name` string, nullable — Deprecated. Use `erp_vendor_name` instead. Same value, kept for backward compatibility; will be removed in a future API version.
    - `erp_vendor_name` string, nullable — Human-readable vendor name attached to erp_vendor_id, sourced from the originating system. Nullable when not provided.
    - `is_split_case` boolean — Split case indicator
    - `authorized_vendor` boolean — Whether the vendor is authorized for this item
    - `last_purchased_date` string — Last purchased date
    - `last_purchased_date_utc` string, date-time, nullable — UTC equivalent of last_purchased_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
    - `created_date` string, date-time — Record creation date
    - `created_date_utc` string, date-time, nullable — UTC equivalent of created_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
    - `last_modified_date` string, date-time — Record last modified date
    - `last_modified_date_utc` string, date-time, nullable — UTC equivalent of last_modified_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
    - `display_name` string — Display name for the item
    - `properties` CatalogEntryListResponseResultsItems — recursive
    - `prices` CatalogEntryListResponseResultsItemsPricesItems[] — List of catalog prices (only in retrieve or when expand=prices)
      - `id` string, required — Price ID
      - `price` string, required — Price amount (decimal string)
      - `unit_price` string — Unit price (decimal string)
      - `price_type` integer, required — Price type
      - `price_type_display` 'company' | 'location_group' | 'location' — Human-readable price type
      - `ottimate_location_id` integer — Location ID
      - `ottimate_group_id` integer — Location group ID
      - `start_date` string, date-time, required — Price start date
      - `start_date_utc` string, date-time, nullable — UTC equivalent of start_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
      - `end_date` string, date-time — Price end date
      - `end_date_utc` string, date-time, nullable — UTC equivalent of end_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
      - `reference_id` string — Unique key
      - `created_date` string, date-time — Record creation date
      - `created_date_utc` string, date-time, nullable — UTC equivalent of created_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
      - `last_modified_date` string, date-time — Record last modified date
      - `last_modified_date_utc` string, date-time, nullable — UTC equivalent of last_modified_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
    - `allowances` CatalogEntryListResponseResultsItemsAllowancesItems[] — List of catalog allowances (only in retrieve or when expand=allowances)
      - `id` string, required — Allowance ID
      - `allowance_type` 'allowance' | 'discount' | 'rebate', required — Type of allowance
      - `amount` string, required — Allowance amount (decimal string)
      - `unit_allowance` string — Unit allowance amount (decimal string)
      - `percent_allowance` string, nullable — Percentage-based allowance (decimal string). Non-null when allowance is percent-mode.
      - `target` integer, required — Target code (10=company, 15=location_group, 20=location)
      - `target_type` 'company' | 'location_group' | 'location' — Human-readable target type
      - `ottimate_location_id` integer — Location ID
      - `ottimate_group_id` integer — Location group ID
      - `start_date` string, date-time, required — Allowance start date
      - `start_date_utc` string, date-time, nullable — UTC equivalent of start_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
      - `end_date` string, date-time — Allowance end date
      - `end_date_utc` string, date-time, nullable — UTC equivalent of end_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
      - `reference_id` string — Unique key
      - `created_date` string, date-time — Record creation date
      - `created_date_utc` string, date-time, nullable — UTC equivalent of created_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
      - `last_modified_date` string, date-time — Record last modified date
      - `last_modified_date_utc` string, date-time, nullable — UTC equivalent of last_modified_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
  - `page` integer — Current page number
  - `per_page` integer — Items per page

## Other responses

- `400` — Bad request - Invalid parameters or request format
- `401` — Unauthorized - Authentication required or invalid credentials
- `403` — Forbidden - Access denied or insufficient permissions

---

[API](https://skmtc.dev/ottimate/apis/api-reference.md) · [All operations](https://skmtc.dev/ottimate/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ottimate/api-reference/revisions/ba91ff4c6969/schema)
