> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload limits

> How to bulk-create limits in Atoti Limits by uploading a CSV file from the Inventory screen.

Another way to create limits is to upload them in a CSV file within the **Inventory**.

Check out our video on how to upload limit structures and limits using CSV files:

<Frame>
  <iframe src="https://fast.wistia.com/embed/iframe/tvcv8yxbpu" width="100%" height="400" frameBorder="0" allowFullScreen />
</Frame>

To upload your files:

1. Click the Upload button.

<Frame>
  <img src="https://mintcdn.com/activeviam/xdqxmncf8zYRCehD/atoti-intelligence/workflows/limits/6.1/images/upload-button.png?fit=max&auto=format&n=xdqxmncf8zYRCehD&q=85&s=d80b1d7366c33c85873bad8cb8256c07" alt="" width="245" height="50" data-path="atoti-intelligence/workflows/limits/6.1/images/upload-button.png" />
</Frame>

A dialog is displayed with two tabs:

<Frame>
  <img src="https://mintcdn.com/activeviam/xdqxmncf8zYRCehD/atoti-intelligence/workflows/limits/6.1/images/upload-file-modal.png?fit=max&auto=format&n=xdqxmncf8zYRCehD&q=85&s=9bc671d901ecf7e9f8afecc08127f9b2" alt="" width="1276" height="279" data-path="atoti-intelligence/workflows/limits/6.1/images/upload-file-modal.png" />
</Frame>

* Upload a **Limit structure** file. For details on the valid input file, see [Limit Structure](../../input-files/limit_structures). If you haven’t got any limit structures created, upload this first.
* Upload a **Limit** file. For details on what the CSV file should contain, see [Limits approve](../../input-files/limits_approve).

<Note>
  When uploading a limit file, any referenced limit structures must be created first, either in the UI, or by uploading a limit structures file.
</Note>

2. Choose a valid CSV file from your local drive: click **Choose file** and navigate to the required file, then click **Open**.
   Atoti Limits displays a preview of your file in a table before the upload:

<Frame>
  <img src="https://mintcdn.com/activeviam/iy5FyCKdXjhHAnDS/atoti-intelligence/workflows/limits/6.1/images/parsed-limit-structure.png?fit=max&auto=format&n=iy5FyCKdXjhHAnDS&q=85&s=f3abdd69c9f75cfe7920dbd6abf95bfe" alt="" width="1251" height="668" data-path="atoti-intelligence/workflows/limits/6.1/images/parsed-limit-structure.png" />
</Frame>

3. Click **Upload limit structure file**/**Upload limit file**.
   If there are any errors, the preview displays detailed error messages:

<Frame>
  <img src="https://mintcdn.com/activeviam/iy5FyCKdXjhHAnDS/atoti-intelligence/workflows/limits/6.1/images/limit-file-error.png?fit=max&auto=format&n=iy5FyCKdXjhHAnDS&q=85&s=3d4c9df528f66fcd6659e3072a9b2279" alt="" width="1260" height="704" data-path="atoti-intelligence/workflows/limits/6.1/images/limit-file-error.png" />
</Frame>

If the file is valid, the file is uploaded to the server and the Inventory table automatically updates and displays the newly uploaded limits.

<Note>
  When a limit is created through upload, the StraightThrough workflow is applied and the limit goes directly into “APPROVED” status.
</Note>

## CSV file criteria

* Ensure you have “APPROVED” **Workflow Status** in the limits as the reference implementation assumes the limits are valid without any further approval.
* Your input file must contain every field to be considered valid. You can use the **Download** feature to generate example CSV files. This creates a CSV file line by line.
* Limits with the same name, cube, measure and scope will also be checked if their dates overlap with existing limits. If so, the upload will fail and no limits will be created.

## Download Limits

You can also download limits and limit structures from the Limits Inventory. Clicking **Download** downloads two CSV files, one containing the limit structures, and another containing data for each individual limit.
