Email verification
Email List Verification: A Practical Workflow for CSV Lists
Email list verification workflow: prepare a CSV, handle repeated rows, sort valid, invalid, catch-all and unknown results, and estimate credit use.

Email List Verification Workflow: A Practical CSV Checklist
The question: How do you turn a raw contact list into something your team can review before outreach, without losing track of rows or paying for answers you didn't get?
The short answer: Put all the addresses in one column of a clean CSV. Check for unreadable and repeated rows before you start. Run the check, then sort the results. Act on Valid and Invalid, review Catch-all, and set Unknown and Still checking items aside. With FairValid, only completed Valid or Invalid results cost a credit. Each step is covered below.
Evidence note: the product details in this article come from FairValid's public help and pricing pages, checked November 7, 2026. Limits and prices can change, so confirm them on the linked pages before you rely on them.
Step 1: Prepare the file so source rows stay intact
Most cleanup problems start with the file, not the verification. FairValid's CSV preparation guide says you can upload a UTF-8 CSV or TXT file of up to 100 MB (100,000,000 bytes) and 1,000,000 data rows. Pasted text can be up to 8 MiB and 100,000 rows. If you work in a spreadsheet, save it as CSV before you upload it.
A few habits make the rest of the workflow easier:
- Put every address in one column. Don't spread addresses across several columns.
- Keep your other columns. The guide says other columns stay attached to their original source row, so names, owners and internal IDs stay next to the address they belong to.
- Use the header option if your file has column names. Select "The first row names the columns."
- Check the full-file preview and pick the correct email column before you start a run.
Step 2: Review unreadable and repeated rows first
The CSV guide asks you to review unreadable and repeated rows before you start a run. This is a good time to fix obvious formatting problems at the source.
You don't have to remove repeated addresses by hand. Within a single imported list, a repeated address shares one verification result across all of its source rows. Repeated rows don't create extra sample or run charges. This only covers duplicates inside one import. It doesn't mean separate submissions or later rechecks of the same address are always free, so plan for those separately.

Step 3: Read the results as evidence, not a promise
When the run finishes, sort the list by result. FairValid's results guide defines each one:
- Valid: a usable positive check. A valid result never guarantees inbox delivery.
- Invalid: the address did not pass.
- Catch-all: the domain may accept many addresses, so a mailbox-level conclusion may be less certain. Read the result detail before you use it.
- Unknown: the check could not return a dependable answer.
- Still checking: there's no final answer yet. Treat it as pending, not as a final result, and don't group it with Unknown.
The results guide also says technical failures and unprocessed items don't create a net verification charge. Keep them as their own group in your reports rather than counting them as Unknown.
One way to act on each group
This is an illustrative example only. It isn't a FairValid recommendation or customer data. A team might use these rules:
- Invalid: take it off the outreach list, or flag the source row for correction.
- Valid: keep it for review under your normal sending practices.
- Catch-all: hold it for a separate decision, such as reading the result detail or using other signals your team trusts.
- Unknown: treat it as unresolved, neither good nor bad. If you recheck it later, remember that's a separate check.
- Still checking: wait for a final result before you decide anything.
Because your extra columns stay attached to their source rows, you can match each result back to where the contact came from.
Step 4: Understand what the run will cost
Knowing how credits are counted helps you size a list before you upload it. According to FairValid's pricing page:
- A completed Valid or Invalid result uses 1 credit.
- Unknown or catch-all results have no net charge. Any credits held for them are released or returned.
- Still checking items have no final charge yet. A hold is not a completed charge.
The results guide adds that technical failures and unprocessed items don't create a net verification charge.
"No net charge" doesn't always mean credits were never reserved. It means you aren't charged in the end.
To pay for the work:
- Accounts include 300 free credits each month. They're used first and don't roll over.
- You can make a one-time purchase of any whole amount from 2,000 to 1,000,000 credits. For example, on November 7, 2026, the pricing page listed 10,000 credits at USD 19.50 as a one-time purchase, excluding tax.
- Monthly plans are a separate option. They buy a fixed number of credits each billing period, and you don't need one to make a one-time purchase.
- Unused paid credits don't expire while your account stays open.
To estimate the cost, count the unique addresses in your import. The run can cost at most one credit per unique address. Every result that comes back Unknown or catch-all, or doesn't finish processing, lowers that number.

A quick checklist for your next list
- Saved as UTF-8 CSV or TXT, within the size and row limits
- Addresses in one column, header option set correctly
- Unreadable and repeated rows reviewed in the preview
- Results split into Valid, Invalid, Catch-all, Unknown and Still checking
- Technical failures and unprocessed items kept separate from Unknown
- Catch-all and Unknown treated as uncertain, not as good or bad
- Results matched back to their source rows
- Credit needs estimated from unique addresses
Try it on a small list first
If you're still working out how this fits your process, a small test list is an easy place to start. The monthly free credits cover a modest run, and you'll see how results look next to your own columns. When you're ready for a larger import, check the current pricing and the CSV guide.


