Update a category
THE one write path: set attribute values and/or move the parent in a single call (provide parent_id, attributes, or both). Writes are symmetric with reads — a GET response’s attributes re-sent verbatim is valid ({id, type, label} stubs are accepted; extra stub fields ignored). null or "" clears a value (the key then disappears from reads); list-reference writes REPLACE the current set. Returns the full updated resource.
Authorizations
Workspace-scoped API key. Available scopes:
read:products: List and read products, including variants, references, and completeness.write:products: Create, update, and upsert products and their attribute values.delete:products: Delete products.read:images: List and read images.write:images: Create, update, and upsert images and their attribute values.delete:images: Delete images.read:vendors: List and read vendors.write:vendors: Create, update, and upsert vendors and their attribute values.delete:vendors: Delete vendors.read:categories: List and read categories.write:categories: Create, update, and upsert categories and their attribute values.delete:categories: Delete categories.read:sources: List and read data sources, including scraped content.write:sources: Create data sources (triggers processing) and update their attribute values.delete:sources: Delete data sources.read:attributes: List and read attribute definitions.write:attributes: Create and update attribute definitions.read:views: List and read saved grid views (MCP surface).write:views: Create and update grid views (MCP surface).read:channels: Read the enabled channel catalog.read:events: Read the workspace change feed and per-entity events.read:jobs: List and poll asynchronous job status.
Path Parameters
The resource UUID.
Body
New parent id, or null to detach.
Map of attribute key → new value (sparse — only keys being written). Scalars set the value; null OR "" clears it (the key then disappears from reads). A single-reference key accepts a bare UUID string or an {id} object; a list-reference key accepts an array of either — list writes REPLACE the current set. Read stubs re-sent verbatim are valid writes (extra stub fields like type/label are ignored). Unknown keys are a 400; select values must be one of the attribute's acceptable_values.
Response
The updated category (full resource).
The one shape for every entity read and mutation response. System fields live at the top level; every customer-defined key lives in attributes, so customer keys can never collide with system ones.