Email List Validation
The bulk email validator accepts both .txt and .csv file types. Please make sure your file is in one of our accepted formats. When you upload a file, our system will scan it. The file will be rejected if something unusual is detected. If you upload a .csv file, the first few columns will be displayed after you click "Validate File". Our system will try to determine the column's data type, as well. Any mistakes can be fixed before validation. If you can't get the system to accept your file, please use the help button on the bottom right to contact us.
Please make sure your file follows one of the formats here: Allowed File Formats
Column Matching and Data Append
Column matching is important, because if you upload a .csv with a first name column, our system will use that information to tell you the gender of that email. Apart from the gender, our system also has the ability to determine the location, account creation date, first and last name of some of the emails you upload. It will use the data you provide and fill in the gaps. We don't store your emails or your data. Our Data Append feature uses public sources of information known to be 99% accurate. If the IP address is provided, we will append the city, region/state, zip code, and the country to the output.
Duplicate, Uni-coded, and Malformed Email Addresses
All duplicate, uni-coded, and malformed email addresses will be removed from the list. So, if you upload a list of 5,000 emails and you have 1,000 duplicates, only 4,000 will be processed. No, you will NOT be charged for submitting duplicate, uni-code, or malformed emails. Invalid email syntax is different from uni-coded and malformed emails. Once your file is finished processing, there will be an arrow on the left of the file name that you upload, which will expand a section below to show you if we found any of the above mentioned conditions.
Long File Names
ZeroBounce will truncate all file names over 70 characters. We do this because windows will only support 160 characters in a file path and with log filenames customers hit that limitation when extracting the files from the zip file. Please name your files accordingly, to not exceed the 70 character limitation.
All files, whether it's one email or a million emails, will most likely take 20 minutes or longer to process. We can process the emails much faster, but we have an anti-greylisting technology which requires the results to be delayed by 15 minutes to reduce the number of "Unknown". We do have the ability to process 80-100 million emails a day. Some email domains take longer to validate than others, but you will not be waiting days for the results. It will take about 1 to 3 hours per 100,000 of mixed domains. The system will update the progress on every 100,000 validated emails. You can check the status on the "Download Your Results" page. Once your entire list is fully validated, you will receive an email notification letting you know your results are ready to be downloaded.
TIP: If you want faster results, break out the major ESP domains (Yahoo, Gmail, Hotmail, etc) from the others into separate files. These domains process much faster than the smaller ones.
Allowed File Formats
Examples of Accepted Text File Formats:
Example Text File 1:
Example Text File 2:
Example Text File 3:
Examples of Accepted CSV File Formats:
A CSV file is accepted if it's separated by Comma's [ , ], Pipes [ | ], Tabs [ ], or Semi-Colons [ ; ], or Carriage Returns/Line Feeds. If it's separated with a different delimiter, it will consider your CSV File as a single column file. If you save your spreadsheet as a CSV or TXT file, the system will accept it.
Example CSV File 1:
Example CSV File 2:
- If your CSV file contains a header row (In the column matching screen) after you click "Validate File", please check the "Yes" for "Header Row" before clicking "Process File" , if you check "No" it will process the header row as an email address.
- If your CSV file has multiple columns of email addresses, we will allow you to select which column of emails you want us to process
- If we detect a large number of invalid emails or missing emails the system will reject it.
- All rows that don't have an email address in it will be ignored and removed.
- All duplicate emails will be removed, if a duplicate email is encountered the entire row is removed.
- If you have multiple email addresses in the same cell, it will be processed as a single email address, which will all end up being invalid
- We support up to 500 columns of data in your CSV file and a 1 gigabyte file size uploads.
Once the status of your file is "completed", just click on the file name. A new section including the options for the download will open below. Select what properties you want us to append on to your results. The results will be broken down into separate files based on the status of the email: Valid, Invalid, Catch-All, SpamTrap, Abuse, Do Not Mail, and Unknown (i.e. YOUR_UPLOADED_FILE_NAME_valid.csv, YOUR_UPLOADED_FILE_NAME_invalid.csv and so on). The original file you uploaded will be included to the results as well. The files will be compressed into a .zip file. If you enabled password protected downloads, the zip file will be encrypted and the password will be emailed to you.
Please visit our status codes documentation for a complete reference of all status and sub_status codes found in your downloaded files.
What's in the ZIP file?
The zip file will contain the following data:
- _abuse.csv - This file contains all identified emails that are likely to mark your emails as spam.
- _all_results.csv - This file contains all the results.
- _catch_all.csv - This file contains all emails that our system identified as a catch-all domain. (catch-all domains are domains that accept any email, however, we do not recommend to sending to catch-all domains because it's risky and can harm your IP reputation)
- _donotmail.csv - This file contains all emails that are role-based, disposable, toxic, and possible spam trap email addresses and shouldn't be mailed to, look at the sub_status to determine the classification.
- _invalid.csv - This file contains all emails that we identified as invalid.
- _original.csv - This is the original file you uploaded.
- _overview.pdf - This PDF contains of an executive summary of your results.
- _spamtrap.csv - This file contains all emails that we identified as being spam traps.
- _unknown.csv - This file contains all emails that we could not verify, this normally happens when the email server in question times-out or responds with a non RFC-compliant response.
- _valid.csv - This file contains all the valid email addresses you should mail to.
- _rejected.csv - This file contains all emails/rows that we rejected and didn't process, don't worry you weren't charged for these. We will reject duplicate emails, malformed emails, missing emails, and emails with non-ASCII characters. If this file does not appear in your download, nothing was rejected. You can see the counts of what was rejected by clicking the arrow next to the file name on the member's download screen.
Unlocking the ZIP File - If you enabled the password protected downloads option.
When you download your results, it will be downloaded as an encrypted zip file, the password for the file will be sent to the email account you registered with. Please allow a few minutes for the password to arrive and make sure you check your spam/junk folders. If you do find it in your spam/junk folder, please mark it as "NOT SPAM", so it will land in your inbox on any new downloads.
Please note that every time you download the file, even the same file, it will have a different password.
In some rare cases, on older MAC OS X there are some decompression issues, you should follow the instructions from here, if you encounter this issue: Decompression Issues
We do this as an additional step in protecting your data. For example, if someone gains access to your ZeroBounce account, they won't be able to decrypt your data without also having access to your email.
Once you have downloaded and unlocked your ZIP file you will find up to 11 files in CSV format and 1 as PDF:
In the CSV files, you will find in the first row 13 additional columns:
All of the status codes are described in detail in the Status Codes section.
- Email Address - contains the email addresses which are contained in the specific CSV ( all your emails will be found in the YOUR_UPLOADED_FILE_NAME_originals.csv ).
- ZB Status - This field contains the status of the verified email address. It can be one of the following: Valid, Invalid, Catch-All, Spamtrap, Abuse, Do Not Mail, Unknown.
- ZB Sub Status - This column contains: antispam_system, does_not_accept_mail, exception_occurred ,failed_smtp_connection, failed_syntax_check, forcible_disconnect, global_suppression, greylisted, leading_period_removed , mail_server_did_not_respond, mail_server_temporary_error, mailbox_quota_exceeded, mailbox_not_found, no_dns_entries, possible_traps, possible_typo, role_based, timeout_exceeded, unroutable_ip_address, alias_address ,role_based_catch_all, disposable, toxic.
- ZB Account - This will give you the account name of the email address.
- ZB Domain - Here you will find the domain where the account was created at.
- ZB First Name - The first name of the owner of the address.
- ZB Last Name - The last name of the owner of the address.
- ZB Gender - We can even detect the gender of the person.
- ZB City/state/zip/country - When you include the IP addresses of email users, our service will return the location data for each email.
- ZB Free Email - [true/false] If the email comes from a free provider.
- ZB MX Found - [true/false] Does the domain have an MX record.
- ZB MX Record - The preferred MX record of the domain.
- ZB SMTP Provider - The SMTP Provider of the email or [null] (BETA).
Deliverability Status Explanation
- valid - These are emails that we determined to be valid and safe to email to, they will have a very low bounce rate of under 2%. If you receive bounces it can be because your IP might be blacklisted where our IP was not. Sometimes the email accounts exist, but they are only accepting mail from people in their contact lists. Sometimes you will get throttle on number of emails you can send to a specific domain per hour. It's important to look at the SMTP Bounce codes to determine why.
- alias_address - (valid) These emails addresses act as forwarders/aliases and are not real inboxes, for example if you send an email to firstname.lastname@example.org and then the email is forwarded to email@example.com. It's a valid email address and you can send to them, it's just a little more information about the email address. We can sometimes detect alias email addresses and when we do we let you know.
- leading_period_removed - (valid) If a valid gmail.com email address starts with a period '.' we will remove it, so the email address is compatible with all mailing systems.
- invalid - These are emails that we determined to be invalid, please delete them from your mailing list. The results are 99.999% accurate.
- does_not_accept_mail - (invalid) These domains only send mail and don't accept it.
- failed_syntax_check - (Invalid) Emails that fail RFC syntax protocols
- possible_typo - (invalid) These are emails of commonly misspelled popular domains. These emails are marked invalid.
- mailbox_not_found - (invalid) These emails addresses are valid in syntax, but do not exist. These emails are marked invalid.
- no_dns_entries - (invalid) These emails are valid in syntax, but the domain doesn't have any records in DNS or have incomplete DNS Records. Therefore, mail programs will be unable to or have difficulty sending to them. These emails are marked invalid.
- mailbox_quota_exceeded - (invalid) These emails exceeded their space quota and are not accepting emails. These emails are marked invalid.
- unroutable_ip_address - (invalid) These emails domains point to an un-routable IP address, these are marked invalid.
- catch-all - These emails are impossible to validate without sending a real email and waiting for a bounce. The term Catch-all means that the email server tells you that the email is valid, whether it's valid or invalid. If you want to email these addresses, I suggest you segment them into a catch-all group and know that some of these will most likely bounce.
- spamtrap - These emails are believed to be spamtraps and should not be mailed. We have technology in place to determine if certain emails should be classified as spamtrap. We don't know all the spamtrap email addresses, but we do know a lot of them.
- abuse - These emails are of people who are known to click the abuse links in emails, hence abusers or complainers. We recommend not emailing these addresses.
- do_not_mail - These emails are of companies, role-based, or people you just want to avoid emailing to. They are broken down into 6 sub-categories "disposable","toxic", "role_based", "role_based_catch_all", "global_suppression" and "possible_trap". Examine this file and determine if you want to email these address. They are valid email addresses, but shouldn't be mailed in most cases.
- global_suppression - (do_not_mail) These emails are found in many popular global suppression lists (GSL), they consist of known ISP complainers, direct complainers, purchased addresses, domains that don't send mail, and known litigators.
- possible_trap - (do_not_mail) These emails contain keywords that might correlate to possible spam traps like spam@ or @spamtrap.com. Examine these before deciding to send emails to them or not.
- role_based - (do_not_mail) These emails belong to a position or a group of people, like sales@ info@ and contact@. Role-based emails have a strong correlation to people reporting mails sent to them as spam and abuse.
- disposable - (do_not_mail) These are temporary emails created for the sole purpose to sign up to websites without giving their real email address. These emails are short lived from 15 minutes to around 6 months. There is only 2 values (True and False). If you have valid emails with this flag set to TRUE, you shouldn't email them.
- toxic - (do_not_mail) These domains are known for abuse, spam, and bot created emails. If you have valid emails with this flag set to TRUE, you shouldn't email them. We also provide other additional fields that you should take into consideration before emailing. If any of your valid emails have the disposable or toxic flag set to true, we recommend that you don't email them.
- role_based_catch_all - (do_not_mail) These emails are role-based and also belong to a catch_all domain.
- unknown - These emails we weren't able to validate for one reason or another. Typical cases are "Their mail server was down" or "the anti-spam system is blocking us". In most cases, 80% unknowns are invalid/bad email addresses. We have the lowest "unknowns" of any email validator, and we don't make this statement lightly. We paid and tested email lists at over 50 different validation companies to compare results. If you do encounter a large number of unknowns, please submit those for re-validation. Remember you are not charged for unknown results, credits will be credited back. If you still have a large number, contact us and we will take a look and verify.
- antispam_system - (unknown) These emails have anti-spam systems deployed that are preventing us from validating these emails. You can submit these to us through the contact us screen to look into.
- exception_occurred - (unknown) These emails caused an exception when validating. If this happens repeatedly, please let us know.
- failed_smtp_connection - (unknown) These emails belong to a mail server that won't allow an SMTP connection. Most of the time, these emails will end up being invalid.
- forcible_disconnect - (unknown) These emails belong to a mail server that disconnects immediately upon connecting. Most of the time, these emails will end up being invalid.
- greylisted - (unknown) Emails where we are temporarily unable to validate them. A lot of times if you resubmit these emails they will validate on a second pass.
- mail_server_did_not_respond - (unknown) These emails belong to a mail server that is not responding to mail commands. Most of the time, these emails will end up being invalid.
- mail_server_temporary_error - (unknown) These emails belong to a mail server that is returning a temporary error. Most of the time, these emails will end up being invalid.
- timeout_exceeded - (unknown) These emails belong to a mail server that is responding extremely slow. Most of the time, these emails will end up being invalid.
We also provide a sub_status code to help explain some of the unknown and invalid results, not all unknowns and invalids will have sub_status codes.
- free_email - [true/false] If the email comes from a free provider.
- mx_found - [true/false] Does the domain have an MX record.
- mx_record - The preferred MX record of the domain.
- smtp_provider - The SMTP Provider of the email or [null] (BETA).
Do Not Mail - Why do we flag these?
As a responsible email validation service, we do our best to protect your IP/Domain Mailing Reputation. You mailing campaign becomes successful when you email lands in the inbox and not the junk box.
Just eliminating bounces is the first step to a healthy IP Reputation, but their are many more steps in the process. Read our Email Deliverability Guide.
The "Do Not Mail" Status represents one of the next steps where we identify potential emails that can cause harm to you IP/Domain Reputation.
Each of these status have a sub_status, one of "Role-Based", "Global Suppression", "Possible Spam"
- Possible Spam - These emails contain keywords that might correlate to possible spam traps like spam@ or @spamtrap.com. Examine these before deciding to send emails to them or not.
- Global Suppression - These emails are found in many popular global suppression lists (GSL), they consist of known ISP complainers, direct complainers, purchased addresses, domains that don't send mail, and known litigators.
- Role-Based - These emails belong to a position or a group of people, like sales@ info@ and contact@. Role-based emails have a strong correlation to people reporting mails sent to them as spam and abuse. We don't flag all the role-based emails, just the most common ones known for abuse.
Let's dig a little deeper into the meaning of role-based and why, but let's hear it from the mailing exports of major ESP Providers who send billions of emails a day. Click of the following links below.
There are hundreds of more links from many more large companies than the ones above explaining why. We totally understand that depending on your business model and industry. That you might need to email to role-based emails, that's fine, it's the risk you take. We're just pointing it out and it's your decision on which role-based emails you want to mail and the risk you want to take.
All emails that we flag as "Role-Based" are valid emails, they have been validated.
The Executive Overview report shows you a big picture view of your data.
Below is an example of the PDF that will be included in the zip file.
This Report is broken into a few sub-sections:
- Top Domains - This shows you the top 10 domains found in your email list and breaks it down by percentages.
- Validation Results - This give you the overall statistics of the different validation results of your entire file.
- Data Appends - This shows you how successful we were in appending additional data to your email list.
- IP Location Data Appends - If you uploaded the IP addresses along with your emails, the report will show you demographic by top countries and top regions/states.
We are not a storage company. We will store your results up to 30 days, and then we will delete them automatically. By default, you will be notified by email when your files will be deleted in 7 and 2 days respectively. You can turn off these notifications in your notification settings as seen below. To access your notification settings click on "Account Options" on the left hand menu. Then click the "Change Notification Preferences" button.
You also have the ability to delete your own files from our system at anytime.
We do encrypt the files you upload and download. We do not store your data in our database, just the summary data you see in the "Download Your Results" section. Your data is your data, and we take safeguarding that data very seriously. Once the files are deleted, either automatically or by you, that summary data is also deleted.
If we mark an email as "Invalid" and you know it is "Valid", we would like to know about that. If you get an unusually high bounce rate off emails that we said were valid, like over 2%, for emails we’ve marked “valid”, we will like to know about that, also.
Please send us an email at: firstname.lastname@example.org with the SMTP logs. It's very important that we see the actual SMTP Reply, because emails can bounce from many different reasons, including the content of the email you are sending.
We are always trying to improve our algorithms and we believe we offer the best validation, abuse and spam trap detection, and data append features on the market.
What is Greylisting?
Greylisting is an anti-spam technology deployed by mail servers to prevent spam. The receiving mail server tells the sender, to please retry to send the email again in X minutes.
A well configured mail server will attempt to resend an email on different intervals, until it's accepted or rejected by the receiving mail server.
There are many types of greylisting, but the most common is time-based greylisting as mentioned above. Each mail server has a different time they greylist the sender for, per email, normally between 1 and 15 minutes.
Zerobounce deploys break-through anti grey-listing technology. When we encounter any greylisting we will wait 15 minutes and retry to validate those specific emails. This reduces the amount of "Unknowns" you will receive back from us. So you wait a little long for your results, but your results will be a lot better.
It doesn't matter how many greylisted email addresses you upload to be validated, whether it's 1 or 100,000. The processing is only delayed by 15 minutes in total.
Other companies say it, we put it in writing. ZeroBounce, the leader in email validation, makes you the promise of cleaner and safer email lists.We guarantee the following accuracy rates at a minimum:
- 96%+ Accuracy rates on AOL, Yahoo, and office 365 email accounts.
- 98%+ Accuracy rates on everything else.
How the Guarantee works:
If the accuracy rates are below these thresholds, we will refund 5 times the amount for each 1%. Let's say you have a 97% accuracy rate, which is 1% below the guaranteed threshold of (98%+ Accuracy rates on everything else). We will refund 5 x 1% (or 5%) of your total validation cost for those emails. If your accuracy rate is 2% below the guaranteed threshold, our refund will be of 10% of your costs. If it's 4% below, the refund will be 20%, and so on.
In order to qualify for the guarantee, the following conditions must be met:
- You only email the _valid.csv and remove all toxic and disposable domains.
- You email the list within 72 hours after cleaning.
- Bounces must be invalid emails (Hard Bounces).
- Bounces due to spam content, blacklisted IP's, technical Issues, invalid mail configuration, throttling, etc do not qualify for the guarantee.
- The minimum list size must be 1000 emails.
- This list must be an opt-in list that you collected and not purchased from a 3rd party
- You must provide an export of your full mailing of all emails you sent to and their bounce responses (the actual SMTP Codes and messages of the bounces), not your email sender classifying it as a bounce. ZeroBounce does not guarantee the acceptance of your cleaned list at any ESP provider.
SMTP Bounce Codes
SMTP Bounce codes are returned by the different mail servers indicating why they didn't accept the emails that you sent it. It can be for many different reasons, having an email bounce is not always an indicator of an email being invalid. It can be for many other reasons, the most common is that the spam filters identified the message as "Spam Content" and rejected it.
In order to determine why the emails that were sent bounced, it's important to have access to these codes, so you can make adjustments and decisions to remedy the issue.
Below you will find a summary of codes, keep in mind, there are thousands more, depending on the mail server the same codes will have different meanings, these are just a few examples.
5.X Bounce Codes (Permanent Failures)
- 5.0.0Address does not exist
- 5.1.0Other address status
- 5.1.1Bad destination mailbox address
- 5.1.2Bad destination system address
- 5.1.3Bad destination mailbox address syntax
- 5.1.4Destination mailbox address ambiguous
- 5.1.5Destination mailbox address valid
- 5.1.6Mailbox has moved
- 5.1.7Bad sender’s mailbox address syntax
- 5.1.8Bad sender’s system address
- 5.2.0Other or undefined mailbox status
- 5.2.1Mailbox disabled, not accepting messages
- 5.2.2Mailbox full
- 5.2.3Message length exceeds administrative limit.
- 5.2.4Mailing list expansion problem
- 5.3.0Other or undefined mail system status
- 5.3.1Mail system full
- 5.3.2System not accepting network messages
- 5.3.3System not capable of selected features
- 5.3.4Message too big for system
- 5.4.0Other or undefined network or routing status
- 5.4.1No answer from host - the address is invalid
- 5.4.2Bad connection
- 5.4.3Routing server failure
- 5.4.4Unable to route
- 5.4.5Network congestion
- 5.4.6Routing loop detected
- 5.4.7Delivery time expired
- 5.5.0Other or undefined protocol status
- 5.5.1Invalid command
- 5.5.2Syntax error
- 5.5.3Too many recipients
- 5.5.4Invalid command arguments
- 5.5.5Wrong protocol version
- 5.6.0Other or undefined media error
- 5.6.1Media not supported
- 5.6.2Conversion required and prohibited
- 5.6.3Conversion required but not supported
- 5.6.4Conversion with loss performed
- 5.6.5Conversion failed
- 5.7.0Other or undefined security status
- 5.7.1Delivery not authorized, message refused
- 5.7.2Mailing list expansion prohibited
- 5.7.3Security conversion required but not possible
- 5.7.4Security features not supported
- 5.7.5Cryptographic failure
- 5.7.6Cryptographic algorithm not supported
- 5.7.7Message integrity failure
4.X Bounce Codes (Temporary Failures)
- 421service not available, closing transmission channel
- 450Requested mail action not taken: mailbox unavailable (e.g., mailbox busy)
- 451Requested action aborted: error in processing
- 452Requested action not taken: insufficient system storage