Skip to main content
POST
Create attributes

Authorizations

Authorization
string
header
required

Use a project API key from Settings > API Access. Send it as Authorization: Bearer wpk_.... See authentication and scopes for setup and permissions.

Headers

Idempotency-Key
string

Reuse this key for retries of the same write. Scoped to this API key; retained until key deletion. Different requests with the same key return 409.

Required string length: 1 - 128
Pattern: ^[!-~]+$

Body

application/json
code
string
required

Unique identifier for the attribute (e.g., cpu_type, screen_size)

Maximum string length: 50
label
string
required

Human-readable name for the attribute (e.g., CPU Type, Screen Size)

Maximum string length: 255
attribute_type
string
required

The type of data this attribute stores

Maximum string length: 20
label_localized
Label Localized · object

Locale-keyed labels, e.g. {'en': 'Nominal voltage', 'de': 'Nennspannung'}. Classification standards ship a name per release language — label alone would pin the project to whichever locale it was materialised in.

attribute_group
integer | null

The group this attribute belongs to for UI organization

Required range: x > 0
is_required
boolean

Whether this attribute must have a value when used in a family

is_unique
boolean

Whether this attribute's value must be unique across products

is_filterable
boolean

Whether this attribute can be used for filtering products

is_searchable
boolean

Whether this attribute should be included in product searches

is_visible
boolean

Whether this attribute should be visible in the UI

is_localizable
boolean

Whether this attribute's values can be different per locale. Enable for text content (names, descriptions). Disable for universal values (SKUs, numbers, dates, colors).

sort_order
integer

Order in which this attribute should be displayed within its group

default_value
any | null

Default value for this attribute when assigned to a product

validation_rules
Validation Rules · object | null

Rules for validating attribute values

options

Predefined options for select/multiselect attributes

operations
string[]

List of enabled operations for this attribute (e.g., import, export, enrich)

ai_enrichable
boolean

Whether this attribute can be enriched using AI

uom_code_set
integer | null

Unit of measure code set for numeric/decimal attributes. Specifies which units are valid for this attribute's values.

Required range: x > 0
value_code_set
integer | null

Controlled vocabulary for select/multiselect attributes. If set, values must come from this code set. Takes precedence over the legacy 'options' JSONField.

Required range: x > 0
default_unit_code
string

Unit this attribute's values are expressed in (a code from uom_code_set). ETIM prescribes exactly one unit per feature; without it the editors show the whole unit set with nothing preselected.

Maximum string length: 20
allow_new_options_on_import
boolean

Allow creating new options for select/multiselect attributes during product import

allow_new_options_from_ai
boolean

Let AI enrichment add a new option when no existing select/multiselect option fits

Response

Created

id
integer
required
code
string
required
label
string
required
label_localized
Label Localized · object
required
attribute_type
string
required
is_required
boolean
required
is_unique
boolean
required
is_filterable
boolean
required
is_searchable
boolean
required
is_visible
boolean
required
group
GroupRefOut · object | null
options
any

Predefined options for select/multiselect attributes.