What happens if my file has a header row vs no header row?

Last updated May 19, 2026Bulk verification

Either a header row or no header row is fine for Valid Email Checker bulk uploads. The parser figures out which kind of file you uploaded by looking at the first row and choosing the right strategy. The column-picker logic makes this decision automatically. Here is how the two paths play out.

Path 1: your file has a header row

The parser inspects the first row of your CSV and checks each cell against a list of known email-column header names: email, e-mail, email_address, emailaddress, mail, email address. If any cell matches (case-insensitive, with whitespace trimmed), the parser concludes that row 1 is a header. From that point:

  • The matched column becomes the email column.
  • Other cells in row 1 become the labels for the other columns (preserved in the result file).
  • Processing starts at row 2.
  • Result file uses your original headers alongside the new verification headers.

Path 2: your file has no header row

If the first row does not contain any of the recognized email headers, the parser checks whether the first row contains actual email data instead. If the regex matches a cell in the first row, the parser concludes there is no header and treats row 1 as data. From that point:

  • The column with the matching email cell becomes the email column.
  • Other columns get generic labels: Column1, Column2, Column3, and so on.
  • Processing starts at row 1.
  • The result file uses the generic labels for your carry-through columns alongside the verification headers.

Which is better?

A header row is preferred. The reason: when you re-merge the verification results back into your source system (CRM, ESP, spreadsheet), having meaningful column names like first_name and signup_date instead of Column1 and Column2 makes the merge trivial. All those carry-through columns are preserved in the output, so the header names you ship in are the ones you get back. If your export tool offers a "include header row" option, leave it on.

Edge cases worth knowing

  • A header row with no recognized email header (custom names like contact_email_address) gets misclassified as data. The parser falls through to regex detection and labels columns generically. Rename the column to email to force the header path.
  • A file where the first row is a header for some columns but data for others (rare but happens with hand-edited CSVs) is treated as data. Clean these by hand before upload.
  • TXT files (one email per line) are processed flat regardless — no header detection applies.
When in doubt, open the CSV in a text editor and look at the first two lines. If line 1 has words like email,first_name,source and line 2 has actual data, the header detection will work as expected.