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

# List Enrichment (Beta)

> Upload a list of people or companies as CSV or Excel, match it to Data Legion records, see the price, and buy and download the results.

> [!NOTE]
>
> List Enrichment is open to a few accounts while it is in beta. It will appear in your dashboard's sidebar when it opens to yours.

List Enrichment adds our data to a list of people or companies you already have, uploaded as a CSV or Excel file. You see how many records matched and what they cost before you pay, and you pay only for records we matched. Admins and developers can enrich lists; only admins buy the results.

It takes five steps, shown at the top of every list's page: **Upload**, **Match Columns**, **Run**, **Review and Buy**, **Download**.

## 1. Upload

Choose your file, then what to add to it: one of the six [products](https://www.datalegion.ai/docs/getting-started/self-serve-products.md), each priced per matched record.

| Limit | Value |
| - | - |
| Formats | CSV, TSV or Excel (.xlsx) |
| Size | Up to 250 MB |
| Rows | Up to 100,000 per list |

A longer file runs only its first 100,000 rows, and only those come back in your download, so split it first. A very large Excel file may ask to be saved as CSV (UTF-8), which reads faster.

## 2. Match Columns

We read the file and suggest which columns hold what we match on. Check them; anything else we can match on is under **Match Another Column**. We match on exact identifiers:

| People | Companies |
| - | - |
| Email, email hash (MD5, SHA-1 or SHA-256 of the lowercased address), phone, LinkedIn URL, LinkedIn ID, Legion ID | Domain or website, LinkedIn URL, ticker symbol, LinkedIn ID, Legion ID |

Beside your columns, the **Estimate** shows how many rows have a value to match on and **the most the list can cost**: every one of those rows matched, at your product's price. It updates as you change a column.

## 3. Run

Select **Enrich List**. The list is queued to start, then the page shows its progress beside what you chose: rows, the columns it matches on, the product and the most it can cost. You can wait on the page or leave it: we email you when it's done, or if we couldn't enrich it (nothing is charged then). You can stop a list that hasn't finished, and nothing is charged for it.

If a run fails or you stop it, **Run Again** puts the same upload back at Match Columns. Before a run, **Upload a Different File** on Match Columns takes you back to Upload.

## 4. Review and Buy

When the run finishes, the page sums it up: the **match rate** (rows that matched, out of rows with a value to match on), the **records** you'd buy, and their **match confidence** mix. Then choose what counts as a match:

* **Lowest confidence**: every match is rated high, moderate or low ([confidence levels](https://www.datalegion.ai/docs/data-quality/quality-scoring.md)). Choose the lowest you want.
* **Fields records must have**: each requirement is a field, or several where any one will do. A record must meet every requirement. For example, "Work Email or Mobile Phone", then "Job Title" buys records with a title and a way to reach them. Each field shows how many of your matches have it.

The summary, your order and the preview recount as you choose. **Your Order** shows the total; select **Buy All Matching Records** to pay in Stripe's Checkout. A purchase buys every matching record at once. A record matched on several rows is charged once and filled in on every row whose match meets the requirements. Each purchase is at least \$5.00, and the page asks before charging the minimum.

The **Preview** shows your first 10 rows as you uploaded them, each marked Included, Left Out (matched, but not under your choices) or No Match. Our columns stay locked until you buy.

Ran it on the wrong columns? Upload the file again as a new list; nothing is charged for a list you don't buy from.

If you bought under strict requirements, you can buy more later under looser ones: **Buy More Records** on the Download step charges only for records you don't have yet, and your downloads then include everything you bought.

## 5. Download

The page sums up what you bought: the records, what you paid and when downloads stop (the date and time the file is deleted). Each download is a link made for you when you select it, valid for a few minutes; downloads are never emailed. Choose one of three:

| File | What it holds |
| - | - |
| **CSV: Main Fields** | Your columns, then the fields that hold a single value (name, work email, mobile phone, job title, company and more, or for companies name, domain, industry, size and more). Fields with several values are only in the other two files. |
| **CSV: Every Field** | Every field. A field with several values spreads across numbered columns (up to 10 of each, with a count), so it is much wider. |
| **JSON Lines: Complete Records** | Every field and every value, one record per line. For developers and data tools. |

Every row of your list comes back, in your order, with your columns exactly as uploaded. Our columns start with `dl_`. `dl_status` says what happened to the row:

| `dl_status` | Meaning |
| - | - |
| `purchased` | Matched and bought: our fields are filled in |
| `matched_not_purchased` | Matched, but the record wasn't bought (for example, below the requirements you bought under; a later, looser purchase can still buy it) |
| `excluded_by_requirements` | The record was bought through another row, but this row's own match didn't meet the requirements, so it isn't filled in here |
| `no_match` | No record matched |
| `needs_identifier` | The row had no value to match on |
| `unsupported_identifier` | Company lists only: a value lists can't match on yet, such as a website with a path |
| `invalid_identifier` | The value couldn't be read as what its column holds |

`dl_match_confidence` is the match's confidence level, on rows we filled in; it is blank on every row that wasn't filled in.

### Spreadsheet safety

In the columns we add, a cell that a spreadsheet would run as a formula (one starting with `=`, `+`, `-` or `@`, for example) starts with an apostrophe, so opening the file never runs anything we wrote. Plain numbers and phone numbers stay as they are. Your own columns come back exactly as you uploaded them from a CSV, TSV or text file; from an Excel file, their cells get the same apostrophe, since a CSV would otherwise turn an Excel value into a formula.

This protects our downloads only: a tool that copies data into a spreadsheet (Zapier, Make, n8n, or an Apify export to Google Sheets) passes values through unguarded.

## Retention

Your file and its results are deleted 30 days after the run. Download what you need before then.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.