# Verify a whole list of emails without uploading it anywhere

Bulk email verification software usually means uploading a CSV to one more dashboard. Here your agent reads the list from a file, a sheet or a workspace table, runs contact.verify on each address in one batch with a total spend cap, and writes valid, invalid or unknown back next to every row.

HTML page: https://www.routergrowth.com/tools/email-finder/bulk-verification-software
Part of: [Email finder tools](https://www.routergrowth.com/tools/email-finder.md)

## The call

[`contact.verify`](https://www.routergrowth.com/catalog/contact.verify): Verify deliverability of a professional email: valid, invalid, or unknown, with catch-all and mail-server details.

Price on this network: $0.002 per verdict. The exact quote is shown before every run.

## What a real run returned

Run on 2026-10-16: 1 records in 3.7 s for $0.002. Personal fields are masked. One row of a list check, shown on its own: a UK domain address came back valid and ultra_sure on Google Workspace.

| email | status | certainty | mx_provider |
|---|---|---|---|
| t***@***.co.uk | valid | ultra_sure | google |

## How to do it

1. **Connect RouterGrowth once.** Add the MCP server to Claude, ChatGPT, Claude Code, Codex or Cursor, or call the REST API with your RouterGrowth key.
2. **Give it the list.** Point the agent at a CSV, a Google Sheet export or a RouterGrowth workspace table with an email column.
3. **Run the batch.** The agent sends the addresses through batch_run with a maximum total cost, so the job stops before going over budget.
4. **Get the list back.** Each row gets its status, certainty and catch-all flag. Ask for a CSV of the valid ones, or a count by verdict.
5. **Recover the bad rows.** For invalid rows where name and company are known, the agent can find a fresh address with contact.find.

## Ask it like this

- Verify every email in leads.csv, keep a max total cost of $5, and give me back a CSV with a status column. (`contact.verify`)
- Check the emails in my webinar sign-up table and replace the invalid ones with found work emails. (`contact.verify`, `contact.find`)
- How many addresses in this list are catch-all? List them separately. (`contact.verify`)

## Connect

MCP server: `https://api.routergrowth.com/mcp`

```bash
claude mcp add --transport http routergrowth https://api.routergrowth.com/mcp
```

```bash
npm install -g routergrowth && routergrowth setup
routergrowth run -c contact.verify -i '{"email": "alex.rivera@example.com"}'
```

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "contact.verify", "input": {"email": "alex.rivera@example.com"}}'
```

## Worth knowing

- **The cap protects the batch.** batch_run takes a maximum total cost. The batch stops before it would pass it.
- **Duplicates are worth removing first.** Ask the agent to dedupe the list before the run, so the same address is not checked twice.
- **The list stays in your files.** Rows are read and written by your agent. There is no upload to a separate verification site.

## Questions

### How large a list can it handle?

The batch runs row by row, so size is limited by your budget and time, not by a file limit.

### What format does the output come in?

Whatever you ask for: a CSV, rows added to a sheet, or a workspace table with the verdict per address.

### Are invalid results charged?

Each verdict returned is charged, valid or invalid. A row where no provider returns a result is not.

### Can I schedule it every week?

Yes, if your agent runs on a schedule. Each run verifies the rows you point it at.

## Related

- [Find where to reach a brand from its YouTube channel](https://www.routergrowth.com/tools/email-finder/youtube.md)
- [Read a TikTok brand account's bio, links and contact email](https://www.routergrowth.com/tools/email-finder/tiktok.md)
- [Find the contact details a brand lists on its social profiles](https://www.routergrowth.com/tools/email-finder/social-media.md)
- [Check whether an email address will accept mail before you send](https://www.routergrowth.com/tools/email-finder/verification-tools.md)
- [Turn the LinkedIn profile you are reading into a verified work email](https://www.routergrowth.com/tools/email-finder/linkedin.md)
- [Get the email and links an Instagram brand account shows](https://www.routergrowth.com/tools/email-finder/instagram.md)
- [Get work emails for the people you want at one company](https://www.routergrowth.com/tools/email-finder/company.md)
- [Find someone's work email from their name and where they work](https://www.routergrowth.com/tools/email-finder/by-name.md)
- [Verify one email address in the middle of a conversation](https://www.routergrowth.com/tools/email-finder/address-verification.md)
- [Verify emails from your own code with one POST request](https://www.routergrowth.com/tools/email-finder/verification-api.md)
