# Item Attributes

Group: Inventory

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/groups/inventoryItemAttributes)

An item attribute is one descriptive tag on an item — the attribute that was chosen, such as Colour, and the value it was given, such as Red.

Item attributes describe an item in terms a tenant defines for itself. An attribute definition names the thing being described ('Colour') and owns the values it allows ('Red', 'Green'); an item attribute is one item carrying one of those values.

This is a resource of its own rather than a field on the item. An item is a flat record of scalars and every scalar GET inventory/items/:id returns is also on its list row, so a nested collection there would be the first exception to that shape. inventory/inventory-levels is the same arrangement: a child of an item, published flat and scoped with an itemId filter.

A value belongs to exactly one attribute. Assigning Colour's 'Red' under a Size attribute fails with VALUE_MISMATCH rather than storing a link nothing can render.

Nothing constrains an item to one value per attribute, so reading an item's attributes may legitimately return the same attribute more than once. Changing an assignment is a delete followed by a create — an assignment is only the item, the attribute and the value, so there is nothing else in it to patch.

## Endpoints

- [List item attributes](https://docs.api.lensing.ai/reference/lensing/v1/endpoints/listItemAttributes.html): `GET /inventory/item-attributes`
- [Tag an item with an attribute value](https://docs.api.lensing.ai/reference/lensing/v1/endpoints/createItemAttribute.html): `POST /inventory/item-attributes`
- [Retrieve an item attribute](https://docs.api.lensing.ai/reference/lensing/v1/endpoints/getItemAttribute.html): `GET /inventory/item-attributes/{id}`
- [Remove an item attribute](https://docs.api.lensing.ai/reference/lensing/v1/endpoints/deleteItemAttribute.html): `DELETE /inventory/item-attributes/{id}`
