Skip to main content
PATCH
Update a Catalog product

Usage notes

  • attributes is a sparse merge. Omitted existing values remain unchanged.
  • Send expected_updated_at from your latest read to protect against stale writes.
  • attribute_extension_ids attaches product-only Attributes. Omitting it or sending an empty array preserves existing extensions.
  • Only remove_attribute_extension_ids detaches extensions. Detaching also removes their stored values or Relation links atomically.
  • You cannot detach an Attribute owned by the base Product Schema.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

Body

application/json
attributes
object
required

Sparse values are merged with the current public Attribute values.

expected_updated_at
string<date-time>
attribute_extension_ids
string<uuid>[]

Active Shared Attribute UUIDs to attach. Existing product-only Attributes are preserved when this field is omitted or empty.

Maximum array length: 2000
remove_attribute_extension_ids
string<uuid>[]

Product-only Shared Attribute UUIDs to detach. Their product values or Relation links are removed atomically; base-schema Attributes cannot be removed here.

Maximum array length: 2000

Response

Catalog product updated.

id
string<uuid>
required
company_id
string<uuid>
required
schema_id
string<uuid>
required
source
enum<string>
required
Available options:
manual,
product_extraction,
shopify
external_id
string | null
required
status
enum<string>
required
Available options:
draft,
active,
archived
attributes
object
required

Values backed by active Shared Attributes from the base schema or attribute_extensions.

attribute_extensions
object[]
required
Maximum array length: 2000
created_at
string<date-time>
required
updated_at
string<date-time>
required
deleted_at
string<date-time> | null
required
relations
object

Hydrated relation values. Present on the single-product GET response.