> For the complete documentation index, see [llms.txt](https://docs.mediarithmics.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mediarithmics.io/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch/data-loader.md).

# Data loader

Import CSV files through the Computing Console, without writing a single API call.

## Your goal

Load a CSV file into the datamart from the interface - mapping its columns to profile properties, a segment, or identifier associations - without building an integration.

## Expected outcome

A document import created or reused for you, an execution triggered, and your data in the datamart.

## What the Data loader is

The **Data loader** is a data import module in the Computing Console that takes **CSV files up to 20 MB**. Three types of data can be loaded with it:

<table data-view="cards" data-search="false"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Load profiles</strong></td><td>Create or update profiles from CSV columns.</td><td><a href="/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch/data-loader/load-profiles.md">Load profiles</a></td></tr><tr><td><strong>Load segments</strong></td><td>Bind users in the file to an existing segment.</td><td><a href="/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch/data-loader/load-segments.md">Load segments</a></td></tr><tr><td><strong>Load identifiers</strong></td><td>Associate several identifiers with a single user.</td><td><a href="/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch/data-loader/load-identifiers.md">Load identifiers</a></td></tr></tbody></table>

Once the data is loaded and configured, a [document import](/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch.md) is created or reused, with a new execution - so the Data loader is a front end over the same import machinery, not a separate pipeline.

{% hint style="info" %}
For periodic imports, automate them with the [batch import API](/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch.md) instead. The Data loader is for files a person uploads.
{% endhint %}

## Load a file

{% stepper %}
{% step %}

### Open the Data loader

In the **Computing Console**, click **Data Loader**.
{% endstep %}

{% step %}

### Choose the type and the file

Select the **document type**, pick a **CSV delimiter**, and drag and drop your **CSV file**.
{% endstep %}

{% step %}

### Configure the import

The **Identifier** section identifies the users to match. **If a user is not found, a new user is created.**

The rest of the configuration depends on the type - see the three pages above.
{% endstep %}

{% step %}

### Check the summary and the transformation report

The **Configuration summary** and the **Transformation report** surface issues that would occur during transformation. Read the report before uploading: it is where you find out that a column does not parse.
{% endstep %}

{% step %}

### Upload

Click **Upload data**. Your data is transformed as configured and uploaded, a document import is created or reused, and an execution is created and triggered.
{% endstep %}

{% step %}

### Follow the execution

Click **Go to document import** to check it. Once the execution has succeeded, the data is in your datamart.

Execution statuses are the ones described in [Import data in batch](/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch.md#execution-statuses).
{% endstep %}
{% endstepper %}

## File requirements

| Item                  | Restriction                                  |
| --------------------- | -------------------------------------------- |
| Format                | UTF-8                                        |
| Maximum file size     | 20 MB                                        |
| Authorised delimiters | `,` comma, `;` semicolon, \`                 |
| Headers               | **Mandatory**, with no restriction on naming |

{% hint style="info" %}
The 20 MB ceiling is specific to the Data loader. The batch import API accepts files up to 100 MB - see [Import data in batch](/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch.md#file-size-and-performance).
{% endhint %}

## When a document import is reused

The Data loader names the imports it creates, and reuses one when the name would be identical:

| Document type           | Document import name                                     | Reused when                                                  | Created when                            |
| ----------------------- | -------------------------------------------------------- | ------------------------------------------------------------ | --------------------------------------- |
| Segments                | `Data Loader - segment-user-list - <SEGMENT_ID>`         | The segment was already used with the Data loader            | The segment has never been used with it |
| Profiles                | `Data Loader - profile-data - <CSV_FILE_NAME>`           | The CSV file name was already used for a profile import      | A new CSV file name is used             |
| Identifiers association | `Data Loader - identifier-association - <CSV_FILE_NAME>` | The CSV file name was already used for an association import | A new CSV file name is used             |

{% hint style="info" %}
Because reuse keys on the **file name** for profiles and identifiers, uploading `export.csv` every day groups every execution under one import. Include a date in the file name if you want them separated.
{% endhint %}

## Troubleshooting

| Symptom                                          | Cause                                                                                             |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| The **Upload data** button is disabled           | **100% of the input lines are in error**, as shown in the transformation report.                  |
| The Data loader is not in the menu               | You do not have access to the feature, or your organisation has no datamart.                      |
| The **UserProfile** document type errors         | You need a **`LIVE` schema** with a **top-level field** under `UserPoint` named `UserProfile`.    |
| The **Segment** document type is unavailable     | You need at least one segment of type `USER_LIST` to bind identifiers to.                         |
| A transformation is not offered on an identifier | **Only hashing methods** are available on identifiers, and only **one** hashing method per field. |

## Related pages

<table data-view="cards" data-search="false"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Import data in batch</strong></td><td>The API behind the Data loader.</td><td><a href="/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch.md">Import data in batch</a></td></tr><tr><td><strong>Navigate the platform</strong></td><td>Finding the Computing Console.</td><td><a href="/setup-and-monitor/understand-mediarithmics/navigate-the-platform.md">Navigate the platform</a></td></tr><tr><td><strong>Schema definition</strong></td><td>The <code>LIVE</code> schema the loader validates against.</td><td><a href="/setup-and-monitor/collect-and-manage-your-data/design-your-data-model-and-schema/schema-definition.md">Schema definition</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mediarithmics.io/setup-and-monitor/collect-and-manage-your-data/import-data-in-batch/data-loader.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
