---
title: "Update a catalog entry"
method: PATCH
path: "/catalog/entries/{id}"
tags: ["catalog"]
---

# Update a catalog entry

`PATCH /catalog/entries/{id}`

Updates an existing catalog entry by ID.

## Path parameters

- `id` string, required

## Headers

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

## Request body

- object
  - `erp_vendor_id` string — ERP Vendor id from ERP/accounting system
  - `catalog_unique_key` string, nullable — Accepted but has no effect. On every save, catalog_unique_key is unconditionally regenerated from the company's configured key format (see catalog_unique_key on the create request) — a value submitted here is not stored and does not rename or override the entry's key.
  - `item_name` string — 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 — Original item description
  - `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` number, double — Price
  - `unit_price` number, double — Unit price
  - `is_split_case` boolean — Split case indicator
  - `authorized_vendor` boolean — Whether vendor is authorized
  - `erp_vendor_name` string, nullable — Optional. Human-readable vendor name attached to erp_vendor_id, sourced from the originating system. Note: reads return the resolved vendor name for the entry, which may come from upstream ERP/sync sources rather than this field. Omit to leave unchanged; pass empty string to clear.
  - `dimensions` unknown
  - `properties` CatalogEntriesIdPatchRequestBodyContentApplicationJsonSchema — Additional properties

## Response `200`

Catalog entry updated successfully

- CatalogEntryObject — Customer-supplied custom key-value properties. On every write (create or update), Ottimate also stores the raw submitted request body under a reserved "public_api_request" key inside this same object — this key is not customer data, is overwritten (not merged/accumulated) on each write to always reflect the most recent request, and will appear in read responses alongside whatever custom properties you submit.

## Other responses

- `400` — Bad request - Invalid parameters or request format
- `403` — Forbidden - Access denied or insufficient permissions
- `404` — Not found - Resource does not exist

---

[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)
