> 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/flatfiles/step-by-step-guide.md).

# Step-by-Step Guide

Fredhopper supports ingesting product data using flat files, i.e. CSV or JSON, that are packaged into ZIP archives and uploaded via the Fredhopper REST API to the Fredhopper Access Server (FAS). Below is a step-by-step technical guide for sending product data to Fredhopper (FHR) using flat files.

{% stepper %}
{% step %}

#### Familiarize yourself with the item data structure

Export your data and format it. You can read more about the Fredhopper item data structure [here](/product-discovery/sending-and-managing-product-data/flatfiles/item-data-structure.md).
{% endstep %}

{% step %}

#### Decide which type of feed you are sending

| Feed Type        | Purpose                                                        |
| ---------------- | -------------------------------------------------------------- |
| Full Feed        | Replaces the full catalog                                      |
| Incremental Feed | Sends only new or modified product records since the last feed |

{% hint style="success" %}
We recommend sending at least one full feed per day to ensure the entire catalog remains synchronized. Incremental feeds should be sent more frequently (for example, every 15–60 minutes) to reflect ongoing changes such as price or stock updates.
{% endhint %}
{% endstep %}

{% step %}

#### Prepare your data

The required data and files depend on the type of flat file and feed:

<table data-header-hidden><thead><tr><th></th><th width="229"></th><th></th></tr></thead><tbody><tr><td>Type of flat file/type of feed</td><td><strong>Full</strong></td><td><strong>Incremental</strong></td></tr><tr><td><strong>CSV</strong></td><td><a href="/product-discovery/sending-and-managing-product-data/flatfiles/fullprodfeed/full-feed-csv-data-format.md">Full feed CSV data format</a></td><td><a href="/product-discovery/sending-and-managing-product-data/flatfiles/incrementalprodfeed/incremental-feed-csv-data-format.md">Incremental feed CSV data format</a></td></tr><tr><td><strong>JSON</strong></td><td><a href="/product-discovery/sending-and-managing-product-data/flatfiles/fullprodfeed/full-feed-json-data-format.md">Full feed JSON data format</a></td><td><a href="/product-discovery/sending-and-managing-product-data/flatfiles/incrementalprodfeed/incremental-feed-json-data-format.md">Incremental feed JSON data format</a></td></tr></tbody></table>
{% endstep %}

{% step %}

#### Upload product data

You can read more about the steps required to upload your product data [here](/product-discovery/sending-and-managing-product-data/flatfiles/item-data-structure.md).
{% endstep %}
{% endstepper %}
