> For the complete documentation index, see [llms.txt](https://fredhopper.gitbook.io/product-discovery/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fredhopper.gitbook.io/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/item-schema.md).

# Item Schema

## Definition

An **item schema** defines the attributes that can be used in each item. You have to define the name of each attribute as well as its type. It's used for item validation.

## Structure

| **Name**          | **Type** | **Description**                                                                                                                                          |
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name              | string   | Name of the item type. Must be unique, not empty and can only include alphanumeric characters, underscores and hyphens.                                  |
| tenant            | string   | Tenant of the account                                                                                                                                    |
| environment       | string   | Environment to use                                                                                                                                       |
| version           | integer  | Automatically created                                                                                                                                    |
| attributes        | list     | see [Attributes](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/item-schema/attributes.md)                |
| nestedItemSchemas | list     | see [NestedItemSchemas](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/item-schema/nested-item-schema.md) |

{% content-ref url="/pages/wIiaxMMrgCQUo9e4TZU8" %}
[Using the Item Schema API](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/item-schema/using-the-item-schema-api.md)
{% endcontent-ref %}

Customers onboarding on Fredhopper, please refer also to the section below

{% content-ref url="/pages/er5Bj8tOWtXuT2gNHs7P" %}
[Fredhopper Step-by-Step Guide](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/step-by-step-guide-for-fredhopper-customers.md)
{% endcontent-ref %}

## Validation

Additional validations on schema:

* the name of the item schema should match "^\[\w\\-]+$" i.e. The item schema name must only contain Latin letters (both uppercase and lowercase): `a-z`, `A-Z`, digits: `0-9`, hyphens: `-`
* a schema (and all the inner schemas) should have unique name
