# Uploading Data

A central concept in our items API is the concept of a catalogue. A catalogue is a self-describing data structure containing items.

Each catalogue is defined by one or more item structure, called item schemas. Items can be organised in a hierarchical way, defined as a catalogue tree.

The general workflow of this API is as follows:

* Create a new item schema defining every attribute (or use an existing one)
* Create a new category tree (or use an existing one)
* Create a new catalogue version referencing an item schema and category tree (optional)
* Send all the items to this new catalogue version
* Activate this catalogue version
* Keep sending updates to this catalogue version

Each step is described in more detail below in the following sections

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

{% content-ref url="/pages/nYIuIIDndfQKxKv5kAHU" %}
[Category Tree](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/category-tree.md)
{% endcontent-ref %}

{% content-ref url="/pages/9LpnV38unuYVYjfKRf5S" %}
[Item Catalog](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/item-catalog.md)
{% endcontent-ref %}

{% content-ref url="/pages/jPlAnKOUXIFxoCUFmyAN" %}
[Items](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items/items.md)
{% endcontent-ref %}

A step by step guide is available providing examples for all the steps

{% 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 %}

To ensure the best performance and stability of the API, please consult our best practices

{% content-ref url="/pages/tKEzIEAwhsEMk1G2X35R" %}
[Items API Best Practice](/product-discovery/sending-and-managing-product-data/what-is-the-items-api/best-practice/items-api-best-practices.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://crownpeak.gitbook.io/product-discovery/sending-and-managing-product-data/what-is-the-items-api/working-with-items.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
