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

# Email Finder

> Find a verified work email from a person's name and their company's domain or name — one at a time or from a CSV.

The **Email Finder** (sidebar → **Email finder**) finds a person's **verified** work email from
their name and company. Every address is checked with the company's mail server before you see
it. Loice never guesses an address, and never delivers a catch-all or risky one.

## Find one email

**1. Choose the lookup mode**

* **Domain** — you know the company's website, e.g. `loom.com`. - **Company
  name** — you know only the name, e.g. `Loom`. Loice first resolves the
  company to its domain, then searches there.

**2. Enter the person**

**First name** and **Last name**, and the company domain or company name.

**3. Click Find email**

The price is shown under the button before you click. The answer arrives in
a few seconds and is added to the history on the right.

In **Domain** mode the field cleans up what you paste (`https://www.loom.com/pricing` →
*Searching loom.com*) and checks it before sending:

* an entry that is not a domain → *Enter a company domain, like loom.com*;
* a personal or social domain such as `gmail.com` → *… is not a company email domain* (the
  button stays disabled);
* a domain with no mail server → *This domain can't receive email* (the lookup is refused and
  free).

## Results

| Outcome | What it means | Billed |
| - | - | - |
| **Email found** | A verified address, with a confidence of **High**, **Medium** or **Low**. | Yes |
| **No verified email found** | The lookup completed, but no address could be verified — including addresses the mail server accepts for anyone (catch-all) or could not confirm (risky). | Yes |
| **Couldn't find that company** | Company name mode: the name could not be resolved to one company. | Company lookup only |
| **That address is not a company email domain** | The resolved or entered domain cannot receive work email. | No (Domain mode) / company lookup only (Company name mode) |
| **This person asked not to be contacted.** | The person is on the [do-not-contact list](https://docs.loice.ai/do-not-contact.md). | No |
| **Data provider is busy** / **We couldn't complete this lookup** | Try again. | No |
| **Not enough points** | Opens the payment popup. | No |

> [!NOTE]
>
> **Company name mode costs two parts**: the company lookup and the email
> search. If the company cannot be resolved, or its domain cannot receive email,
> only the company lookup is charged — the dialog and the toast say so.

The history (**Searches**) shows Name, Company, Confidence and Email, 25 rows per page. Select
rows to **Add to list** or **Download CSV**. A history entry that delivered an email is kept for
30 days.

## Bulk: Import CSV

**1. Prepare the file**

Click **Import CSV**, then **Download template** for a sample. One person
per row with **First Name**, **Last Name** and **Company Domain**. Common
headers are recognised automatically: *name / full name / contact*, *first /
last / surname*, *company / domain / website / url / organization /
employer*. A row with a company name and no domain is resolved first and
pays the two-part price; the popup tells you how many rows that applies to.

**2. Import**

Drop the file (comma or semicolon separated, up to 500 rows and 2 MB). The
popup counts the rows before you click **Import**. A row that cannot be
searched is not charged.

**3. Follow it under Batches**

The batch runs in the background — you can leave the page. **Batches** shows
File, Created, Status, Progress and points spent. **Cancel batch** stops it;
unprocessed rows read *Not processed*.

**4. Download**

Open the finished batch and click **Download CSV**: your original columns
plus `loice_email`, `loice_status`, `loice_confidence` and `loice_outcome`.
Or **Add to list**.

* Duplicate rows (same name and company) are searched once and marked *Same as row N*; they are
  not billed again.
* Rows with missing data are *Skipped — missing data* and free.
* If the workspace runs out of points, the batch stops and the remaining rows read *Skipped —
  insufficient points*.
* Up to 2 batches can run per workspace at a time. Finished batches are kept for 30 days.

Row outcomes in the file: *Valid email*, *Not found*, *Not valid*, *Error*, *Skipped — missing
data*, *Skipped — insufficient points*, *Not processed*, *Do not contact*.

## Billing

* A lookup that completed is billed, **found or not** — "nobody matched" is a real answer.
* An answer from our own records costs the same as a fresh one.
* Free: invalid input, do-not-contact, a provider that did not answer, our own failure, and a
  retried submit (each submit carries its own idempotency key, so a network retry is never billed
  twice).

> [!TIP]
>
> API: `POST /api/v1/find` (`mode`: `email`, `company` or `linkedin`). MCP:
> `find_email`. Every answer states the domain it searched (`searchedDomain`)
> and where that domain came from (`domainSource`: `typed`, `company-record` or
> `profile`), or `null` for both when nothing was searched. For a LinkedIn
> profile the company's own page is preferred, so the searched domain can differ
> from the domain the profile states.


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