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

# Custom Data (CSV) Formatting Requirements

> Review the CSV and API upload rules for custom app data, covering UTF-8, the 10 MB limit, required fields, Status values, character limits and date formats.

## Background

This article describes the formatting requirements for data you upload through a CSV or the Lumos API. These requirements apply when you **add a custom app** ([Adding a Custom App](/for-admins/applications-entitlements/adding-a-custom-app)) or **import custom data** ([Adding Custom Data to Your Apps](/for-admins/applications-entitlements/adding-custom-data-to-your-apps)) to an existing app.

## Content

The upload serves as a "snapshot" of your account data. Lumos treats any data missing from the CSV as if it no longer exists, and updates existing data to reflect the information in the CSV.

Include your complete account list in every upload. Lumos treats each upload, through a CSV or the Lumos API, as the current state of the app's manually uploaded accounts. Any account that isn't in your upload is marked Deprovisioned, unless another source, such as your IdP or an integration, reports a different status for it. To restore an account, include it in a later upload. See [Adding Custom Data to Your Apps](/for-admins/applications-entitlements/adding-custom-data-to-your-apps#updating-custom-data-for-existing-accounts).

## Character formatting

The characters in an uploaded CSV must be in **UTF-8** format. If they are not, the upload fails.

## File size

The maximum allowed file size for an uploaded CSV is **10 MB**. Lumos rejects larger files.

## Required fields

When you upload account data, you must include one or both of the following field combinations. When you import a CSV in Lumos, you match your CSV columns to these fields in the mapping step. See [Adding a Custom App](/for-admins/applications-entitlements/adding-a-custom-app).

* *Email* **OR**
* *First Name* **AND** *Last Name*

If a row is missing one of these required elements, the upload fails.

Email is **strongly recommended**, as it ensures that employees with identical first and last names are matched correctly.

## Account Status

The *Status* column in the data you provide has to match one of the following values.

* DISCOVERED
* STAGED
* ACCESS\_CREATED
* ACTIVE
* SUSPENDED
* DEPROVISIONED
* ARCHIVED
* MANUALLY\_REMOVED
* ACCESS\_REMOVED
* NON\_CORPORATE\_ACCOUNT
* WAITING\_MANUAL\_REMOVAL

If you provide an invalid value, the upload fails.

If you provide **no** value or omit this column, Lumos assumes that the status of every uploaded account is **ACTIVE**.

## Character Limits

* **Permission** values in CSV uploads are subject to character limits. The limit applies to each individual value after delimiter splitting, with an effective limit of **about 220 characters, depending on the permission column name**. This is because Lumos builds a unique ID in the format `custom_app_permission_{permission_column_name}_{permission_value}`, which must fit within 255 characters total.
* **Attribute** column header names are also subject to a 255-character limit. This checks only the column name itself, not the values.

### Using delimiters

If a cell contains multiple values (e.g., `Admin;Editor;Viewer`), the limit applies to **each value after splitting**, not the whole cell. If the delimiter is missing or incorrect, the entire cell is treated as one value and is more likely to exceed the limit.

### Error message

If a value exceeds the character limit, you'll see:

*"The field '...' exceeds the 255-character limit. Please shorten the value, check that the correct delimiter was selected, and re-upload."*

## **Last Login and Last Activity**

Use `YYYY-MM-DD`, for example `2026-07-30`.

These fields also accept:

```text theme={null}
2026-07-30 14:23:00
2026-07-30T14:23:00
2026-07-30T14:23:00Z
2026-07-30T14:23:00.000Z
2026-07-30T14:23:00+02:00
2026-07-30T14:23
20260730
2026/07/30
30 July 2026
July 30, 2026
```

Windows file time values such as `134299224000000000` and Unix timestamps such as `1753879380` are not read.

## Date value if mapping to End Date or Start Date Default Attributes

If you are going to map an uploaded attribute as a [**Default Attribute**](https://app.lumosidentity.com/settings/source_of_truth) **for Start Date or End Date,** upload dates **must be** in `YYYY-MM-DD` format, for example `2026-07-30`.

These formats will not work as expected when mapped as the End Date or Start Date Default Attributes:

* `20.07.26`, `30.07.2026`, `07/30/2026` — day-first and month-first formats.
* `20260730` — no separators.
* `134299224000000000` — Windows file time, which appears when a column is exported directly from Active Directory. Convert to a calendar date first.
* `0001-01-01` — years before 1000 are rejected. Leave the cell empty instead.
