key, a label, and a type. Product Schemas and Catalog products attach the UUID so a key rename does not change identity.
Why attributes matter
- Consistency — One definition for
colorapplies everywhere instead of duplicating column config per schema. - Sync — External PIMs and supplier feeds can upsert attributes via the API to stay aligned with Lasso.
- Catalog — Product
attributesin the catalog use the same keys as your dictionary.
Identity and lifecycle
API responses exposeid, key, type, language, type-specific configuration, status, archived_at, and revision timestamps. GET /attributes returns active Attributes by default. Set include_archived=true to include archived definitions. Direct reads can return either lifecycle state.
Attribute and relation types are immutable for an existing key. Use expected_updated_at on updates to detect stale writes. A stale update returns 409 with code: "stale_write" and current_updated_at.
Synced vs manual Attributes
Attributes imported from an external source may havesource_id set. Synced attributes cannot edit label or enum values until you detach them (detach: true on update), which clears sync metadata and makes the attribute editable again.
Managing attributes via API
Use the Attributes API to list, create, update, rename, and delete dictionary entries. Bulk upsert is supported for keeping large attribute sets in sync:Webhooks
Subscribe toattribute.created, attribute.updated, and attribute.deleted via Catalog Webhooks to react when your dictionary changes.
Rename and deletion safety
Renaming changes the canonical key and supported dependent data atomically. A blocked, conflicting, busy, or stale rename returns409 without partial completion. When retrying an uncertain outcome, pass the returned Attribute ID as attribute_id so the handler can resolve the same identity after a key change.
Permanent deletion is dependency-safe. DELETE /attributes/{key} returns 409 attribute_in_use when schemas, tables, Catalog data, mappings, or feeds still depend on the Attribute. It never cascades or removes those dependencies. Use the Dashboard archive flow when you need reversible removal.
Product-only Catalog extensions
A Catalog product can attach up to 2,000 active Shared Attributes without widening its base Product Schema. Send their UUIDs inattribute_extension_ids. Catalog responses list the attached identities in attribute_extensions.
