Docs

Docs

x-cpod-domain: catalog

Catalog

Product catalog and categories.

Try in explorer client.catalog

Product

A product available in the catalog.

REST path/api/v1/catalog/products
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.catalog.products.list()

// create:
await client.catalog.products.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
skustringStock Keeping Unit — unique product code within the tenant catalog.
namestringHuman-readable product name.
descriptionstringDetailed description of the product or service.
categorystringFree-form category label. Use ProductCategory for structured hierarchy.
typestringProduct type classification.
statusstringLifecycle status of the product in the catalog.
unit_pricenumberPrice per unit in the specified currency.
currencystringISO 4217 three-character currency code.
unitstringHuman-readable unit description for the price.
taxablebooleanWhether this product is subject to sales tax or VAT.
tagsjsonFree-form tags for filtering and grouping products.

ProductCategory

A category in the product catalog.

REST path/api/v1/catalog/categories
Operations
listgetcreateupdatedelete
SDK
// list — returns only your records; add filters/search:
await client.catalog.categories.list()

// create:
await client.catalog.categories.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
namestringHuman-readable category name.
slugstringURL-safe kebab-case identifier that is unique within the tenant catalog.
descriptionstringOptional description of what this category contains.
parent_category_iduuidUUID of the parent ProductCategory. Null for root-level categories.
statusstringWhether this category is visible and usable in the catalog.