Skip to main content
The Attribute dictionary is your company’s canonical registry of product fields. Each Shared Attribute has a stable UUID, a current 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 color applies 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 attributes in the catalog use the same keys as your dictionary.

Identity and lifecycle

API responses expose id, 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 have source_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 to attribute.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 returns 409 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 in attribute_extension_ids. Catalog responses list the attached identities in attribute_extensions.