How to Import Contacts Into Brevo From a CSV (and Verify Them First)
To import contacts into Brevo safely, verify the CSV before the import, so hard bounces never start. Brevo is stricter than most senders about bounce rates, and a single large import to an unchecked list can be enough to cause trouble. This post covers the file preparation, the verify step and what to confirm on Brevo's import screen.
Why Brevo is the one to be careful with
Brevo's help centre lists a hard bounce rate above 2%, an unsubscribe rate above 1% or a complaint rate above 0.2% among the negative results that can lead to campaigns being suspended (read 9 November 2026 via our own Brevo list cleaning guide). That 2% line is the lowest we found when we compared bounce limits across platforms.
Two things follow.
- Brevo blocklists after the first hard bounce. That keeps you from mailing the same dead address twice, but the first bounce has already counted.
- A big first send amplifies it. A list of 10,000 with a few percent invalid can cross the line in a single campaign. If your campaigns are already suspended, see Brevo campaigns suspended: how to reactivate.
Step 1: Prepare the file
Open the CSV in a spreadsheet.
- Header row in row one, plain names:
email,first_name,last_name,company. - One contact per row. No merged cells, no formulas, no multiple sheets.
- UTF-8 encoding. If accents are garbled, fix garbled characters in CSV.
- Phone numbers as text. See clean phone numbers in CSV.
- Consistent country names or codes, if you use them as attributes.
The Brevo contact import file formatter tidies the headers in your browser. Brevo maps columns to attributes on its import screen, so check the mapping there rather than trusting any fixed header list.
Step 2: Remove blanks and repeats
- Remove duplicate emails. Mailing one person twice reads as careless.
- Remove blank rows.
- Check how many cells are empty in the columns you personalise with. See CSV fill rate before mail merge.
Step 3: Verify every address
Upload the cleaned file at /verify. SimpleVerifier does real SMTP mailbox checks, not just syntax, and flags catch-all, disposable and role addresses.
| Result | Meaning | What to do |
|---|---|---|
| Valid | Mailbox accepted the check | Import to the main list |
| Risky | Often a catch-all domain | Separate list, small batches |
| Invalid | Mailbox or domain does not exist | Do not import |
Catch-all domains accept any address at the SMTP step, so no verifier can confirm a single mailbox there. Our guide on what to do with catch-all emails covers the options.
Step 4: Import and check the mapping
On Brevo's import screen:
- Choose the file and the destination list.
- Map the email column to email, first name to the first name attribute and so on.
- Create any custom attributes first so columns are not dropped.
- Look for any option about already-blocklisted contacts and read it before accepting. Check Brevo's wording on the screen, because we have not tested it against your account.
Name the destination list with the source and date, for example webinar-nov-2026-valid, so that if bounces appear you know which batch they came from.
Step 5: Send a small batch first
Send the first campaign to a slice of the list. If the hard bounce rate is far under 2%, widen. If not, stop and compare sources with find which list source caused bounces.
Handling contacts already in Brevo
If your account already holds an old list, export it, verify it, and blocklist the invalid addresses rather than deleting them. Brevo recommends blocklisting in its guidance on cleaning, according to our Brevo list cleaning guide: blocklisted contacts keep their data and cannot be re-imported as subscribed by accident.
Consent still matters
Verification answers whether a mailbox exists. It does not answer whether the person asked to hear from you. Only import contacts you are allowed to email, and record where each came from.
A note on API keys
If you automate imports through Brevo's API, keep the key active. See Brevo API key deactivated after 90 days for the inactivity rule.
Cost of verifying every import
SimpleVerifier Pro is $39 a month (or $390 a year), with the first 100,000 checks a month at full speed, then slower, never cut off. Per the pricing page, Pro also includes:
- CSV upload, up to 100,000 rows per file
- Real SMTP mailbox checks, not just syntax
- Catch-all, disposable and role-address detection
- Export valid, risky or invalid separately
- An email finder and website enrichment
- API: 10,000 calls a month included, then $1.50 per 1,000
Only email verification has the 100,000 full-speed fair-use line. The finder and API are not unlimited. We do not publish accuracy percentages, so run a sample of your own data.
Pre-import checklist
- Plain headers, header row first.
- One contact per row.
- Duplicates and blanks removed.
- Every address verified.
- Invalid rows out, risky rows held.
- Attributes created and mapped.
- List named with source and date.
- First send to a small batch.
Quick answers
- Is verifying worth it for a few hundred contacts? Yes. With a 2% line, even a small list has little margin.
- How often should I re-verify? Before each campaign to a list older than a month or two.
- Does verifying guarantee zero bounces? No. Mailboxes can fill or close after the check. It removes the addresses that are already dead.
Try it on your own list
Upload the file at /verify. The first 100 checks are free with a Google sign-in, no card.
Pro, $39 a month: Unlimited email verification.* Never metered, never cut off. See pricing.
*Fair use: the first 100,000 checks a month at full speed, then slower, never cut off.
Common questions
What bounce rate can get Brevo campaigns suspended?
Brevo's help centre lists a hard bounce rate above 2%, an unsubscribe rate above 1% or a complaint rate above 0.2% among the negative results that can suspend campaigns. Always check the current figures on Brevo's pages.
Does Brevo clean my list for me?
It blocklists an address automatically the first time it hard bounces, and never retries it. That protects the future, but the first bounce still counted against you.
How should I format a CSV for Brevo?
A header row, one contact per row, and an email column. Other columns map to contact attributes on the import screen. Confirm the mapping there, because attribute names are specific to your account.
Should I import risky addresses?
Not into your main list. Hold them back and send in small batches while you watch bounces, or leave them out.
Can I verify without leaving Brevo?
Verification runs on a CSV, so export your contacts, check the file at /verify, and re-import or blocklist the invalid ones.
Check your list before you send
Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.