NAV Navbar
Visual Basic C# PHP Java Python Swift Objective C Android Java
A.I. Email Scoring

categ- About Us

The Leader In Email Validations



ZeroBounce is a leading online email validation system created to ensure that companies sending complex and high volume emails avoid deliverability issues. The system works by reducing and eliminating invalid, abuse, complaint, inactive, and spam-trap email addresses. These are email addresses that will either bounce or contribute to ruining your sending reputation. ZeroBounce also provides IP address validation and verification of key recipient demographics and has the ability to add missing information on certain emails, such as the name, gender and location of the owner.

We created a guide to help you navigate everything you need to be aware of when sending emails. It's the most comprehensive guide you'll find on the internet and we offer it for free, without any restrictions. You can read it here: THE COMPLETE GUIDE TO IMPROVE INBOX AND DELIVERABILITY

ZeroBounce is the most secure email validation system you can find. For us, the protection of your data comes first, so we don't cut cost in keeping it safe. We are registered with the BBB and approved for the EU Privacy Shield. We maintain enterprise contracts with all of our vendors, we operate our own data center and own our servers and hardware. We don't use third-party services, like Amazon, Azure, and other cloud services providers, to store your data.

Getting Started

We'll get you up and validating with us really fast! Simply click this link for a walk-through on our validation service: Validation Process

ZeroBounce

10 E Yanonali St, Santa Barbara, CA, 93101, US 1489 W Palmetto Park Rd, 5th Floor, Boca Raton, Florida, 33486, US.

Sales : 1-888-500-9521 (9-5 PST)
Email : office@zerobounce.net
Technical Support 24/7 (only via email) : support@zerobounce.net

Support Options: https://www.zerobounce.net/contact-us.html

Data Protection

At ZeroBounce, we take data protection very seriously and we are committed to keep your information safe from harm. We are using one of the most efficient content delivery network systems in the world, supported by CloudFlare. This system ensures additional defense against cyber attacks and data breaches, thanks to the Advanced Firewall. Furthermore, we are one of the few email verification services that use a military grade encryption algorithm to safeguard your files and personal information. Whenever you upload a file on our server, we encrypt it using a unique key. Once our email verifier validates that file, we re-encrypt it and protect it with a password that only you have access to. This additional step keeps your data secure during the process of email validation.

An important aspect of our privacy policy is that your data is never stored in our system for more than 30 days. Once you finish using our email verifier, all data, and all aspects of your data, are erased in maximum 30 days. Also, the information you share with us for payment purposes is encrypted.

At ZeroBounce we go out of our way to protect your data and we developed advanced defense mechanisms against misuse, loss, unauthorized access and improper disclosure. We want to provide the same security that we would want for ourselves. Our customers feel safe knowing that the best email verification service is also the most secure.

Privacy Policy

You can find the official policy here: https://www.zerobounce.net/privacy-policy.html

For your convenience, below is a copy: (for official use, please use the official version).

This privacy policy discloses the privacy practices for www.zerobounce.net. (the “Site”), including ZeroBounce’s policies on the collection, use, and disclosure of information in connection with Your use of the Site and any related email validation services (the “Services”). When You access or use the Site or the Services, You agree to the terms and conditions of this Privacy Policy.

Participation in eu-u.s. Privacy shield and swiss-u.s. Privacy shield

ZeroBounce complies with the EU-U.S. Privacy Shield Framework and the Swiss-U.S. Privacy Shield Framework as set forth by the U.S. Department of Commerce regarding the collection, use, and retention of personal information transferred from the European Union and Switzerland to the United States, respectively. ZeroBounce has certified to the Department of Commerce that it adheres to the Privacy Shield Principles. If there is any conflict between the terms in this Privacy Policy and the Privacy Shield Principles, the Privacy Shield Principles shall govern. To learn more about the Privacy Shield program, please visit: https://www.privacyshield.gov/. Certified entities are listed at: https://www.privacyshield.gov/list.

Information collection practices

Traffic Data Collected:
ZeroBounce may store information that Your computer provides to us in connection with Your use of the Site and/or Services, such as: 1) IP address; 2) domain servers; 3) type of computer or device accessing the Site; and 4) types of web browsers used to access the Site (collectively, “Traffic Data”). Traffic Data is anonymous information that does not personally identify You but is helpful for marketing purposes or for improving Your experience on the Site. ZeroBounce may also store usage data such as the date and time the Site and Services are accessed, and what information and files have been downloaded. When You visit the Site or otherwise interact with the Services, ZeroBounce may send one or more “cookies” to Your computer. Cookies are alphanumeric identifiers stored on Your computer through Your web browser and are used by most websites to personalize Your web experience. Some cookies may facilitate Site features for enhanced performance and functionality such as remembering preferences, analyzing usage for Site optimization, and providing custom content. ZeroBounce may link the information it stores in cookies to any Personal Information You submit through the Site or Services.

Personal Information Collected:
When You create an account on the Site, ZeroBounce may ask for personal information such as Your name, email address, credit card information, and other information (“Personal Information”). Personal Information such as Your name and email address are used to create a user account for the Site and Services, as well as for email newsletters and invoicing. Your credit card information is used by third parties such as Paypal or Stripe to process Your payment(s) for the Services. ZeroBounce commits to subject all Personal Information received from the EU or Switzerland in reliance on the Privacy Shield Principles. If You register an account and/or provide information to ZeroBounce, You consent to Your Personal Information being collected, used, and stored by ZeroBounce, in accordance with the Terms and Conditions of Use and this Privacy Policy. Information uploaded to the Site or otherwise submitted to ZeroBounce in conjunction with the Services, including but not limited to CSV or TXT files, may be stored encrypted with a password for a period of thirty (30) days. If You initiate a payment for the Services, ZeroBounce may collect and store Personal Information, as well as any other information provided to us. This Personal Information may be shared with third parties in order to process Your payment. ZeroBounce encrypts credit card numbers using industry standard technology.

ZeroBounce may use your Personal Information to:
Respond to Your inquiries and fulfil Your requests for Services; Send information to You, including information regarding our Services; Complete and fulfil Your purchase, for example, to process Your payments, or communicate with You regarding Your purchase; Send You marketing communications that we believe may be of interest to You; Personalize Your experience on the Site or Services; Conduct data analysis, audits, fraud monitoring and prevention; Develop new products and services, or enhance, improve, or modify our products or services; and As necessary or appropriate under applicable law, including laws outside Your country of residence; to comply with legal process; to respond to requests from public and government authorities; to enforce our terms and conditions; to protect our operations; to protect our rights, privacy, safety, and/or that of our affiliates, You or others; and to allow us to pursue available remedies or limit the damages that we may sustain. Except as otherwise provided in this Privacy Policy, ZeroBounce will keep Your Personal Information private and will not sell or rent Personal Information to anyone.

Opting-out of future contacts

Unless You ask us not to, we may contact You via email in the future to tell You about specials, new services, or changes to this Privacy Policy. You may opt-out of receiving promotional email by sending a request for removal by clicking on the "Contact Us" link on the bottom of the Site. ZeroBounce will try to comply with Your request as soon as reasonably practicable. Please note that if You do opt-out of receiving promotional emails from us, ZeroBounce may still send You messages for administrative or other purposes directly relating to Your use of the Services, and You cannot opt-out of receiving those messages.

You can do the following at any time by contacting us via our website:

See what data, including any Personal Information, we have about You, if any; Request access to Your Personal Information; Change/correct any data we have about You; Have us delete any data we have about You; Express any concern You have about our use of Your data; If You request deletion of Your account, we may need to retain certain Personal Information for recordkeeping purposes and/or to complete any transactions that You began prior to requesting such change or deletion. There may also be residual information that will remain within our databases and other records, which will not be removed. We may retain Personal Information for as long as needed to provide the Site and Services, or to comply with our legal obligations, resolve disputes, prevent abuse, and enforce our agreements. To contact ZeroBounce with any inquiries or complaints, including any regarding our Terms, Privacy Policy, or other policy related material, click on the "Contact Us" link on the bottom of the Site.

Security

We take precautions to protect Your information. We maintain our Site and Services and all associated data with technical, administrative, and physical safeguards to protect against loss, unauthorized access, destruction, misuse, modification, and improper disclosure.

Wherever we collect sensitive information (such as credit card data), that information is encrypted and transmitted to us in a secure way. While we use encryption to protect sensitive information transmitted online, we also protect Your information offline. Unfortunately, no data transmission or storage system can be guaranteed to be 100% secure. If a security breach causes an unauthorized intrusion into our Site or Services that materially affects You or Your Personal Information, we will attempt to notify You as soon as possible.

Data Retention

We will retain Your Personal Information for as long as needed to provide the Services, unless a longer retention period is required or permitted by law.

Cross-border transfer

The Site and Services are controlled and operated by United States from the country of United States, and are not intended to subject us to the laws or jurisdiction of any state, country, or territory other than that of United States. Your Personal Information may be stored and processed in any country where we have facilities or in which we engage service providers. By using the Site and Services, You consent to the transfer of such information to countries outside of Your country of residence, including the United States, which may have different data protection rules than those of Your country.

Disputes

In compliance with the Privacy Shield Principles, ZeroBounce commits to resolve complaints about Your privacy and our collection or use of Your Personal Information. Individuals with inquiries or complaints regarding our Privacy Policy, our compliance with the Privacy Shield Principles should first contact ZeroBounce by clicking on the "Contact Us" link on the bottom of the Site.

ZeroBounce has further committed to refer unresolved privacy complaints under the Privacy Shield Principles to an independent dispute resolution mechanism, the BBB EU Privacy Shield, operated by the Council of Better Business Bureaus, an alternative dispute resolution provider located in the United States, to address complaints and provide appropriate recourse free of charge to the individual. If You do not receive timely acknowledgment of Your complaint from us, or if we have not resolved Your complaint, please contact or visit http://www.bbb.org/EU-privacy- shield/for-eu- consumers for more information and to file a complaint. The services of the BBB EU Privacy Shield are provided at no cost to You. ZeroBounce is subject to the investigatory and enforcement powers of the Federal Trade Commission (“FTC”), or any other U.S. authorized statutory body. The FTC has jurisdiction over ZeroBounce’s compliance with the Privacy Shield.

The place of arbitration shall be the United States, and in person participation will not be required. Irrespective of the outcome of arbitration, each party shall bear its own attorneys’ fees. The arbitrator(s) has the authority to impose individual-specific, non-monetary equitable relief necessary to remedy any violation of the Privacy Shield Principles only with respect to the individual. Section C of Annex I to the Privacy Shield Principles contains more details regarding initiating arbitration proceedings and can be reviewed at https://www.privacyshield.gov/article?id=ANNEX-I- introduction.

CHANGES

ZeroBounce reserves the right to change this Privacy Policy. The date affixed next to the “Last Updated” legend above corresponds with the date the Privacy Policy was last revised. ZeroBounce reserves the right, at any time, and without notice, to add to, change, update, or modify this Privacy Policy. Any changes to the Privacy Policy will become effective when ZeroBounce posts a revised Privacy Policy. Your use of the Site and Services following any changes means that You accept the revised Privacy Policy.

Website Terms

Welcome to zerobounce.net (the “Site”), the online home of ZeroBounce (“ZeroBounce”). Your use of the Site or any related email validation services (the “Services”) constitute Your acceptance of these terms and conditions (“Terms”), as they may be amended by ZeroBounce from time to time in its sole discretion. It is Your responsibility to review these Terms of Use periodically, and if at any time You find these Terms unacceptable, You must immediately leave the Site and cease all use of the Site and Services. Please read them carefully.

BY USING THE SITE OR SERVICES, YOU REPRESENT THAT YOU ARE AT LEAST 18 YEARS OLD AND THAT YOU ARE LEGALLY ABLE TO ENTER INTO THIS AGREEMENT

Privacy

Please review our Privacy Policy, which also governs Your visit to the Site, and explains ZeroBounce’s collection and use practices for information submitted to the Site and through the Services.

Electronic Communications

By submitting Your information to ZeroBounce through the Site or Services, You provide Your affirmative consent that ZeroBounce and its associates may collect, use, and disclose any information submitted or collected through the Site or Services; that ZeroBounce and its associates may contact You via any contact method You provide, including email; and that ZeroBounce may disclose Your contact information to third-parties, and that such third-parties may contact You via email. We will communicate with You by e-mail or by posting notices on this Site. You agree that all agreements, notices, disclosures and other communications that we provide to You electronically satisfy any legal requirement that such communications be in writing.

Proprietary rights

When accessing the Site or using the Services, You agree to obey the law and to respect the intellectual property rights of others. Your use of the Services and the Site is at all times governed by and subject to laws regarding copyright ownership and use of intellectual property. All content included on this Site, such as text, graphics, logos, button icons, images, audio clips, digital downloads, data compilations, and software, is the property of ZeroBounce or its content suppliers and is protected by international copyright laws. The compilation of all content on this Site is the exclusive property of ZeroBounce, with copyright authorship by ZeroBounce, and protected by copyright laws. You may not use any ZeroBounce logo or other proprietary graphic or trademark without express written permission.

Except for the limited license expressly granted herein to use the Site and Services, ZeroBounce expressly reserves all right, title and interest in and to the Site and Services and all processing, analytics, data and other software and technology used by ZeroBounce in the provision of the Services, including, without limitation, any derivatives, improvements, enhancements or extensions of the Site and Services conceived, reduced to practice or otherwise developed by or on behalf of ZeroBounce, all of which are valuable assets of ZeroBounce, together with any copyright, patent or trademark or other intellectual property rights, or federal or state rights, pertaining thereto.

Nothing contained on the Site should be understood as granting You a license to use any of the trademarks, service marks, or logos owned by ZeroBounce or by any third party. ZeroBounce's trademarks and trade dress may not be used in connection with any product or service that is not ZeroBounce’s in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits ZeroBounce or the Site or Services. You recognize and acknowledge the validity and ownership of the ZeroBounce’s trademarks and trade dress in the United States and other countries. You agree not to contest the ownership of such marks.

Your User Account

In order to utilize the Services, You must register and create an account. In order to create an account, You must provide ZeroBounce with complete and accurate information as prompted by the registration form, including an email address and password. If You use the Site and Services, You are responsible for maintaining the confidentiality of Your account and password and for restricting access to Your computer, and You agree to accept responsibility for all activities that occur under Your account or password. Any reference in these Terms to Your access or use of the Services is deemed to include access or use by affiliates and end users, and any act or omission of an affiliate or end user that does not comply with these Terms will be deemed a breach of these Terms by You. You will ensure that Your account and use of the Site and Services complies with all the provisions of these Terms and any applicable local, state, national and foreign laws. You agree to notify ZeroBounce immediately of any unauthorized use of Your account or any other breach of security. If You create an account on behalf of an entity, these Terms bind both You and the entity.

License and Site Access

You have sole responsibility for the accuracy and quality of any data submitted by You and Your affiliates to the Site or Services (“Your Data”) and for ensuring that Your collection and use of Your Data complies with all applicable laws. You hereby represent and warrant that the You will comply with all U.S. and foreign laws, rules, regulations, and industry standards and guidance applicable to Your use of the Site and Services, and use of any validated emails obtained through the Services, including, but not limited to, abiding by all applicable Federal Trade Commission, Federal Communications Commission, U.S. Food and Drug Administration, or analogous state rules or regulations relating to online advertising, business opportunities, dietary supplements, commercial electronic mail, telemarketing, endorsements, or health or medical claims. You further represent and warrant that You will comply with all applicable U.S. laws and regulations in the use and storage of the validated emails obtained through the Services, including but not limited to, the Telephone Consumer Protection Act, 47 U.S.C. §§ 227 et seq. (“TCPA”), the Federal Trade Commission Act (“FTC Act”), all FTC rules, regulations, and guidelines, the Child Protection and Obscenity Enforcement Act, 18 U.S.C. §§ 2257 (“Section 2257”), the Telemarketing and Consumer Fraud and Abuse Prevention Act, 15 U.S.C. §§ 6101 et seq., and the CAN-SPAM Act of 2003, as amended, together with any similar state laws.

ZeroBounce grants You a limited license to access and make personal use of this Site and not to download (other than page caching) or modify it, or any portion of it, except with express written consent of zerobounce.net. Any unauthorized use terminates the permission or license granted by ZeroBounce. Subject to Your compliance with these Terms, and Your payment of all applicable fees, ZeroBounce hereby grants You a limited, revocable, non-exclusive, non-transferable license to use the Services solely for Your own individual purposes. This license is automatically terminated if You violate any of these Terms.

Except as expressly set forth herein, You must not do, or permit others to do, any of the following:

Use, copy, reproduce, modify, or create derivative works of the Site, Services, or any content; Resell information obtained through use of the Site or Services; Download or copy any information for the benefit of another individual or entity; Transfer, lease, lend, sublicense, resell or otherwise distribute or allow third party access to any portion of the Site or Services, including, but not limited to, by sharing Your access username and/or password; Reverse engineer, decompile or disassemble the Site or Services or convert them to any other format or medium; Remove, obscure, or alter any legal notices, including any notices of intellectual property rights appearing in the Services; Make any changes to the content of the Services; Bypass, modify, defeat, or circumvent security features that protect the Services; Use, post, transmit or introduce any device, software or routine which interferes or attempts to interfere with the operation of the Services; Use any robot, spider, scraper, deep link or other similar automated data gathering or extraction tools, program, algorithm or methodology to access, extract, acquire, copy or monitor the Services or any portion thereof, without our express written consent, which may be withheld in our sole and absolute discretion; Frame or utilize framing techniques to enclose any trademark, logo, or other proprietary information (including images, text, page layout, or form) of zerobounce.net without the express written consent of ZeroBounce; Use any meta tags or any other “hidden text” utilizing ZeroBounce’s name or trademarks without the express written consent of ZeroBounce; Violate or attempt to violate the security of ZeroBounce's networks or servers, including but not limited to accessing data not intended for You or logging into a server or account which You are not authorized to access; attempting to probe, scan or test the vulnerability of a system or network or to breach security or authentication measures without proper written request and authorization; and/or interfering or attempting to interfere with service to any user, host or network, including by means of submitting a virus to the Site or Services, overloading, flooding, spamming, mail bombing or crashing; Use the Site or Services to send unsolicited e-mail, including, without limitation, promotions, or advertisements for products or services; Forge any TCP/IP packet header or any part of the header information in any e-mail or in any posting using the Services; or Modify, reverse-engineer, decompile, disassemble, or otherwise reduce or attempt to reduce to a human-perceivable form any of the source code used by ZeroBounce in providing the Site or Services. Any violation of system or network security may subject You to civil and/or criminal liability. ZeroBounce reserves the right, with or without notice, to terminate the account of any persons that violate these Terms, violate any party’s intellectual rights, misuse the Site or Services, or otherwise engage in inappropriate conduct, as determined by ZeroBounce in its sole discretion.

ZeroBounce may in its sole discretion offer the Services for free or on a reduced basis, in a limited form, through a special offer, or on an otherwise trial basis. With the exception of such special offers, as a condition of Your use of the Services, You must purchase credits and/or otherwise prepay via the Site. The current pricing structure is set forth on the Site at Zerobounce Pricing (or any other URL as specified by ZeroBounce), as may be updated by ZeroBounce. ZeroBounce may change the fees for the Services at any time and from time to time, effective immediately upon Your receipt of notice of such fee change; provided, that, such fee changes will only be effective as to usage of the Services thereunder that occur after the effective date of the relevant fee change. Unless otherwise stated, all fees are stated in U.S. Dollars. All sales/prepayments for credits made to ZeroBounce are final and non-refundable.

In addition to the fees, You shall also be responsible for all taxes assessed in connection with the Services, including any foreign, federal, state, or local taxes and charges assessed in connection with the Services, including, without limitation, all governmental excise, use, sales, value-added, and occupational taxes and other fees, or other similar surcharges and levies (including, without limitation, universal service fund charges or equivalents), but excluding any taxes based on a Party's net income ("Taxes"). You agree that You are solely responsible for collection and payment of any and all Taxes that You are required to pay to any taxing authority in connection with Your use of the Services, and You shall indemnify us for any losses, liabilities, costs, and expenses incurred as a result of a breach by You of this section.

By providing any credit card information, You represent that You are authorized to use the card and authorize ZeroBounce to charge the card for any fees. By submitting payment information, You authorize ZeroBounce to provide that information to third parties for purposes of facilitating payment. You agree to verify any information requested by ZeroBounce for purposes of acknowledging or completing any payment. All credit/charge card payments are subject to authorization by the card issuer. If Your payment is not authorized, we will cancel Your order (and notify You that we have done so). With the exception of special offers, access to the Services will only be made available to You once You have purchased credits.

You may also utilize the “AutoPay” feature to enable the automatic purchase a set amount of credits when Your balance dips below a set amount of credits. You have the option to set the particular number of credits that You would like to automatically purchase and to also set the lowest credit balance number before the automatic purchase is triggered. When Your credit balance falls below the amount You set, a charge equivalent to the cost for the number of credits You elect shall be automatically placed against Your credit card. If ZeroBounce is unable to charge Your credit card and all Your credits have been utilized, ZeroBounce shall suspend Your account. In such instance, Your account will remain suspended until the issue is resolved and updated credit card information is received.

Third Party Services and Sites

ZeroBounce may use or provide access to one or more third parties to process payments, process account or user registrations, or provide other services. Your interactions with any of these third parties is controlled by the terms and conditions imposed by those third parties. Any disputes arising from a third party's services must be resolved directly between You and the third party. ZeroBounce disclaims all warranties or representations regarding any third party services.

ZeroBounce cannot always foresee or anticipate technical or other difficulties that may result in failure to obtain data or loss of data or other interruptions in the Site or Services. ZeroBounce does not assume responsibility for the timeliness, accuracy, deletion, non-delivery or failure to store any data or communications. Your use of third party offerings is at Your own risk and is subject to any additional terms, conditions, and policies applicable to such third party offerings.

DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY THIS SITE IS PROVIDED BY ZEROBOUNCE ON AN "AS IS" AND "AS AVAILABLE" BASIS. ZEROBOUNCE MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THIS SITE OR THE INFORMATION, CONTENT, MATERIALS, OR SERVICES OFFERED THROUGH THIS SITE. YOU EXPRESSLY AGREE THAT YOUR USE OF THIS SITE IS AT YOUR SOLE RISK. TO THE FULL EXTENT PERMISSIBLE BY APPLICABLE LAW, ZEROBOUNCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. ZEROBOUNCE DOES NOT WARRANT THAT THIS SITE, ITS SERVERS, OR E-MAIL SENT FROM ZEROBOUNCE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. ZEROBOUNCE MAKES NO REPRESENTATIONS OR WARRANTIES THAT THE SITE OR SERVICES WILL MEET YOUR REQUIREMENTS; AS TO THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SERVICES; AS TO THE ACCURACY, RELIABILITY OR CONTENT OF ANY INFORMATION PROVIDED THROUGH THE SERVICES; OR THAT THE OPERATION OF THE SITE OR SERVICES WILL BE UNINTERRUPTED OR ERROR FREE. YOU ACKNOWLEDGE THAT AN INTERRUPTION IN THE SITE OR SERVICES DUE TO CIRCUMSTANCES BEYOND THE REASONABLE CONTROL OF ZEROBOUNCE SHALL BE CONSIDERED A FORCE MAJEURE EVENT. FURTHER, ZEROBOUNCE DISCLAIMS ALL RESPONSIBILITY, WARRANTIES, AND LIABILITY FOR DELAY, INTERRUPTION, OR INEFFICIENCY ATTRIBUTABLE TO YOUR HARDWARE OR SOFTWARE OR THAT OF ANY OTHER THIRD PARTY.

ZEROBOUNCE’S LIABILITY TO YOU IS LIMITED. IN NO EVENT SHALL ZEROBOUNCE BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF THIS SITE OR SERVICES (INCLUDING, BUT NOT LIMITED TO DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, CONSEQUENTIAL DAMAGES, LOST PROFITS, OR LAST DATA, REGARDLESS OF THE FORESEEABILITY OF THOSE DAMAGES). THIS LIMITATION SHALL APPLY REGARDLESS OF WHETHER THE DAMAGES ARISE OUT OF BREACH OF CONTRACT, TORT, OR ANY OTHER LEGAL THEORY OR FORM OF ACTION. CERTAIN STATE LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS, EXCLUSIONS, OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MIGHT HAVE ADDITIONAL RIGHTS.

Indemnity

You agree to indemnify ZeroBounce for certain of Your acts and omissions. You agree to indemnify, defend, and hold harmless ZeroBounce, its affiliates, officers, directors, employees, consultants, agents, and representatives from any and all third party claims, losses, liability, damages, and/or costs (including reasonable attorney fees and costs) arising from Your access to or use of the Site, Your violation of these Terms, or Your infringement, or infringement by any other user of Your account, of any intellectual property or other right of any person or entity. ZeroBounce will notify You promptly of any such claim, loss, liability, or demand, and will provide You with reasonable assistance, at Your expense, in defending any such claim, loss, liability, damage, or cost.

Applicable Law

By visiting the Site, You agree that the laws of United States, without regard to principles of conflict of laws, will govern these Terms and any dispute of any sort that might arise between You and ZeroBounce or its associates. You hereby irrevocably consent to the exclusive jurisdiction of the courts of Clark County, Nevada for all disputes arising out of or related to the use of the Site or Services.

Severability; waiver If any of these conditions shall be deemed invalid, void, or for any reason unenforceable, that condition shall be deemed severable and shall not affect the validity and enforceability of any remaining condition. No waiver of any breach of any provision of these Terms shall constitute a waiver of any prior, concurrent, or subsequent breach of the same or any other provisions hereof, and no waiver shall be effective unless made in writing and signed by an authorized representative of the waiving party.

Modification

ZeroBounce may, in its sole discretion and without prior notice, (a) revise these Terms; (b) modify the Site and/or the Services; (c) discontinue the Site and/or Services at any time; and (d) change, suspend, or discontinue any features, components, or functions of the Site and Services at any time. ZeroBounce shall post any revision to these Terms to the Site, and the revision shall be effective immediately on such posting. You agree to review these Terms and other online policies posted on the Site periodically to be aware of any revisions. You agree that, by continuing to use or access the Site following notice of any revision, You shall abide by any such revision.

Acknowledgement

BY USING THE SERVICES OR ACCESSING THE SITE, YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS AND AGREE TO BE BOUND BY THEM.

Contact Us

To contact ZeroBounce with any inquiries or complaints, including anything regarding our Terms, click on the "Help" button on the bottom of the site.

Terms and Conditions

You can find the official Terms and Conditions here: https://www.zerobounce.net/terms-of-use.html

For your convenience, bellow is a copy: (for official use, please use the official version).

ZEROBOUNCE - TERMS AND CONDITIONS OF USE IMPORTANT – READ CAREFULLY: BY CLICKING THE “I agree with the terms and conditions” CHECKBOX, OR BY ACCESSING OR OTHERWISE USING ANY PART OF THE ZEROBOUNCE HOSTED SERVICE PROVIDED HEREWITH, YOU EXPRESSLY AGREE TO BE BOUND BY, AND STRICTLY ADHERE TO, ALL OF THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, DO NOT ACCESS OR USE ANY PART OF THE ZEROBOUNCE HOSTED SERVICE.

The Terms and Conditions of Use Agreement (“Agreement”) is entered on today’s date (the “Effective Date”), by and between Hertza L.L.C., a Nevada limited liability company with its principal place of business at 10 E. Yanonali St., Santa Barbara, California 93101 (“Provider”), and you (“Customer”). Each party is individually referred to in this Agreement as a “Party” and collectively as the “Parties.”

In consideration of the benefits and obligations exchanged in this Agreement, the Parties agree as follows:

1. Definitions.

“Affiliate” means any entity which directly or indirectly controls, is controlled by, or is under common control of Customer. “Agreement” means these terms and conditions of use. “Content” means the information, documents, spreadsheets, and products made available to Customer through the ZeroBounce Hosted Service. “Customer Data” means any data, information, or material provided by Customer to the ZeroBounce Hosted Service. “ZeroBounce Hosted Service” means Provider’s online service accessed via the Site, including the ZeroBounce API software, and the Content which Customer is being granted access to under this Agreement. “Intellectual Property Rights” means patent rights, design rights, copyrights, trademarks, service marks, trade names, domain name rights, mask work rights, know-how and trade secret rights, and all other intellectual property rights, derivatives thereof as well as other forms of protection of a similar nature. “Provider Technology” means all Provider proprietary technology made available to Customer in providing the ZeroBounce Hosted Service. “Site” means www.ZeroBounce.net.

2. License Grant & Restrictions.

Subject to Customer’s material compliance with this Agreement and payment of all fees and charges related to use of the ZeroBounce Hosted Service, Provider hereby grants Customer a revocable, non-exclusive, and non-transferable, worldwide right to use the ZeroBounce Hosted Service, solely for its own internal business purposes and use. The license granted hereunder permits Customer to upload Customer Data to the ZeroBounce Hosted Service and download files provided to Customer via the ZeroBounce Hosted Service containing Customer Data. Customer retains all rights in any use of files downloaded via the ZeroBounce Hosted Service which contain Customer Data. Customer agrees not to: (i) license, sublicense, sell, resell, transfer, assign, distribute, provide access to, or otherwise make the ZeroBounce Hosted Service available to any third party; (ii) modify or make derivative works based upon the ZeroBounce Hosted Service; or (iii) decompile, disassemble, or reverse engineer the ZeroBounce Hosted Service, or permit or assist any third party to do so. Customer will not: (i) knowingly use the ZeroBounce Hosted Service or Provider’s Proprietary Technology to send unsolicited email, including, without limitation, promotions, or advertisements for products or services; (ii) knowingly send or store infringing, obscene, libelous or otherwise unlawful or tortious material to the ZeroBounce Hosted Service; (iii) knowingly upload, or otherwise send or store material containing viruses, worms, Trojan horses or other harmful computer code, files, or programs to or from the ZeroBounce Hosted Service; (iv) interfere with or disrupt the integrity or performance of the ZeroBounce Hosted Service; (v) attempt to gain unauthorized access to the ZeroBounce Hosted Service or its systems or networks; or (vi) use the ZeroBounce Hosted Service in violation of applicable law.

3. Customer Responsibilities.

Customer is responsible for all activity occurring under Customer’s account and will abide by all applicable laws, treaties and regulations in connection with its use of the ZeroBounce Hosted Service. Customer accepts full responsibility for its use of the ZeroBounce Hosted Service and any results obtained from such use, including but not limited to any actions taken with its Customer Data after use of the ZeroBounce Hosted Service.**

4. Customer Data.

Provider does not own any Customer Data. Customer Data is Customer’s proprietary and confidential information (“Confidential Information” as further defined below) and will not be accessed, used or disclosed by Provider except for the limited purpose of supporting Customer’s use of the ZeroBounce Hosted Service. Customer has sole responsibility for the accuracy, legality, reliability, and intellectual property ownership in the Customer Data. Customer Data uploaded by Customer to Provider via the ZeroBounce Hosted Service, the Site, or otherwise submitted to Provider in conjunction with the ZeroBounce Hosted Service, including but not limited to CSV or TXT files, may be stored by Provider encrypted with a password for a period of thirty (30) days. Notwithstanding the foregoing, Customer shall have and retain sole ownership of any and all Customer Data. Furthermore, Provider shall maintain all data in accordance with its Privacy Policy.

5. Use of Identifying Information.

Customer consents to being identified by Provider as a customer on the Site and on any of Provider’s promotional material. Customer further consents to Provider’s use of its logo for such limited purposes.

6. Intellectual Property Ownership.

Provider owns all right, title and interest, including all related Intellectual Property Rights, in and to the Provider Technology, Content and the ZeroBounce Hosted Service. Provider expressly reserves all right, title, and interest in and to the Provider Technology, Content and the ZeroBounce Hosted Service, including, without limitation, any derivatives, improvements, enhancements or extensions conceived, reduced to practice or otherwise developed by Provider, together with any Intellectual Property Rights, or federal or state rights, pertaining thereto. Provider also expressly reserves any and all rights not expressly and explicitly granted in this Agreement, including, but not limited to, its right to license the Provider Technology, Content, and ZeroBounce Hosted Service. This Agreement is not a sale and does not convey any rights of ownership in the ZeroBounce Hosted Service. Customer’s rights hereunder are strictly limited as set forth herein. Customer acquires no right, title, or interest therein other than the right to use the ZeroBounce Hosted Service in accordance with this Agreement.

7. Confidentiality.

Customer acknowledges that the Provider Technology, Content and the ZeroBounce Hosted Service contain valuable trade secrets and confidential information (“Confidential Information”) of Provider, including but not limited to, the architecture and functionality of such Provider Technology, Content and the ZeroBounce Hosted Service; and the appearance, organization, design, content, and flow of the ZeroBounce Hosted Service. Customer agrees not to share, disclose or transfer, and not to permit a third party to share, disclose or transfer any of Provider’s Confidential Information. The Parties will use reasonable diligence and in no event less than the degree of care which the Parties will use in respect to their Confidential Information to prevent the unauthorized disclosure, reproduction or distribution of such Confidential Information to any other individual, corporation or entity. Such Confidential Information will exclude: (a) information that is already in the public domain; (b) information already known to the receiving party, as of the date of the disclosure, unless the receiving party agreed to keep such information in confidence at the time of its original receipt; (c) information hereafter obtained by the receiving party, from a source not otherwise under an obligation of confidentiality with the disclosing party; (d) information independently developed without any reference to Confidential Information; and (e) information that the receiving party is obligated to produce under order of a court of competent jurisdiction, provided that the receiving party promptly notifies the disclosing party of such an event so that the disclosing party may seek an appropriate protective order.

8. Privacy.

Provider’s Privacy Policy is available at https://www.zerobounce.net/docs/#privacy-policy. Provider may modify its Privacy Policy in its reasonable discretion from time to time, without any notice to Customer.

9. Charges and Payment of Fees.

Customer is responsible for payment of all fees and charges in accordance with the pricing terms shown on www.zerobounce.net/#pricing. Zero Bounce may change the fees for the ZeroBounce Hosted Service at any time and from time to time, effective immediately upon Customer’s receipt of notice of such fee change; provided, that, such fee changes will only be effective as to usage of the ZeroBounce Hosted Service that occurs after the effective date of the relevant fee change. Unless otherwise stated, all fees are stated in U.S. Dollars. Customer will pay Provider in advance for use of the ZeroBounce Hosted Service, by purchasing credits, unless other terms are agreed upon by the Parties. All sales/prepayments for credits made to Zero Bounce are final and non-refundable. By providing any credit card information, Customer represents that it is authorized to use the card and authorizes Provider to charge the card for any fees. By submitting payment information, Customer authorizes Provider to provide that information to third parties for purposes of facilitating payment. Customer agrees to verify any information requested by Provider for purposes of acknowledging or completing any payment. All credit/charge card payments are subject to authorization by the card issuer. If Customer’s payment is not authorized, Provider will cancel the order (and notify you that we have done so). With the exception of special offers, access to the ZeroBounce Hosted Services will only be made available to Customer upon its purchase of credits.

10. Termination.

A Party may immediately terminate this Agreement for any reason or no reason at all. Customer may terminate this Agreement at any time by discontinuing its use of the ZeroBounce Hosted Service. Any breach of Customer’s payment obligations or unauthorized use of the ZeroBounce Hosted Service will be deemed a material breach of this Agreement. Provider may terminate this Agreement, Customer’s account, or Customer’s use of the ZeroBounce Hosted Service if in Provider’s sole discretion, Customer commits a material breach of this Agreement or otherwise fails to comply with this Agreement. In the event of such termination, Customer will not be entitled to any refund whatsoever.

11. Representations & Warranties.

Each party represents and warrants that it has the legal power and authority to enter into this Agreement. Provider represents and warrants that: (a) it has the right and authority to make the ZeroBounce Hosted Service available to Customer as authorized expressly by this Agreement; (b) it will provide the ZeroBounce Hosted Service in a manner consistent with general industry standards; (c) it will use best efforts to detect software viruses and other undesirable components and will promptly take all reasonable steps to remove or neutralize any such components; and (d) it will use leading commercial encryption technology designed to encrypt Customer Data in its possession.

12. Mutual Indemnification.

Customer will indemnify, defend and hold Provider, and each such party’s affiliates, officers, directors, employees, attorneys and agents harmless from and against any and all claims, costs, damages, losses, liabilities and expenses arising out of or in connection with: (a) a claim by a third party alleging that Customer’s use of the Customer Data or ZeroBounce Hosted Service, provided in any such case that Provider (i) promptly gives Customer written notice of the claim; (ii) gives Customer sole control of the defense and settlement of the claim; and (iii) provides Customer all available information and assistance. Provider will indemnify, defend and hold Customer and Customer affiliates, officers, directors, employees, attorneys and agents harmless from and against any and all claims, costs, damages, losses, liabilities and expenses arising out of or in connection with: (a) a claim by a third party alleging that the ZeroBounce Hosted Service directly infringes an Intellectual Property Right of a third party; provided that Customer (i) promptly give written notice of the claim to Provider; (ii) give Provider sole control of the defense and settlement of the claim; and (iii) provides Provider all available information and assistance.

13. Disclaimer.

THE REPRESENTATIONS AND WARRANTIES PROVIDED IN THIS AGREEMENT ARE PROVIDER’S COMPLETE AND EXCLUSIVE REPRESENTATIONS AND WARRANTIES. PROVIDER DISCLAIMS ALL OTHER REPRESENTATIONS, WARRANTIES AND GUARANTIES OF ANY KIND. EXCEPT AS PROVIDED HEREIN, THE ZEROBOUNCE HOSTED SERVICE IS PROVIDED ON AN “AS IS”, “AS AVAILABLE” BASIS WITHOUT ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO WARRANTIES AS TO TITLE OR INFRINGEMENT OR THIRD PARTY RIGHTS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. PROVIDER DOES NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING THE ZEROBOUNCE HOSTED SERVICE. PROVIDER DOES NOT WARRANT THAT ACCESS TO OR USE OF THE ZEROBOUNCE HOSTED SERVICE WILL BE UNINTERRUPTED OR ERROR FREE. PROVIDER EXPRESSLY DISCLAIMS ANY INDEMNIFICATION FOR ANY CLAIMS OR ACTIONS BROUGHT AGAINST CUSTOMER BASED ON, OR AS A RESULT OF, OR IN CONNECTION WITH ANY INACURRACY, OMISSION, DEFECT OR MISTAKE IN THE ZEROBOUNCE HOSTED SERVICE, OR CUSTOMER’S USE THEREOF.

14. Limitation of Liability.

EXCEPT FOR CLAIMS ARISING UNDER A PARTY’S OBLIGATIONS OF CONFIDENTIALITY OR INDEMNIFICATION UNDER THIS AGREEMENT, NEITHER PARTY’S AGGREGATE LIABILITY WILL EXCEED THE AMOUNT ACTUALLY PAID BY CUSTOMER TO PROVIDER IN THE SIX (6) MONTH PERIOD PRECEDING THE EVENT GIVING RISE TO SUCH CLAIM, AND NEITHER PARTY WILL BE LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, EXEMPLARY, INCIDENTAL, CONSEQUENTIAL OR OTHER DAMAGES OF ANY TYPE OR KIND ARISING FROM CUSTOMER’S USE OF THE ZEROBOUNCE HOSTED SERVICE.

15. Notice.

Provider may give notice to Customer by means of an electronic mail to Customer’s e-mail address on record with Provider.

16. Modifications.

Provider reserves the right to alter or revise the terms of this Agreement by giving Customer thirty (30) days’ notice of the changes to be made. Customer’s continued use of the ZeroBounce Hosted Service following after changes become effective mean that You have accepted the revised terms. If Customer does not agree to accept the changes, Customer’s sole remedy shall be to discontinue its use of the Software.

17. Force Majeure.

Notwithstanding anything herein to the contrary, the Parties shall not be liable for any delays or failure in performance caused by circumstances beyond the reasonable control of the non-performing party, such as wars or insurrections, acts of government, strikes, fires, floods, earthquakes, work stoppages, and/or embargoes.

18. Relationship of Parties.

No joint venture, partnership, employment, or agency relationship exists between Customer and Provider as a result of this Agreement.

19. Assignment.

This Agreement may not be assigned by either party without the prior written consent of the other party, which will not be unreasonably withheld, but may be assigned without the other party’s consent to (i) a parent or subsidiary; (ii) an acquirer of assets or equity; or (iii) a successor by merger. Any purported assignment in violation of this section will be void.

20. Governing Law and Arbitration.

This Agreement shall be construed in accordance with and governed by the laws of the state of Nevada, without regard to principles of conflict of laws. Except for injunctive relief claims related to data or privacy breaches, any claim or controversy arising out of or relating to this Agreement, or the breach thereof, and/or the use of the ZeroBounce Hosted Service shall be settled by binding arbitration administered by the American Arbitration Association (AAA) in accordance with its Commercial Arbitration Rules, and judgment on the award rendered by the arbitrator(s) may be entered in any court having jurisdiction thereof. The place of arbitration shall be Los Angeles, California. The United States Federal Arbitration Act shall govern the interpretation, enforcement, and proceedings pursuant to this arbitration clause. In no event shall the arbitrator(s) have any authority to award punitive or other damages not measured by the prevailing party’s actual damages, except as may be required by statute. Irrespective of the outcome of arbitration, each party shall bear its own costs and expenses, including its own attorneys’ fees, and an equal share of the arbitrator(s)’ fees and administrative fees of arbitration. The arbitrator(s) shall not determine or award any alternative allocation of costs and expenses, including any attorneys’ fees.

21. Severability.

If any provision of this Agreement is held by a court of competent jurisdiction to be invalid or unenforceable, then such provision will be construed to reflect the intentions of the invalid or unenforceable provision, with all other provisions remaining in full force and effect.

22. Waiver.

The failure of Provider to enforce any right or provision in this Agreement will not constitute a waiver of such right or provision unless acknowledged and agreed to by Provider in writing.

23. Amendment.

No amendment or modification of any provision of this Agreement shall be effective unless in writing and executed by both parties.

24. Entire Agreement.

This Agreement comprises the entire agreement between Customer and Provider and supersedes all prior or contemporaneous negotiations, discussions or agreement, whether written or oral, between the parties regarding the subject matter contained herein.

BY CLICKING THE “I agree with the terms and conditions” CHECKBOX, YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTAND, AND AGREE TO BE BOUND BY THE TERMS AND CONDITIONS OF USE AGREEMENT ABOVE. IF YOU REJECT THE PROPOSED TERMS ABOVE, YOU WILL BE DENIED ACCESS TO THE ZEROBOUNCE HOSTED SERVICE.

Anti-Abuse Policy

Acceptable Use and Anti-Abuse Policy

Zerobounce is committed to protecting consumer privacy while recognizing the importance of the open internet and free flow of information and data. Zerobounce provides various tools to validate data (the “Services”) and expects that those Services will only be used for lawful and legitimate purposes.

The purpose of this Acceptable Use and Anti-Abuse Policy is to outline the acceptable use of the Zerobounce Services. This policy applies to all uses of the Services and any interaction with Zerobounce’s systems, interface, network and database.

Prohibited Use

The following activities are, in general, prohibited. Under no circumstances are any customers of Zerobounce authorized to use the Services to:

Zerobounce reserves the right to refuse service to any person or company, for any reason, including but not limited to, any customer or potential customer that Zerobounce suspects will use or has used the Services in violation of this policy and may terminate your access to the Services at any time in its sole discretion. In the event Zerobounce suspects its Services have been, or will be, used for any purpose that is in violation of the law or this policy, Zerobounce reserves the right to disclose all available information to law enforcement or government officials.

This policy is in addition to the Zerobounce Privacy Policy & Terms [link to PP] Zerobounce reserves the right to update or change this policy at any time.

Reports of abuse should be sent to abuse@zerobounce.net.

Press Releases

ZeroBounce Perfects Real-Time Email Validation System to Improve Email Hygiene

October 16, 2018

Boca Raton, Florida - ZeroBounce has just released a Cloudflare integration to help customers build safer and stronger email lists. ZeroBounce Subscribe is a widget that provides real-time email validation to ensure the collection of genuine leads.

With email being the primary online communication tool, companies are increasing their efforts to protect their email hygiene. Now, Cloudflare customers can rely on this email address collecting tool that validates their new subscribers instantly. ZeroBounce Subscribe is a non-intrusive widget that’s easy to install and customize, and integrates directly with a ZeroBounce account.

ZeroBounce Subscribe has multiple benefits, enabling users to build valuable email lists and expedite their email marketing programs. The widget removes bad domains, duplicate email addresses, spam traps, and catch-all emails. It also allows customers to collect IP addresses, names and genders for future re-targeting campaigns.

“We wanted to make it easy for our customers to improve their emal hygiene and build more robust email lists. With ZeroBounce Subscribe, they get acces to 98% accurate, GDPR compliant email validation. Our engineers have streamlined this process, so customers can extract their verified emails directly from their ZeroBounce account. This is our first third-party integration, and we are working on developing at least 10 more” says ZeroBounce CEO Liviu Tanase.

The ZeroBounce – Cloudflare integration rolls out weeks after ZeroBounce launched the new enhanced API. The Interface covers over 30 status and sub-status codes and prevents risky email addresses from signing up on mailing lists.

This year, ZeroBounce has also released an innovative email scoring system. ZeroBounce A.I. uses artificial intelligence to determine the quality of an email list, helping thousands of customers achieve better email marketing results.

About ZeroBounce

ZeroBounce is an award-winning email validation service dedicated to email bounce detection, email abuse and spam trap detection, email data append and advanced security. With over 2 billion emails validated to date, the company serves 23,000+ businesses in 117+ countries and adds up to 150 new clients every day. Marketers using email lists validated by ZeroBounce report a 98%+ accuracy rate and maintain a good sending reputation. Featured in Entrepreneur magazine and Inc.com, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

ZeroBounce Perfects Real-Time Email Validation System to Improve Email Hygiene

September 19, 2018

Boca Raton, Florida - ZeroBounce perfects its real-time email validation system to help businesses operate in a safer and more productive digital environment. The email verifier has recently upgraded its Application Program Interface (API) to support better email hygiene for its customers.

Companies that rely on email to communicate and manage their customer relationships are making efforts to protect themselves from invalid and risky email addresses. ZeroBounce commits to supporting these efforts with the new, enhanced version of its API, which streamlines the real-time email validation process.

Once integrated on a platform, the ZeroBounce API prevents unwanted signups and registrations. The system acts like a protective shield on newsletter forms, contact and lead forms, or customer relationship management forms.

“Email validation has proven its efficiency in different sectors of our digital businesses. Companies validate emails for many purposes: to maximize their email marketing programs, to eliminate fraud and phishing, and to ensure they communicate and do business with real people. Our custom API stops bots in their tracks, prevents typos on registration forms, and ensures companies are collecting genuine, valuable email addresses,” ZeroBounce CEO Liviu Tanase says.

The ZeroBounce API now covers over 30 status and sub-status codes. In a matter of seconds, it detects misspelled, temporary, catch-all, disposable and many more unwanted email addresses.

The most recent API upgrade follows the launch of ZeroBounce A.I., the most innovative email scoring system on the market, based on artificial intelligence.

About ZeroBounce

ZeroBounce is an award-winning email validation service dedicated to email bounce detection, email abuse and spam trap detection, email data append and advanced security. With over 2 billion emails validated to date, the company serves 23,000+ businesses in 117+ countries and adds up to 150 new clients every day. Marketers using email lists validated by ZeroBounce report a 98%+ accuracy rate and maintain a good sending reputation. Featured in Entrepreneur magazine and Inc.com, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

Email Verifier ZeroBounce Raises the Standards for Email Data Quality

August 22, 2018

Boca Raton, Florida - Premier email verifier ZeroBounce raises the standards for email data quality, with its new email scoring system. ZeroBounce A.I. determines the quality of an email address and makes a significant difference in customers’ email list management.

Driven by artificial intelligence, ZeroBounce A.I. is an extension of the classic email verification system, offering users a more detailed analysis of their email quality. The software scans each address in an email list and provides a score to describe activity levels, potential engagement rate and overall value.

ZeroBounce A.I. scores any kind of valid email and is especially reliable when it comes to catch-all emails. Many catch-all emails are removed from databases because of the risk they carry, but ZeroBounce A.I. ascertains whether that risk exists indeed.

“Our customers have offered us positive responses on the new ZeroBounce A.I., which paints a more detailed picture of their email list quality. We created this software to offer our clients unsurpassed email validation capacity. Customers using ZeroBounce A.I. receive enhanced reports on their data quality, which allows them to maximize their prospects,” says ZeroBounce founder and CEO Liviu Tanase.

ZeroBounce A.I. is the latest addition to the company’s suite of email verification solutions.

About ZeroBounce

ZeroBounce is the premier email validation service dedicated to email bounce detection, email abuse and spam trap detection, email data append and advanced security. Marketers using email lists validated by ZeroBounce report a 98% accuracy rate and maintain a good sending reputation. Featured in Entrepreneur magazine and Inc.com, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

ZeroBounce releases innovative A.I. email validation engine

July 10, 2018

Boca Raton, Florida - Email validation company ZeroBounce announces the release of ZeroBounce A.I., an innovative artificial intelligence email address scoring system. The software provides customers with enhanced feedback on email list quality and accelerates email marketing efforts.

ZeroBounce A.I. combines a vast selection of data with proven statistical analysis to empirically rate the quality level of an email address. The software identifies positive and negative patterns of a unique email address and returns a score that users can integrate into a robust email hygiene process. The methodology of ZeroBounce A.I. periodically adjusts as web trends evolve.

“What is truly revolutionary about the ZeroBounce A.I. platform is that the predictive and self-optimizing analytics within the system compute and assign a real-time score to every email address. The broad spectrum of the ZeroBounce A.I. score gives unprecedented power to the user when it comes to anticipating email delivery, recipient interaction, and general recipient activity rates,” explains ZeroBounce CEO Liviu Tanase.

ZeroBounce A.I.’s rating score varies from 0 to 10, with 10 being the highest quality indicator an email address can receive. The ZeroBounce A.I. proprietary algorithm is at the forefront of email scoring.

About ZeroBounce

Created by a team of top-notch professionals, ZeroBounce is the premier email validation service dedicated to e-mail bounce detection, email abuse and spam trap detection, email data append and advanced security. Marketers using email lists validated by ZeroBounce report a 98% accuracy rate and keep their online reputation intact. Featured in Entrepreneur, BuzzFeed and Inc.com, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

ZeroBounce CEO Liviu Tanase, on the importance of data protection

May 22, 2018

Boca Raton, Florida - ZeroBounce CEO Liviu Tanase emphasizes the importance of data protection, days before the General Data Protection Regulation (GDPR) will be enforced. The serial entrepreneur believes all companies collecting and processing customers’ information have a great responsibility to safeguarding sensitive data.

Tanase says: “At ZeroBounce, we created a system that not only provides accurate email validation results, but also safeguards sensitive data at any cost. From the moment they hand us their information, our customers invest us with their trust. In turn, we have invested tremendous resources in data security methodologies and will continue to do so. It is every company’s responsibility to ensure the safety of its clients’ private information. ZeroBounce has always been committed to this goal.”

Liviu Tanase is a serial entrepreneur and telecommunication executive with over 14 years of experience in the creation, growth, and sale of novel technologies. The CEO of ZeroBounce has founded five companies and holds a master’s degree in Entrepreneurship and Business Administration.

Email verification service ZeroBounce constantly upgrades its security practices, to maintain a safe environment during and after customers’ online acquisition process. The company uses a fully encrypted system to protect sensitive information from cyberattacks and breaches.

In its continued commitment to data protection, ZeroBounce, the global leader in email verification, is compliant with the forthcoming General Data Protection Regulation (GDPR) law set to go into effect on May 25, 2018. As a data processor, ZeroBounce is also registered with the EU-US Privacy Shield Program.

About ZeroBounce

Created by a team of top-notch professionals, ZeroBounce is the premier email validation service dedicated to e-mail bounce detection, email abuse and spam trap detection, email data append and advanced security. Marketers using email lists validated by ZeroBounce report a 98% accuracy rate and preserve their online reputation intact. Featured in Entrepreneur, BuzzFeed and Inc. magazine, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

ZeroBounce is fully compliant with the GDPR Protocols

April 26, 2018

SANTA BARBARA, CA - Leading email validation system ZeroBounce announces that it is fully compliant with the General Data Protection Regulation (GDPR) protocols. The law will become enforceable on May 25th, 2018 and affects organizations across the world.

As the chosen email verification solution of thousands of customers, ZeroBounce processes high amounts of data every day. Protecting that data is a top priority. Before the media buzz surrounding the GDPR, ZeroBounce was leading the industry using the most cutting-edge methodologies. The company is operating under a fully encrypted system to ensure customers’ data remains safe from cyberattacks and breaches. ZeroBounce, which hosts its servers in the European Union (E.U.), is also registered with the EU-US Privacy Shield Program and fully adheres to the E.U. protocols that regulate the collection, use and retention of personal data.

“As a data processor, we are committed to staying up to date on the fast-evolving GDPR requirements through regular assessments by our Data Protection Officer, as well as monthly audits by a third-party security company. It is our company’s core belief that our customers deserve the greatest data security available,” said ZeroBounce CEO Liviu Tanase.

If you have any questions about our processes, please reach out to GDPR@zerobounce.net. About ZeroBounce

Created by a team of top-notch professionals, ZeroBounce is the premier email validation service dedicated to e-mail bounce detection, email abuse and spam trap detection, e-mail data append and advanced security. Marketers who are using email lists validated by ZeroBounce report a 98% accuracy rate and preserve their online reputation intact. Featured on Entrepreneur.com, BuzzFeed and Inc.com, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

ZeroBounce Provides Marketers with Solution Amidst Facebook Usage Decline

March 8, 2018

SANTA BARBARA, California - In the wake of Facebook’s algorithm change and its recently announced usage decline, top email verification system ZeroBounce provides marketers with a reliable solution to improve communication with their audience. Created to help companies reach humans, not bots, ZeroBounce increases email deliverability by up to 98% and builds a stronger sender reputation.

Email marketing is expected to see a significant growth in 2018, as the most popular social media platform, Facebook, is facing a decline in the U.S. According to a study conducted by Edison Research, for the first time since 2008, the number of Americans over the age of 12 reporting to use Facebook has declined from 67% to 62%. “Usage is down or flat in every demographic age group, gender, and ethnicity,” researchers say, while email marketing statistics continue to emphasize its efficiency across all industries.

By the end of 2017, the number of worldwide email users had reached over 3.7 billion, of which 91% check their inbox at least daily. Yet, 30% of users change their email address once a year, which leaves marketers with a real challenge: low delivery rates. Designed to verify email lists and remove invalid and abandoned email addresses, ZeroBounce offers a consistent solution for companies that practice email marketing. The software also eliminates spam traps, known email abusers, disposable emails, catch-all and toxic domains, thus boosting deliverability and the sender’s IP reputation.

“While social media remains a powerful marketing tool in 2018, we offer marketers a system they can rely on when sending their campaigns. Our software ensures unsurpassed deliverability rates and the safest emailing strategy,” ZeroBounce CEO Liviu Tanase says.

About ZeroBounce

Created by a team of top-notch professionals, ZeroBounce is a major email validation service dedicated to e-mail bounce detection, email abuse and spam trap detection, e-mail data append and advanced security. Marketers who are using email lists validated by ZeroBounce report a 98% accuracy rate and preserve their online reputation intact. Featured on Entrepreneur.com, BuzzFeed and Inc.com, ZeroBounce is widely considered “the best email validation system available.”

For more information, visit zerobounce.net.

M24Seven Partners with ZeroBounce to Verify Email Lists and Improve Deliverability

January 16, 2018

SANTA BARBARA, Calif.--(BUSINESS WIRE)-M24Seven, one of Europe’s best connectivity and internet infrastructure providers, recently partnered with leading email validation system ZeroBounce to verify email lists and improve deliverability. The new alliance helps M24Seven customers build a more consistent sender reputation and supports them in their marketing efforts.

Email remains the prevalent form of communication in the business sector, with the average office worker now receiving 120 emails per day. According to the Radicati Group, in 2018, business email will reach a peak of 139.4 billion emails sent and received, on a daily basis. However, around half of those emails never make it into the inbox of the designated recipients. Companies are therefore taking additional measures to ensure their emails are being delivered, given the importance of email deliverability in critical communication. Currently, the most efficient and relevant measure is for marketers to have their email list cleaned by a dependable email validation system. M24Seven recommends ZeroBounce to help customers boost sender reputation and deliverability.

Paul Pintiliescu, European Director of M24Seven, says of the partnership: “With the growing emailing activity around the globe, we believe any company sending large numbers of emails should verify the email lists periodically. We recommend ZeroBounce as the most reliable email validation system, as the assets they provide are outstanding. Thanks to ZeroBounce, our hosting customers will improve their IP address reputation and inbox reachability, and will be able to build better brands.”

Speaking about the new collaboration, ZeroBounce CEO Liviu Tanase explained: "Our goal is to be of service to businesses of all sizes that are struggling with email deliverability issues. Starting today, M24Seven’s clients have healthier databases and will significantly improve inbox delivery rates. We are excited about this partnership and about the contribution that we make to the fast-changing email marketing landscape.”

Apart from removing invalid email addresses, ZeroBounce also eliminates spam traps and known email complainers from databases. Furthermore, the system adds valuable information to email lists, like the country and age of the provided email addresses, as well as the owners’ name and gender. With the growing need for email personalization, this specific feature provides tremendous benefit. According to Smart Insight, 2018 will extend the insight, practices, and trends of large companies in A/B testing, multi-channel campaigns, and automated communication to small and medium enterprises. This further expands the need for tools offered by ZeroBounce in helping companies increase deliverability while keeping sending scores high.

As the 2018 AFFY Award Winner for outstanding internet achievement, ZeroBounce continues to set the benchmark in email validation and verification technology and security. ZeroBounce is a trusted tool that many customers rely on, as indicated on review sites such as My Brand Review and Accu Web Hosting.

About ZeroBounce.net

Created by a team of top-notch professionals, ZeroBounce is a major email verification service dedicated to e-mail bounce detection, email abuse and spam trap detection, e-mail data append and advanced security. Marketers who are using email lists validated by ZeroBounce report a 98% accuracy rate. International journalists and bloggers specialized in software development have named ZeroBounce “the best email validation system available.”

About M24seven.com

Established in 2003, M24Seven is UK’s most reputable connectivity and internet infrastructure provider and one of Europe’s best. With six offices and 250 employees across the UK and Europe, M24Seven is connected to over 16 global internet exchange points, including New York, London, Singapore, Amsterdam, Frankfurt and Bucharest. The company provides a wide range of solutions, focusing on web hosting, network and data security.

Contacts

ZeroBounce
Corina Leslie, +1-888-500-9521
PR Manager
office [at] zerobounce.net
https://www.zerobounce.net

ZeroBounce Publishes the Complete Guide to Improve Inbox and Deliverability

December 28, 2017

SANTA BARBARA, CALIFORNIA, DEC. 28, 2017

ZeroBounce, the most reliable and affordable email verifier on the market, just released The Complete Guide to Improve Inbox and Deliverability. Dedicated to all companies who struggle to get their emails in customers’ inboxes, the guide was created by the ZeroBounce team of experienced professionals. It is a free source of valuable advice for all marketers looking to improve their deliverability rates and overall marketing performance.

If we look at the most recent statistics, we can safely say that 2017 was the year of email marketing. Email has become the preferred medium of communication, as in terms of reach, it outperforms social media and any other channel. Companies that want to stay on top of their marketing success are constantly fine-tuning their campaigns and trying out new systems to ensure their messages are delivered. Using a dependable email verification service is one of the first steps in that process, but successful emailing takes more than that.

Now, ZeroBounce offers you all you need to start building your strong sending reputation, boost your deliverability and achieve your business goals more easily. “We used our knowledge and experience to create a complete guide for companies who are striving to improve their email marketing. This free resource can help a lot of marketers who create great content, but are having a hard time delivering it to their audience. The guide includes detailed advice on what you could do to better your performance,” Henry Timmes, CTO of ZeroBounce, said.

The Complete Guide to Improve Inbox and Deliverability

  1. Separate the types of emails you send. If your company sends "Transactional Emails" and "Newsletters, Receipts, Reminders, etc" you should email each group with different IPs and different domain names. For regular corporate transactional emails, use the domain "company.com" and for all other emails use a similar sounding but different domain, such as "companynews.com". Each domain needs to mail out on separate dedicated IPs. When different types of mailings are mixed, Google and other ISPs will tend to lump your corporate emails under the "Promotional" and "Other" tabs.

  2. Use recapcha from Google on your registration screen. Google recaptcha is used to prevent automated bots from signing up or registering on your site, to your newsletters and so on. Sending e-mails to bot registrations or to people that exist but have been registered by a bot can hurt your emailing metrics. For example, if you email 100 bot registrations at an ISP and none of them open or click the emails you send out, this tells the ISP that a lot of people are not interested in your emails overall and will consider it junk/spam.

  3. Use double opt-in confirmation for all of your emails. When a user registers on your site or for your newsletter, you need to send them an email asking them to confirm that they want communication from your company. Remember how we talked about how bots can sign up real people who didn't ask to be signed up in step #2? Emailing people who didn't confirm to receive communication will tend to mark your mail as spam, and that will hurt your inbox rate.

You can read the entire guide here.

About ZeroBounce

Created by a team of top-notch professionals, ZeroBounce is a major email validation service dedicated to e-mail bounce detection, email abuse and spam trap detection, e-mail data append and advanced security. Marketers who are using email lists validated by ZeroBounce report a 98% accuracy rate and preserve their online reputation intact. International journalists and bloggers specialized in software development have named ZeroBounce “the best email validation system available.”

ZeroBounce signs with Cloudflare to offer more security to their customers

December 12, 2017

SANTA BARBARA, CALIFORNIA, DECEMBER 12, 2017

Leading email validation system ZeroBounce recently signed up with Cloudflare, the Internet performance and security company helping to build a better Internet, to offer upgraded security services to ZeroBounce customers. In working with Cloudflare, ZeroBounce is focused on protecting customers’ personal data and ensuring a safer environment during their online acquisition process.

At ZeroBounce, data protection has always been supreme. All files uploaded and downloaded on zerobounce.net are encrypted and protected by a password. The company never stores customers’ data beyond 30 days, and once they are erased, all aspects of that information are erased. ZeroBounce also uses cyber security companies in order to ensure the safety of its clients’ private information, in an effort to provide not only the best email validation system, but also the most secure. Cloudflare, which has an outstanding Content Delivery Network used by millions of online platforms, is now providing its enterprise services to ZeroBounce. Thus, sensitive information like names, email addresses or other private data will be preserved even more securely until the completion of every purchase on ZeroBounce.net.

In September 2017, the U.S. Federal Trade Commission pointed out the importance of website and data protection. The agency referenced the recent massive Equifax data breach that affected more than 145 million Americans and called for consistent and urgent measures. Data protection is crucial in avoiding identity theft and keeping customers’ privacy intact, and the end goal of any IT security system is to make sure the data is not being improperly disclosed.

Henry Timmes, CTO of ZeroBounce, said: “We are here not only to offer the best email validation system, but also to look after our customers and make sure their data is kept safe. Cloudflare improves the performance of over seven million websites across the globe and is an elite service when it comes to data and website protection. They provide advanced firewall, CDN and many other valuable assets. We are confident that our customers will benefit from this in the long run.”

About ZeroBounce

Created by a team of top-notch professionals, ZeroBounce is a major email verification service dedicated to e-mail bounce detection, email abuse and spam trap detection, e-mail data append and advanced security. Marketers who are using email lists validated by ZeroBounce report a 98% accuracy rate and preserve their online reputation intact. International journalists and bloggers specialized in software development have named ZeroBounce “the best email validation system available.”

About Cloudflare

Cloudflare, Inc. is on a mission to help build a better Internet. Today the company runs one of the world’s largest networks that powers more than 10 trillion requests per month, which is nearly 10 percent of all Internet requests for more than 2.5 billion people worldwide.

ZeroBounce Provides Email Validation Services to Improve Email Deliverability in Time for the Holiday Season

November 30, 2017

SANTA BARBARA, CALIFORNIA, NOVEMBER 30, 2017 (PRWEB)

ZeroBounce, a leading email verification service, helps brands prepare their email campaigns for the holiday shopping season.

According to research done by Hubspot, 91% of marketers used email as a channel to reach holiday customers in 2016. It’s no surprise since email has an average ROI of $44 for every $1 spent.

When it comes to holiday campaigns, companies want to stand out in the sea of emails and create a campaign that will engage the audience. Before that is even possible marketers need to ensure their emails are going to actually reach the intended audience. This is where ZeroBounce can help. Through ZeroBounce’s email validation software, companies can validate their email lists to ensure deliverability of 98% or higher and reduce bounce rates.

How is this done? Through an online email validation system that provides:

Email bounce detection - removes invalid emails from lists to prevent email bounces from ruining deliverability.

Email abuse and spam trap detection - removes unknown email complainers and spam traps from the email list.

Email data append - appends missing data such as first and last name, location, gender or city, state/region, and country when registration IP is provided.

Henry Timmes, CTO of ZeroBounce, recently said of the tool, “We’ve developed a tool that all types and size businesses can use to improve email deliverability and bounce rates. We continue to make improvements to provide our customers with the best email validation system. Brands can rely on ZeroBounce to validate their large holiday email campaigns all the way down to their smaller segmented campaigns.”

If you would like more information about ZeroBounce and how it can help with your holiday email campaigns, click here or email us at office[at]zerobounce.net.

About ZeroBounce: ZeroBounce is an email verification service acknowledged by the commitment to email bounce detection, email abuse and spam trap detection, email data append and advanced security.

ZeroBounce Releases Critical Email Validation Tool for Newsletters

November 7, 2017

SANTA BARBARA, Calif., Nov. 7, 2017 /PRNewswire/

ZeroBounce, a rapidly growing email verification service, increases deliverability rates for Fortune 500 brands that utilize newsletter campaigns.

Research shows 95 percent of people who sign up for a newsletter from a well-known brand consider the emails they receive useful and relevant, and, therefore, are more likely to read and make purchase decisions based on the messages they receive. ZeroBounce's proprietary validation software helps major household brands increase engagement of their current and potential customers. In the past month, ZeroBounce enhanced its product specifically to help brands be more effective with their newsletter campaigns.

Email newsletters have a $44 return per $1 marketing spend, the highest of any media channel, and ZeroBounce ensures all marketing dollars are leveraged to the fullest potential by making sure the customer is actually reached.

ZeroBounce provides the following services to ensure a deliverability rate of 98 percent or higher:

Over the past month, ZeroBounce improved its tools with email newsletters in mind by:

Segmented email campaigns that target a specific audience (such as newsletter subscribers categorized by the product[s] of interest) have 14.64 percent more opens and 59.99 percent more clicks than non-segmented campaigns. Imagine using a tool that not only segments a subscriber list but also cleans that same list by removing invalid, incomplete and inactive email addresses that could be hurting your campaign's performance metrics. ZeroBounce's validation tools do exactly this with its data append tool. It can even provide missing information, such as first and last name, location, gender, city and state in some cases. Think of all the opens and clicks your email newsletter campaigns will receive once you can strategically target subscribers with carefully crafted newsletters and eliminate dreaded bounce rates at the same time.

If you would like more information about ZeroBounce, click here or email us at office[at]zerobounce.net.

About ZeroBounce: ZeroBounce is an email verification service acknowledged by the commitment to email bounce detection, email abuse and spam trap detection, email data append and advanced security.

ZeroBounce Leads in Encryption Methodology for E-Mail List Protection

October 2, 2017

SANTA BARBARA,California, Oct. 2, 2017/PRNewswire

E-mail validation is increasingly important in the delivery of all e-mail. The frontrunner in e-mail validation, ZeroBounce.net, provides the safety and security that clients need when it comes to protecting data through new encryption methodologies for e-mail list protection.

ZeroBounce is using one of the best content delivery network system in the world that is backed by Cloudflare. This provides clients with an Advanced DDOS and Advanced Firewall protection that gives another layer of defense to prevent cyber attacks/data breaches. Besides using this leading-edge system, all files uploaded and downloaded are encrypted with military-grade encryption ciphers. Customer data is never stored once data is validated and removed from the system; all aspects of the data are erased.

Not only is ZeroBounce employing this type of secure methodology, the validation service also employs several cybersecurity companies to continually, and in real-time, audit possible breaches and deploy a proprietary business logic to ensure the highest standards in protection of clients' proprietary data.

Of the company's role in providing the best e-mail validation system to their clients, CTO Henry Timmes states, "The whole process of validating e-mails is very complex. There are many minute details that you have to pay attention to - from security, ease of use, accuracy, functionality, integration, and availability, to data enrichment that actionable decisions can be made upon. These items are monitored and improved upon with our continuous integration and deployment model to bring faster features and updates that evolving businesses need in order to succeed with e-mail delivery."

Along with the encryption methodology, ZeroBounce employs:

About ZeroBounce: ZeroBounce is an e-mail validation service acknowledged by the commitment to e-mail bounce detection, email abuse, and spam trap detection, e-mail data append and advanced security.

Email Validation and Email Marketing

May 24, 2017

NEW YORK, NY (PRWEB) MAY 24, 2017

Email marketing is a 4.5 billion dollar market and research suggests that it could grow to as much as 22 billion in the next ten years. Most recently, small and medium sized businesses are investing more in their online marketing budget, with email campaigns leading in both ROI and allocation. The trending increase in email marketing is due to a better understanding of the customer and pinpointed email delivery services. ZeroBounce provides enhanced data validation services to users seeking a reliable tool that has a direct impact on the success of their email marketing campaigns.

In addition to these key benefits, ZeroBounce is able to provide customers with data and IP appending features, resulting in higher quality data and more effective segmentation capabilities.

Currently, there is no other product on the market that offers all of the above with the accuracy and volume of data appended. When combining all these features, the data quality of one's list is greatly enhanced by the added information and lists can be segmented by gender and location. Emails can even be personalized using real names. Segmentation and timing are critical in email marketing and answering questions such as the age of the target customers, the usage patterns by males vs. females, and geographic segmentation for region specific offers make up the difference between an average and a stellar marketing campaign. Traditionally, search, display, and video advertisers have used these segmentation techniques, and email marketers now have a reliable segmentation tool as well. When lists are segmented and appended with additional information, targeting the right consumer with the best advertising campaign increases the probability of success.

Security in data is also paramount. All files uploaded and downloaded are encrypted and password-protected. Customer data is never stored and once a customer deletes data from the system, all aspects of the data are erased.

A spokesperson on the ZeroBounce team commented on the brand’s value proposition, stating, “We don't compare ourselves to other email hygiene and validation companies because we offer so much more. To us, an email hygiene validation system has many different layers that go beyond whether an email is good or bad, and ZeroBounce meets every need.”

Chris Purser, the CTO of Digital Power Sports shared his experience using the tool, saying, “ZeroBounce APIs have been pivotal in helping us provide leads that are insanely accurate. Their resource rich Data Appends feature provides a pathway to the most important statistic: higher conversion rates for our customers.” While competing service providers boast an accuracy percentage of 97%, ZeroBounce performs just as well, if not better. According to their spokesperson, “We can easily match the accuracy rates of our competitors, but customers will more than likely find the accuracy ranging from as high as 98 to 99.5% across the major email service providers.” This margin proves that data validation is truly responsible for helping an email marketing campaign go from average to outstanding.

Interested in learning more? Contact ZeroBounce today.

Data Processing Agreement

Email Validation Data Processing Agreement

PDF Version: Data Processing Agreement

Data Processing Agreement
BETWEEN:

The company who will electronically sign this Data Processing Agreement (hereinafter to be referred to as: the “Data Controller”),

AND

Hertza, L.L.C., DBA ZeroBounce, a Nevada limited liability company, having its principal place of business at 10 E. Yanonali St., Santa Barbara, California 93101 (hereinafter to be referred to as: the “Data Processor”).

HEREBY AGREE AS FOLLOWS:

1. Subject matter of this Data Processing Agreement

1.1 This Data Processing Agreement applies exclusively to the processing of personal data that is subject to EU Data Protection Law in the scope of the Terms and Conditions of Use Agreement of even date hereof between the parties for the provision of the ZeroBounce services (“Services”) (hereinafter to be referred to as: the “Service Agreement”).

1.2 The term EU Data Protection Law shall mean Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation).

1.3 Terms such as “Processing”, “Personal Data”, “Data Controller” and “Processor” shall have the meaning ascribed to them in the EU Data Protection Law.

1.4 Insofar as the Data Processor will be processing Personal Data subject to EU Data Protection Law on behalf of the Data Controller in the course of the performance of the Service Agreement with the Data Controller the terms of this Data Processing Agreement shall apply. The categories of Personal Data to be processed includes: first name; last name; gender; city; state; country; Internet Protocol (IP) Address information; and email addresses. The types of data subjects who information will be processed are individuals. The purposes for which the personal data will be processed includes: validation of email lists for deliverability; and removal of known email complainers, abusers and spam traps from email address lists.

2. The Data Controller and the Data Processor

2.1 The Data Controller will determine the scope, purposes, and manner by which the Personal Data may be accessed or processed by the Data Processor. The Data Processor will process the Personal Data only as set forth in Data Controller’s written instructions.

2.2 The Data Processor will only process the Personal Data on documented instructions of the Data Controller in such manner as – and to the extent that – this is appropriate for the provision of the Services, except as required to comply with a legal obligation to which the Data Processor is subject. In such a case, the Data Processor shall inform the Data Controller of that legal obligation before processing, unless that law explicitly prohibits the furnishing of such information to the Data Controller. The Data Processor shall never process the Personal Data in a manner inconsistent with the Data Controller’s documented instructions. The Data Processor shall immediately inform the Data Controller if, in its opinion, an instruction infringes this Regulation or other Union or Member State data protection provisions.

2.3 The Parties have entered into a Service Agreement in order to benefit from the expertise of the Processor in securing and processing the Personal Data for the purposes set out in Section 1.4. The Data Processor shall be allowed to exercise its own discretion in the selection and use of such means as it considers necessary to pursue those purposes, subject to the requirements of this Data Processing Agreement.

2.4 Data Controller warrants that it has all necessary rights to provide the Personal Data to Data Processor for the Processing to be performed in relation to the Services. To the extent required by Applicable Data Protection Law, Data Controller is responsible for ensuring that any necessary data subject consents to this Processing are obtained, and for ensuring that a record of such consents is maintained. Should such a consent be revoked by the data subject, Data Controller is responsible for communicating the fact of such revocation to the Data Processor, and Data Processor remains responsible for implementing any Data Controller instruction with respect to the further processing of that Personal Data.

3. Confidentiality

3.1 Without prejudice to any existing contractual arrangements between the Parties, the Data Processor shall treat all Personal Data as strictly confidential and it shall inform all its employees, agents and/or approved sub-processors engaged in processing the Personal Data of the confidential nature of the Personal Data. The Data Processor shall ensure that all such persons or parties have signed an appropriate confidentiality agreement, are otherwise bound to a duty of confidentiality, or are under an appropriate statutory obligation of confidentiality.

4. Security

4.1 Taking into account the state of the art, the costs of implementation and the nature, scope, context and purposes of processing as well as the risk of varying likelihood and severity for the rights and freedoms of natural persons, without prejudice to any other security standards agreed upon by the Parties, the Data Controller and Data Processor shall implement appropriate technical and organizational measures to ensure a level of security of the processing of Personal Data appropriate to the risk. These measures shall include as appropriate:

(a) measures to ensure that the Personal Data can be accessed only by authorized personnel for the purposes set forth in Section 1.4 of this Data Processing Agreement;

(b) in assessing the appropriate level of security account shall be taken in particular of all the risks that are presented by processing, for example from accidental or unlawful destruction, loss, or alteration, unauthorized or unlawful storage, processing, access or disclosure of Personal Data;

(c) the pseudonymization and encryption of personal data;

(d) the ability to ensure the ongoing confidentiality, integrity, availability and resilience of processing systems and services;

(e) the ability to restore the availability and access to personal data in a timely manner in the event of physical or technical incident;

(f) a process for regularly testing, assessing, and evaluating the effectiveness of technical and organizational measures for ensuring the security of the processing of Personal Data;

(g) measures to identify vulnerabilities with regard to the processing of Personal Data in systems used to provide services to the Data Controller; or

(h) ZeroBounce takes the following security measures to protect personal data against accidental or unlawful destruction or accidental loss, alteration, unauthorized disclosure or access: * ZeroBounce is an active participant in the EU-US Privacy Shield Program; * ZeroBounce has restricted access to two personnel members with the ability to directly access files containing personal information on ZeroBounce servers; * The ZeroBounce support team does not have access to CloudFlare; * All data uploads and downloads sent between ZeroBounce and its customers flow through third party CloudFlare’s servers; * CloudFlare is an active participant in the EU-US Privacy Shield Program; * CloudFlare maintains its own security protections to block threats and limit abusive bots and crawlers. See https://support.cloudflare.com/hc/en-us/articles/205177068-Step-1-How-does-Cloudflare-work- * Any information that is uploaded by a ZeroBounce customer to ZeroBounce.net is transmitted via SSL through CloudFlare, and all files are stored in an encrypted file using a standard algorithm for protection of stored data defined by IEEE P1619 on ZeroBounce servers; and * All files are sent to ZeroBounce customers encrypted, with a password via a separate email

4.2 The Data Processor shall at all times have in place an appropriate written security policy with respect to the processing of Personal Data, outlining in any case the measures set forth in Article 4.1.

4.3 At the request of the Data Controller, the Data Processor, shall demonstrate the measures it has taken pursuant to this Article 4 shall allow the Data Controller to audit and test such measures. The Data Controller shall be entitled on giving at least 14 days’ notice to the Data Processor to carry out, or have carried out by a third party who has entered into a confidentiality agreement with the Data Processor, audits of the Data Processor’s premises and operations as these relate to the Personal Data. The Data Processor shall cooperate with such audits carried out by or on behalf of the Data Controller and shall grant the Data Controller’s auditors reasonable access to any premises and devices involved with the Processing of the Personal Data. The Data Processor shall provide the Data Controller and/or the Data Controller’s auditors with access to any information relating to the Processing of the Personal Data as may be reasonably required by the Data Controller to ascertain the Data Processor’s compliance with this Data Processing Agreement.

5. Improvements to Security

5.1 The Parties acknowledge that security requirements are constantly changing and that effective security requires frequent evaluation and regular improvements of outdated security measures. The Data Processor will therefore evaluate the measures as implemented in accordance with Article 4 on an on-going basis and will tighten, supplement and improve these measures in order to maintain compliance with the requirements set out in Article 4. The Parties will negotiate in good faith the cost, if any, to implement material changes required by specific updated security requirements set forth in applicable data protection law or by data protection authorities of competent jurisdiction.

5.2 Where an amendment to the Service Agreement is necessary in order to execute a Data Controller instruction to the Data Processor to improve security measures as may be required by changes in applicable data protection law from time to time, the Parties shall negotiate an amendment to the Service Agreement in good faith.

6. Data Transfers

6.1 The Data Processor shall immediately notify the Data Controller of any (planned) permanent or temporary transfers of Personal Data to a country outside of the European Economic Area without an adequate level of protection and shall only perform such a (planned) transfer after obtaining authorization from the Data Controller, which may be refused at its own discretion. The Data Controller grants its consent to transfers to the United States.

6.2 To the extent that the Data Controller or the Data Processor are relying on a specific statutory mechanism to normalize international data transfers that is subsequently modified, revoke, or held in a court of competent jurisdiction to be invalid, the Data Controller and the Data Processor agree to cooperate in good faith to promptly terminate the transfer or to pursue a suitable alternate mechanism that can lawfully support the transfer.

7. Information Obligations and Incident Management

7.1 When the Data Processor becomes aware of an incident that impacts the Processing of the Personal Data that is the subject of the Service Agreement, it shall promptly notify the Data Controller about the incident, shall at all times cooperate with the Data Controller, and shall follow the Data Controller’s instructions with regard to such incidents, in order to enable the Data Controller to perform a thorough investigation into the incident, to formulate a correct response, and to take suitable further steps in respect of the incident.

7.2 The term “incident” used in Article 7.1 shall be understood to mean in any case:

(a) a complaint or a request with respect to the exercise of a data subject’s rights under EU Data Protection Law;

(b) an investigation into or seizure of the Personal Data by government officials, or a specific indication that such an investigation or seizure is imminent;

(c) any unauthorized or accidental access, processing, deletion, loss or any form of unlawful processing of the Personal Data;

(d) any breach of the security and/or confidentiality as set out in Articles 3 and 4 of this Data Processing Agreement leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to, the Personal Data, or any indication of such breach having taken place or being about to take place;

(e) where, in the opinion of the Data Processor, implementing an instruction received from the Data Controller would violate applicable laws to which the Data Controller or the Data Processor are subject.

7.3 The Data Processor shall at all times have in place written procedures which enable it to promptly respond to the Data Controller about an incident. Where an incident is reasonably likely to require a data breach notification by the Data Controller under applicable EU Data Protection Law, the Data Processor shall implement its written procedures in such a way that it is in a position to notify the Data Controller no later than 24 hours of having become aware of such an incident.

7.4 Any notifications made to the Data Controller pursuant to this Article 7 shall be addressed to the Data Protection Officer or other employee of the Data Controller whose contact details are provided during the registration process, and shall contain:

(a) a description of the nature of the incident, including where possible the categories and approximate number of data subjects concerned and the categories and approximate number of Personal Data records concerned;

(b) the name and contact details of the Data Processor’s data protection officer or another contact point where more information can be obtained;

(c) a description of the likely consequences of the incident; and

(d) a description of the measures taken or proposed to be taken by the Data Processor to address the incident including, where appropriate, measures to mitigate its possible adverse effects.

8. Contracting with Sub-Processors

8.1 The Data Controller authorizes the Data Processor to engage the sub-processors in the country locations for the Service-related activities specified as described in Section 1.4. Data Processor shall inform the Data Controller of any addition or replacement of such sub-processors giving the Data Controller an opportunity to object to such changes.

8.2 Notwithstanding any authorization by the Data Controller with the meaning of the preceding paragraph, the Data Processor shall remain fully liable vis-à-vis the Data Controller for the performance of any such sub-processor that fails to fulfill its data protection obligations.

8.3 The consent of the Data Controller pursuant to Article 8.1 shall not alter the fact that consent is required under Article 6 for the engagement of sub-processors in a country outside the European Economic Area without a suitable level of protection.

8.4 The Data Processor shall ensure that the sub-processor is bound by the same data protection obligations of the Data Processor under this Data Processing Agreement, shall supervise compliance thereof, and must in particular impose on its sub-processors the obligation to implement appropriate technical and organizational measures in such a manner that the processing will meet the requirements of EU Data Protection Law.

8.5 The Data Controller may request that the Data Processor audit a sub-processor or provide confirmation that such an audit has occurred (or, where available, obtain or assist customer in obtaining a third-party audit report concerning the sub-processor’s operations) to ensure compliance with its obligations imposed by the Data Processor in conforming with this Data Processing Agreement

9. Returning or Destruction of Personal Data

9.1 Upon termination of this Data Processing Agreement, upon the Data Controller’s written request, or upon fulfillment of all purposes agreed in the context of the Services whereby no further processing is required, the Data Processor shall, at the discretion of the Data Controller, either delete, destroy, or return all Personal Data to the Data Controller and destroy or return any existing copies.

9.2 The Data Processor shall notify all third parties supporting its own processing of the Personal Data of the termination of the Data Processing Agreement and shall ensure that all such third parties shall either destroy the Personal Data or return the Personal Data to the Data Controller, at the discretion of the Data Controller.

10. Assistance to Data Controller

10.1 The Data Processor shall assist the Data Controller by appropriate technical and organizational measures, insofar as this is possible, for the fulfilment of the Data Controller’s obligation to respond to request for exercising the data subject’s rights under the GDPR.

10.2 The Data Processor shall assist the Data Controller in ensuring compliance with the obligations pursuant to Section 4 (Security) and prior consultations with supervisory authorities required under Article 36 of the GDPR taking into account the nature of processing and the information available to the Data Processor.

10.3 The Data Processor shall make available to the Data Controller all information necessary to demonstrate compliance with the Data Processor’s obligations and to allow for and contribute to audits, including inspections, conducted by the Data Controller or another auditor mandated by the Data Controller.

11. Liability and Indemnity

11.1 The Data Processor indemnifies the Data Controller and holds the Data Controller harmless against all claims, actions, third party claims, losses, damages and expenses incurred by the Data Controller and arising directly or indirectly out of or in connection with a breach of this Data Processing Agreement and/or the Applicable Data Protection Law by the Data Processor. The Data Controller indemnifies the Data Processor and holds the Data Processor harmless against all claims, actions, third party claims, losses, damages and expenses incurred by the Data Processor and arising directly or indirectly out of or in connection with a breach of this Data Processing Agreement and/or the Applicable Data Law by the Data Controller.

12. Duration and Termination

12.1 This Data Processing Agreement shall come into effect on the date the Data Controller electronically signs this Data Processing Agreement.

12.2 Termination or expiration of this Data Processing Agreement shall not discharge the Data Processor from its confidentiality obligations pursuant to Article 3.

12.3 The Data Processor shall process Personal Data until the date of termination of the Service Agreement, unless instructed otherwise by the Data Controller, or until such data is returned or destroyed on instruction of the Data Controller.

13. Miscellaneous

13.1 In the event of any inconsistency between the provisions of this Data Processing Agreement and the provisions of the Service Agreement, the provisions of this Data Processing Agreement shall prevail.

13.2 This Data Processing Agreement is governed by the laws of the state of Nevada in the United States. Any disputes arising from or in connection with this Data Processing Agreement shall be brought exclusively before the competent court in Las Vegas, Nevada.

Enterprise Plans

In order to accommodate the needs of our larger partners, we offer Enterprise Plans that come with additional benefits.

Some of these benefits include:

What are the requirements for Enterprise Plans?

Enterprise customers will meet with an account manager, then agree to terms regarding minimum monthly service expectations.

Certifications and Accreditations

Here's the list of certifications and accreditation received by ZeroBounce

categ- Getting Started

Validation Process

You can validate your email(s) via the browser uploading files or via the API.

Step 1. Register your new account with ZeroBounce.

Step 2. Verify your email by clicking the link in the email we send you.

Step 3. Log in to your ZeroBounce account.

Step 4. Access our Bulk Email Upload page.

Step 5. Try out our service for free by uploading a .CSV or .TXT file with up to 100 contacts.

Step 6. Review your results and decide how many emails you need to validate.

Step 7. Buy more credits here.

Step 8. Upload your .CSV or .TXT with the emails you would like to verify.

NOTE: Give the system approximately 45-60 minutes per 100,000 contacts.

Step 9. Download your new clean list by clicking on the file name underlined in green below.

Email Validation Process

Step 10. Select the columns you want appended on the download and then click "Download File".

Email Validation Process

Step 11. Once you download your file, you will receive an email with the unique key to unlock the encrypted .ZIP file.

Email Validation Process

Step 12. When you open the .zip file below, you will be prompted to enter the unique key above.

Email Validation Process

Step 13. Enjoy your newly validated list of verified emails! To learn more about the different files you see below, click here: What in the Zip File?

Email Validation Process

FAQs

Do I have to register on the website to use the service? No! Luckily, we have a single email verifier on the front page of our website. Check it out!

What is the minimum amount of records that I can validate? Well, more is better than less, but the minimum purchase that we allow is 5,000 emails.

For how long can I use the credits I purchase? Forever! ZeroBounce credits never expire. You can use them when and however you like here.

If I didn't get my registration email, what should I do? We know this can be a bother, but being patient and checking the junk folder are our best practices!

Can I use my credits in order to verify in real-time with your API? This may seem like a leading question, but YES! You can absolutely use our API for your website forms or other creative ways to filter your email lists from the source. You can find instructions on how to do this here.

For more information on how to improve your email campaigns, check out our Complete Guide to Improve Inbox and Deliverability

File

Please see here for a detailed guide on how to use ZeroBounce with files.

API

Please see here for a detailed guide on how to use ZeroBounce via the API.

Which method should I use?

If you need real time validations (for example, if you want to verify your users' email addresses during the sign up process and reject them if they are invalid, the API is going to be the faster and easier choice. If you need to validate lists, either as a one off or once every few days/weeks, then it's easier to use the browser and upload all your emails at once.

Purchasing Credits

ZeroBounce.net partners with PayPal and Stripe as their payment processors.

How can I buy credits?

You can buy them here: https://www.zerobounce.net/members/buycreditsnow/

How much does your service cost?

Our pricing plan can be found here. This page offers you a clean and simple calculator for your convenience.

Do my credits ever expire?

No. Never. You can use your credits anytime you like.

What if I have very large lists?

If you need to validate very large lists (5M+) then get in touch. We have many clients who process over 5M+ daily, contact us so we can assist you and make sure you're getting the most out of ZeroBounce.

Is there a minimum order size?

Yes, the minimum order is 5,000 credits.

Where can I find how many credits I have left?

Your credit balance is available once you login on the Bulk Email Validator - Upload Your File page. Your balance is displayed, in orange, on the right of the page.

Email Validation Process

You will need to complete the registration process and login before you can access the link above.

AutoPay

AutoPay is a feature that allows you to automatically replenish your account when your credit balance gets low. This feature ensures that you don't run out of credits when using our API to validate emails.

In order to use this feature, you need to make at least one purchase using the "Pay with Card" option on the "Buy Credits" screen. Then you will be able to add or delete payment methods, but only one payment method is allowed to be active.

Be sure to "Check" the Enable Automatic Payment button and click "Save Changes".

Email Validation Process

We Protect Your Data

ZeroBounce is using one of the best content delivery network systems in the world that is backed by Cloudflare. This leading-edge system provides clients with an Advanced DDOS and Advanced Firewall protection that gives another layer of defense to prevent cyber attacks/data breaches.

Apart from that, all files uploaded and downloaded are encrypted with military-grade encryption ciphers.

Customer data is never stored in a database. When you delete your data, everything about your data is deleted and completely removed from our system; all aspects of the data are erased.

Your data isn't handled by any third party companies or stored on third party servers. We own our data center and we don't use Amazon, Azure, or other third party providers that would add an extra layer of risk to your data.

Also, your data will automatically be deleted within 30 days.

Improve Your Deliverability

We wrote a comprehensive article on how to improve your inbox and deliverability.

https://www.zerobounce.net/guide-to-improve-inbox-and-delivery.html

categ- A.I. Email Scoring

ZeroBounce A.I. Documentation

Q: What is ZeroBounce A.I.? ZeroBounce A.I. combines a vast selection of data with proven statistical analysis to granularly rate the quality level of an email address. The software identifies positive and negative patterns of an email address and returns a score that users can rely on when performing their email hygiene. The methodology of ZeroBounce A.I. periodically adjusts as email trends evolve.

Q: When should you use our AI Email Scoring * After you clean your email list with ZeroBounce, you can further validate you list of catch all emails and your valid emails. * We strongly recommend validating your catch-all emails since they can't be validated during the normal validation process. * If you want to further segment your email list based on Quality Score, we recommend validating your "valid" file also.

Q: What should you expect to get after you score your email list. After you score your email file through our A.I. you will get a .csv file back with an added column where you will find the Quality Score of the email.

Q: How does the A.I. Score Emails. Think about how an automatic trading software system would work. When should you buy stocks in a company? When should you sell? It's the same principle.

Q: Does the ZB A.I. store or share any data with any 3rd parties? The A.I. does not store or cache any data and does not share any data with anyone.

Q. How should you interpret or use the scoring results. Based on customer feedback, the higher quality score (QS), the higher the email engagement and the lower bounce rate.

Below is an example of an email list of all catch-all domains:

QS: 0 has an average bounce rate of 40%
QS: 1 has an average bounce rate of 35%
QS: 2 has an average bounce rate of 30%
QS: 3 has an average bounce rate of 25%
QS: 4 has an average bounce rate of 20%
QS: 5 has an average bounce rate of 7%
QS: 6 has an average bounce rate of 6.5%
QS: 7 has an average bounce rate of 5%
QS: 8 has an average bounce rate of 3.5%
QS: 9 has an average bounce rate of 2%
QS: 10 has an average bounce rate of 1.3%

Some real-life examples of how you should use ZB A.I.:

Let's say you have a 100k email list that you need to validate and score via ZeroBounce. You first validate the file via the normal process of removing all invalid emails (API or bulk upload).

Let's say your email validation results look like this:

43% Valid
25% Catch-all
18% Invalids
2% Abuse and Traps
2% Do Not Mail

Normally, you should only email the Valid file. With ZB A.I. you can now start mailing also the catch-all files, starting with QS 10 and working your way down from that until you decide that the bounce rate is no longer acceptable.

We recommend to never send emails to emails that have a quality score of 0.

Keep in mind a quality score of 0 doesn't mean the email is invalid, they can be spam traps, they can be inactive emails, they can be disabled emails and many other reasons. Our A.I. determined them to be very low-quality emails that will have much lower engagement collectively then high scoring emails.

Alternatively, if you decide to score your valid file, we recommend using the same approach, first only email the users that have a quality score of 10.

Emails that score high, tend to have much higher engagement. Think about it, if an ESP sees people opening your emails, engaging with your email. You reputation improves and thus your in-boxing improves.

categ- Email List Verification

Uploading Files

Uploading Your List

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.

Processing Time

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

Allowed file formats are: .txt and .csv

Accepted formats are as below:

A TXT file that is separated with Comma's [ , ], Pipes [ | ], Tabs [ ], or Semi-Colons [ ; ] (without Carrage Returns and Line Feeds).

Email Validation Allowed File Formats

A TXT File with only (Carrage Returns and Line Feeds).

Email Validation Allowed File Formats

A TXT Files that looks like a CSV file will be converted to a CSV file when you upload it.

Email Validation Allowed File Formats

A CSV file is accepted if it's separated by Comma's [ , ], Pipes [ | ], Tabs [ ], or Semi-Colons [ ; ], or Carriage Retuns/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.

A normal CSV file will look similar to this:

Email Validation Allowed File Formats

A single column CSV File is also acceptable:

Email Validation Allowed File Formats

Downloading Results



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:

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.

Analyzing Your Results



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:

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.

All of them are described in detail in the Status Codes section.

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).

Email Validation Analyzing Your Results

Status Codes

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.

invalid - These are emails that we determined to be invalid, please delete them from your mailing list. The results are 99.999% accurate.

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 classifed 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 addreesses.

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.

unknown - These emails we weren't able to validate for one reason or another. Typical cases are "The 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.

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.

Sub Status Explanation

alias_address - (valid) These emails addresses act as forwarders/aliases and are not real inboxes, for example if you send an email to forward@example.com and then the email is forwarded to realinbox@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.

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.

does_not_accept_mail - (invalid) These domains only send mail and don't accept it.

exception_occurred - (unknown) These emails caused an exception when validating. If this happens repeately, 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.

failed_syntax_check - (Invalid) Emails that fail RFC syntax protocols

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.

global_suppression - (do_not_mail) These emails are found in many popular global supression lists (GSL), they consist of known ISP complainers, direct complainers, purchased addresses, and known litigators.

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.

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.

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.

mailbox_quota_exceeded - (invalid) These emails exceeded their space quota and are not accepting emails. 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.

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.

possible_typo - (invalid) These are emails of commonly misspelled popular domains. These emails are marked invalid.

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.

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.

unroutable_ip_address - (invalid) These emails domains point to an un-routable IP address, these are marked invalid.

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.

Other Fields

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"

Role Based

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 then 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.

Understanding The Executive Report

The Executive Overview report shows you a big picture view of your data.

Below is a example of the PDF that will be included in the zip file.

This Report is broken into a few sub-sections:

Email Validation Report

Deleting Your Data

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.

Email Validation Deleting Your Data


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.

Potential Issues



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: support@zerobounce.net 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.

Greylisting Technology

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.

The ZB Guarantee

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:

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:

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.

Reference: RFC2821

5.X Bounce Codes (Permanent Failures)

Code Description
5.0.0 Address does not exist
5.1.0 Other address status
5.1.1 Bad destination mailbox address
5.1.2 Bad destination system address
5.1.3 Bad destination mailbox address syntax
5.1.4 Destination mailbox address ambiguous
5.1.5 Destination mailbox address valid
5.1.6 Mailbox has moved
5.1.7 Bad sender’s mailbox address syntax
5.1.8 Bad sender’s system address
5.2.0 Other or undefined mailbox status
5.2.1 Mailbox disabled, not accepting messages
5.2.2 Mailbox full
5.2.3 Message length exceeds administrative limit.
5.2.4 Mailing list expansion problem
5.3.0 Other or undefined mail system status
5.3.1 Mail system full
5.3.2 System not accepting network messages
5.3.3 System not capable of selected features
5.3.4 Message too big for system
5.4.0 Other or undefined network or routing status
5.4.1 No answer from host - the address is invalid
5.4.2 Bad connection
5.4.3 Routing server failure
5.4.4 Unable to route
5.4.5 Network congestion
5.4.6 Routing loop detected
5.4.7 Delivery time expired
5.5.0 Other or undefined protocol status
5.5.1 Invalid command
5.5.2 Syntax error
5.5.3 Too many recipients
5.5.4 Invalid command arguments
5.5.5 Wrong protocol version
5.6.0 Other or undefined media error
5.6.1 Media not supported
5.6.2 Conversion required and prohibited
5.6.3 Conversion required but not supported
5.6.4 Conversion with loss performed
5.6.5 Conversion failed
5.7.0 Other or undefined security status
5.7.1 Delivery not authorized, message refused
5.7.2 Mailing list expansion prohibited
5.7.3 Security conversion required but not possible
5.7.4 Security features not supported
5.7.5 Cryptographic failure
5.7.6 Cryptographic algorithm not supported
5.7.7 Message integrity failure

4.X Bounce Codes (Temporary Failures)

Code Description
421 service not available, closing transmission channel
450 Requested mail action not taken: mailbox unavailable (e.g., mailbox busy)
451 Requested action aborted: error in processing
452 Requested action not taken: insufficient system storage

categ- Integrations

CloudFlare Integration

The CloudFlare ZeroBounce Subscription widget is a gathering and management tool which will help you achieve the highest quality subscriber lists, validating every subscriber in real-time. You can view and download your subscriber list directly from your ZeroBounce account.

It is fast & easy to install on any of your websites so let us guide you through the process.

Step 1. Navigate to CloudFlare and log in using your CloudFare Credentials.

Step 2. Click on "Apps" and then search for ZeroBounce Subscriptions and click on it.

CloudFare integration

Step 3. In order to customize and connect it with your ZeroBounce account you have to press on "Preview on your site".

CloudFare integration

Step 4. Scroll down on the left sidebar and click on "ZeroBounce Login" button.

CloudFare integration

Step 5. A new window will open where you will be prompted to login with your ZeroBounce account credentials.

Step 6. After you have succesfully logged in, press on "Install on all pages" button.

CloudFare integration

Step 7. Congratulations! You have now installed ZeroBounce Subscription widget on your website.

Step 8. You can view and download your subscription list from our platform clicking on "ZB Integrations" on the left hand menu. Then click on "CloudFlare".

CloudFare integration

MailChimp Integration

The MailChimp integration service at Zerobounce allows users to import email addresses from their lists in MailChimp, utilize our services to validate those emails, and then export the validation results back to MailChimp.

When importing a list from MailChimp to Zerobounce using the integration service, only the email address information in the MailChimp list will be imported. Also, the subscriber’s status in your MailChimp list needs to be “subscribed”. We do not import any subscribers with statuses of “unsubscribed”, “cleaned”, or “pending”.

Only the lists imported from MailChimp will be able to export the validation results back to MailChimp. When exporting the validation results, instead of creating a new list at MailChimp, we only tag each subscriber in the list using the validation results. Seven tag names based on the validation status are used. They are ZB_Valid, ZB_Invalid, ZB_Abuse, ZB_Spamtrap, ZB_DoNotMail, ZB_Unknow, and ZB_CatchAll. We recommend filtering your MailChimp list by tag name ZB_Valid only before sending out your campaign.

To use this integration service, you need to have a valid MailChimp account first. You will be prompted to enter your MailChimp Username and Password when you use the service. We integrated our platform with MailChimp using OAuth2 for authorization. OAuth2 is a secure process that allows our application to access MailChimp without passing user credentials. As your security is our priority at Zerobounce, we do not store your MailChimp Username and Password; the access token issued by MailChimp will be destroyed after you close the browser or log off from our website.

The following is an example on how to use the MailChimp integration service.

Step 1. Have a valid MailChimp account with your list ready.

CloudFare integration

Step 2. Log into Zerobounce, select ZB Integration from menu, and select Connect for MailChimp.

CloudFare integration

Step 3. Enter your MailChimp Username and Password and click Log In.

CloudFare integration

Step 4. After you are authenticated, you will be able to see your lists from MailChimp.

CloudFare integration

Step 5. Click the Verify link in the action column to import your list for validation. You will be prompted to confirm on a popup window. Click the OK button to proceed to the validation process or Cancel to exit.

CloudFare integration

Step 6. After clicking the OK button on the confirmation popup window, you will be redirected to the Download Your Results webpage. At this moment, the selected MailChimp list has been successfully imported to Zerobounce and is waiting for the validation engine to process.

CloudFare integration

Step 7. Just like Upload a File for validation, you will receive a confirmation email for the imported MailChimp list once the validation process is completed.

CloudFare integration

Step 8. On the Download Your File webpage, click the file name when it is completed. Besides the standard options for Downloading a File, an “Export to MailChimp” button will be available if the file is imported from MailChimp.

CloudFare integration

Step 9. Click the Export to MailChimp button. You will be prompted to confirm on a popup window. Click the OK button to create tags for your MailChimp list or Cancel to cancel the operation.

CloudFare integration

Step 10. Click the OK button on the confirmation popup window to create tags based on the validation results for your list. After the process is finished, another confirmation popup window will show you the created tags.

CloudFare integration

Step 11. Go to the MailChimp website and select the list you just verified. You should see the tags created from our system associated with each subscriber.

CloudFare integration

Step 12. On the list view at MailChimp, click the Filter by Tags dropdown menu and select a tag to filter your list.

CloudFare integration

Step 13. The following shows the returned list filtered by the “ZB_Valid” tag. You can then click on the Send Campaign dropdown menu and select the campaign type you want.

CloudFare integration

Constant Contact Integration

The Constant Contact integration service at Zerobounce allows users to import email addresses from their lists in Constant Contact and utilize our services to validate those emails.

When importing a list from Constant Contact to Zerobounce using the integration service, only the email address information in the Constant Contact list will be imported. Also, the contact’s status in your Constant Contact list needs to be “Active”. We do not import any contacts with status of “Unsubscribed”.

Currently due to the limitation of API, we do not export the validation results back to Constant Contact. This might change in the future when the required API functionalities are provided from Constant Contact.

To use this integration service, you need to have a valid Constant Contact account first. You will be prompted to enter your Constant Contact Username and Password when you use the service. We integrated our platform with Constant Contact using OAuth2 for authorization. OAuth2 is a secure process that allows our application to access Constant Contact without passing user credentials. As your security is our priority at Zerobounce, we do not store your Constant Contact Username and Password; the access token issued by Constant Contact will be destroyed after you close the browser or log off from our website.

The following is an example on how to use the Constant Contact integration service.

Step 1. Have a valid Constant Contact account with your list ready.

CloudFare integration

Step 2. Log into Zerobounce, select ZB Integration from menu, and select Connect for Constant Contact.

CloudFare integration

Step 3. Enter your Constant Contact Username and Password and click Log In.

CloudFare integration

Step 4. Click Allow to let ZeroBounce access your Constant Contact account.

CloudFare integration

Step 5. After you are authenticated, you will be able to see your lists from Constant Contact.

CloudFare integration

Step 6. Click the Verify link in the action column to import your list for validation. You will be prompted to confirm on a popup window. Click the OK button to proceed to the validation process or Cancel to exit.

CloudFare integration

Step 7. After clicking the OK button on the confirmation popup window, you will be redirected to the Download Your Results webpage. At this moment, the selected Constant Contact list has been successfully imported to Zerobounce and is waiting for the validation engine to process.

CloudFare integration

Step 8. Just like Upload a File for validation, you will receive a confirmation email for the imported Constant Contact list once the validation process is completed.

CloudFare integration

Step 9. To import your validation results back to Constant Contact, please follow the instructions.

categ- Your Account

Changing Your Email

Changing your email address also changes your login ID. Once your email is changed, you will receive an email at your current email address with a validation link that you must click for the change to take effect.

REMEMBER: Your new email will become your current login.

Let us guide you through the process!

Step 1: Click on "Account Options" on the left hand menu. Then click on the "Email Settings" icon button.

Email Validation Chane Email

Step 2: Choose the new email address you'd like to use when you login to your zerobounce.net account. After you type it in, you can click on "Change Email."

Email Validation Chane Email

Step 3: This message is going to appear on your screen:

Email Validation Chane Email

Step 4: Go to your email, where you will find this message from us. Click on "Approve Change."

Email Validation Chane Email

Step 5: Now you have to approve the change on your new email address, repeating step 4."

Once you approve the change on you new email, we will confirm it and safely change your email.

Email Validation Chane Email

Now you can login with your new email address.

Email Validation Chane Email

Changing Your Password

Changing your ZeroBounce password to a secure password that only you know, and that no one else can guess, protects your private information from unauthorized access. A password with 8 or more characters, including numbers, both uppercase and lowercase letters, and special symbols is recommended, but not required. A password of 4 characters or more is required.

Let's guide you through the process! It's really quick and simple. In your account, Click on "Account Options" on the left hand menu. Then click on the "Password Settings" icon button.

Email Validation Change Password

Then this will appear on your screen:

Email Validation Change Password

Just type in your old password, and then type in your new one twice. Click on "Change password". Once you do, you will see this:

Email Validation Change Password

That's it! You're all set to use your great email validator!

Two-Factor Authentication

We implemented two-factor authentication to serve as an extra layer of security. It is an authentication mechanism that double checks if your identity is legitimate.

Traditionally, when you want to sign into your account, you are prompted to authenticate with a username and a password. Two-factor authentication will work as an extra step in the authentication process that helps us confirm your identity and ensure the maximum security level for your account.

If you wish your account to be more secure, we strongly encourage you to activate the Two-Factor Authentication feature as soon as possible.

Enable Two-Factor Authentication

Setting up Two-Factor Authentication is pretty straightforward.

Step 1: Click on "Account Options" on the left hand menu, go to Two-Factor Authentication option and then switch the toggle to ON.

ZeroBounce two-factor authentication

Step 2: In order to activate Two-Factor Authentication, you need to install Authy (IOS/Android) or Google Authenticator (IOS/Android) on your phone. After you install one of these and configure it, you are ready to move on to the next step.

Step 3: Great! Now use Authy or Google Authenticator to scan the QR Code or just manually type the provided code in the field as shown below.

REMEMBER: For security purposes, the code is refreshed every 30 seconds.

ZeroBounce two-factor authentication

Step 4: Congratulations! You now have an extra layer of security activated on your account.

Email Validation Chane Email

Step 5: When you login next time, after you enter your username and password, you will be prompted to provide the six-digit code from your authenticator app in order to authenticate successfully.

Email Validation Chane Email

Reset your phone for Two-Factor Authentication

If you no longer have access to the devices where you installed the authenticator app, don't worry, your account is still secure!

Reset instructions for Authy: In order to reset your phone at Authy, just follow these instructions .

Reset instructions for Google Authenticator

When you first setup Two-Factor Authentication, you received a backup code. You will need that code in order to reset your phone for Google Authenticator.

Email Validation Chane Email

Congratulations! You now have succesfully resync your new phone with ZeroBounce Two-Factor authentication.

Disable Two-Factor Authentication

In order to disable Two-Factor Authentication, click on "Account Options" on the left hand menu, go to Two-Factor Authentication option and then switch the toggle to OFF.

Email Validation Chane Email

Changing Your Time Zone

Changing your ZeroBounce time zone settings it is really helpful if you move to a country with a different time zone.

It's really quick and simple to do it. In your account, Click on "Account Options" on the left hand menu. Then click on the "Time Zone Settings" icon button.

Email Validation Change Time Zone

Then this will appear on your screen:

Email Validation Change Password

Just select your desired time zone and then click on "Change Time Zone" button.

That's it! You're all set to use your great email validator on the new time zone!

Notification Settings

ZeroBounce has the ability to send out email notifications to keep you up to date about different events and useful information. We understand that some notifications are important to some customers, but might not be important to you.

In your account, Click on "Account Options" on the left hand menu. Then click on the "Notification preferences settings button" icon button.

Email Validation Notification

Please use the buttons below to set your preferences

Email Validation Notification

Invoices

We store your complete invoice history for your convenience and accounting purposes.

Once you are logged in, you can find all of your invoices located at this link: https://www.zerobounce.net/members/customerinvoices/

You will see an image similar to the one below with your information.

Email Validation Invoice

You can download a summary of invoices by clicking the CSV button toward the upper right of the grid and you can also add your VAT/EIN and Business Name to your invoices, if your account department requires it.

If you click the "View Details" link in orange in the above image that will take you to a more detail screen that will allow you to print out individual invoices as seen below.

Email Validation Invoice

Simple click the "Print Invoice" button, to print out the detailed invoice for your records.

Deleting Your Account

We don't want to see you leave, but if you decided to delete your account, you should know that this will:

Delete all your Email Validations Remove your access to the Members Area If you want to create another account on zerobounce.net in the future, you will be able to do so with the same email address. We won't hold a grudge.

In order to delete your account, log in then click on "Account Options" on the left hand menu. Then click on the "Delete Account settings" icon button in order to start the deletion process.

Email Validation Delete Account

After it will take you to the webpage below.

Email Validation Delete Account

Simply, follow the on-screen instructions and type "DELETE" in all caps and click the Delete Account button.

categ- API Quickstart

Version 2 (v2)

Postman Collection

To test version 2 of the API in Postman, save the Postman Collection contents as a .json file or you can get the file from our GitHub repository.

In Postman, on the top menu click on File, then choose Import. Then choose the JSON file you saved or downloaded from GitHub to import it.

Postman Collection JSON file:

{
    "info": {
        "_postman_id": "948780e4-bf36-4c9c-bb29-2c32c9053091",
        "name": "ZeroBounce API v2",
        "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json"
    },
    "item": [
        {
            "name": "Validate Emails",
            "request": {
                "method": "GET",
                "header": [],
                "body": {
                    "mode": "raw",
                    "raw": ""
                },
                "url": {
                    "raw": "https://api.zerobounce.net/v2/validate?api_key=replacewithyours&email=replacewithyours&ip_address=",
                    "protocol": "https",
                    "host": [
                        "api",
                        "zerobounce",
                        "net"
                    ],
                    "path": [
                        "v2",
                        "validate"
                    ],
                    "query": [
                        {
                            "key": "api_key",
                            "value": "replacewithyours",
                            "description": "Your API Key, found in your account."
                        },
                        {
                            "key": "email",
                            "value": "replacewithyours",
                            "description": "The email address you want to validate"
                        },
                        {
                            "key": "ip_address",
                            "value": "",
                            "description": "The IP Address the email signed up from (Can be blank, but parameter required)"
                        }
                    ]
                },
                "description": "API for single email address validation."
            },
            "response": []
        },
        {
            "name": "Get Credit Balance",
            "request": {
                "method": "GET",
                "header": [],
                "body": {
                    "mode": "raw",
                    "raw": ""
                },
                "url": {
                    "raw": "https://api.zerobounce.net/v2/getcredits?api_key=replacewithyours",
                    "protocol": "https",
                    "host": [
                        "api",
                        "zerobounce",
                        "net"
                    ],
                    "path": [
                        "v2",
                        "getcredits"
                    ],
                    "query": [
                        {
                            "key": "api_key",
                            "value": "replacewithyours",
                            "description": "Your API Key, found in your account."
                        }
                    ]
                },
                "description": "This API will tell you how many credits you have left on your account."
            },
            "response": []
        },
        {
            "name": "Send File",
            "request": {
                "method": "POST",
                "header": [],
                "body": {
                    "mode": "formdata",
                    "formdata": [
                        {
                            "key": "file",
                            "description": "csv or txt file",
                            "type": "file",
                            "src": ""
                        },
                        {
                            "key": "api_key",
                            "value": "replacewithyours",
                            "description": "Your API Key, found in your account. (Required)",
                            "type": "text"
                        },
                        {
                            "key": "return_url",
                            "value": "",
                            "description": "The URL will be used to call back when the validation is completed. (Optional)",
                            "type": "text",
                            "disabled": true
                        },
                        {
                            "key": "email_address_column",
                            "value": "replacewithyours",
                            "description": "The column index of the email address in your file. Index starts from 1. (Required, number)",
                            "type": "text"
                        },
                        {
                            "key": "first_name_column",
                            "value": "",
                            "description": "The column index of the first name column. (Optional, number)",
                            "type": "text",
                            "disabled": true
                        },
                        {
                            "key": "last_name_column",
                            "value": "",
                            "description": "The column index of the last name column. (Optional, number)",
                            "type": "text",
                            "disabled": true
                        },
                        {
                            "key": "gender_column",
                            "value": "",
                            "description": "The column index of the gender column. (Optional, number)",
                            "type": "text",
                            "disabled": true
                        },
                        {
                            "key": "ip_address_column",
                            "value": "",
                            "description": "The IP Address the email signed up from. (Optional, number)",
                            "type": "text",
                            "disabled": true
                        },
                        {
                            "key": "has_header_row",
                            "value": "",
                            "description": "If the first row from the submitted file is a header row. (Optional, true/false)",
                            "type": "text",
                            "disabled": true
                        }
                    ]
                },
                "url": "https://bulkapi.zerobounce.net/v2/sendfile",
                "description": "This API allows user to send a file for bulk email validation."
            },
            "response": []
        },
        {
            "name": "File Status",
            "request": {
                "method": "GET",
                "header": [],
                "body": {
                    "mode": "raw",
                    "raw": ""
                },
                "url": {
                    "raw": "https://bulkapi.zerobounce.net/v2/filestatus?api_key=replacewithyours&file_id=replacewithyours",
                    "protocol": "https",
                    "host": [
                        "bulkapi",
                        "zerobounce",
                        "net"
                    ],
                    "path": [
                        "v2",
                        "filestatus"
                    ],
                    "query": [
                        {
                            "key": "api_key",
                            "value": "replacewithyours",
                            "description": "Your API Key, found in your account."
                        },
                        {
                            "key": "file_id",
                            "value": "replacewithyours",
                            "description": "The returned file ID when calling sendfile API."
                        }
                    ]
                },
                "description": "The API returns the file processing status for the file been submitted using sendfile API."
            },
            "response": []
        },
        {
            "name": "Get File",
            "request": {
                "method": "GET",
                "header": [],
                "body": {
                    "mode": "raw",
                    "raw": ""
                },
                "url": {
                    "raw": "https://bulkapi.zerobounce.net/v2/getfile?api_key=replacewithyours&file_id=replacewithyours",
                    "protocol": "https",
                    "host": [
                        "bulkapi",
                        "zerobounce",
                        "net"
                    ],
                    "path": [
                        "v2",
                        "getfile"
                    ],
                    "query": [
                        {
                            "key": "api_key",
                            "value": "replacewithyours",
                            "description": "Your API Key, found in your account."
                        },
                        {
                            "key": "file_id",
                            "value": "replacewithyours",
                            "description": "The returned file ID when calling sendfile API."
                        }
                    ]
                },
                "description": "The API allows users to get the validation results file for the file been submitted using sendfile API."
            },
            "response": []
        }
    ]
}

Validate Emails (v2)

Below you will find the instructions on how to use our API, it's very easy to use and requires SSL. The API requires that you have an active credit balance and will never consume a credit for any unknown result.

To test out or API without using credits - Please use the emails provided in our Sandbox Mode (v2)

The response time for our API is between one second and 70 seconds. Since API's are meant to be fast by nature, we limit the amount of time we spend validating an email address. So if we encounter a slow mail server or a mail server with a greylisting algorithm you will get an unknown result. You can always re-validate those conditions, uploading a file to the bulk email validator.

On average 96-98% of all domains will return in 1 to 5 seconds, there are a handful of domains that run off Postfix/Dovecot that have a 20 second connection time for real-time validations and a very small fractional percentage of other domains that are very slow to respond to SMTP inquires. All the major ISP will return in 1 to 3 seconds, which is usually the majority of most email distribution.

  - GET /v2/validate

To verify an email address, use the following code:

Try
    Dim api_key as string = "Your Secret Key"
    Dim emailToValidate as string = "example@example.com"
    Dim ip_address = "" 'Can be blank, but parameter required on the API Call
    Dim responseString as string = ""

  Dim apiURL as string = "https://api.zerobounce.net/v2/validate?api_key=" & api_key & "&email=" &  HttpUtility.UrlEncode(emailToValidate) & "&ip_address=" & System.Net.WebUtility.UrlEncode(ip_address)

     Dim request As HttpWebRequest = DirectCast(WebRequest.Create(apiURL), HttpWebRequest)
    request.Timeout = 150000
    request.Method = "GET"

    Using response As WebResponse = request.GetResponse()
        response.GetResponseStream().ReadTimeout = 20000
        Using ostream As New StreamReader(response.GetResponseStream())
            responseString = ostream.ReadToEnd()
        End Using
    End Using
Catch ex as exception
'Catch Exception - All errors will be shown here - if there are issues with the API
End Try
try {
string api_key = "Your Secret Key";
string emailToValidate = "example@example.com";
string ip_address = "" //Can be blank, but parameter required on the API Call

string responseString = "";

string apiURL = "https://api.zerobounce.net/v2/validate?api_key=" + api_key + "&email=" +  HttpUtility.UrlEncode(emailToValidate) + "&ip_address=" + HttpUtility.UrlEncode(ip_address);


    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
    request.Timeout = 150000;
    request.Method = "GET";

    using (WebResponse response = request.GetResponse()) {
        response.GetResponseStream().ReadTimeout = 20000;
        using (StreamReader ostream = new StreamReader(response.GetResponseStream())) {
            responseString = ostream.ReadToEnd();
        }
    }
    } catch (exception ex) {
//Catch Exception - All errors will be shown here - if there are issues with the API
}
<?php
//set the api key and email to be validated
$api_key = 'Your Secret Key';
$emailToValidate = 'example@example.com';
$IPToValidate = '99.123.12.122';
// use curl to make the request
$url = 'https://api.zerobounce.net/v2/validate?api_key='.$api_key.'&email='.urlencode($emailToValidate).'&ip_address='.urlencode($IPToValidate);

$ch = curl_init($url);
//PHP 5.5.19 and higher has support for TLS 1.2
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
curl_setopt($ch, CURLOPT_TIMEOUT, 150); 
$response = curl_exec($ch);
curl_close($ch);

//decode the json response
$json = json_decode($response, true);
?>
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MyClass {

    public static void main(String[] args){

        String key = "Your Secret Key";
        String email = "example@example.com";
        String ip = "99.123.12.122"; //ip address can be blank
        String targetURL = "https://api.zerobounce.net/v2/validate?api_key="+key+"&email="+email+"&ip_address="+ip;


        HttpURLConnection connection = null;
        final String USER_AGENT = "Mozilla/5.0";

        try {
            URL url = new URL(targetURL);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.addRequestProperty("User-Agent", USER_AGENT);
            connection.setUseCaches(false);
            connection.setDoOutput(true);

            BufferedReader in = new BufferedReader(
                    new InputStreamReader(connection.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();

            //print result
            System.out.println(response.toString());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
        }

    }
}
url = "https://api.zerobounce.net/v2/validate"
api_key = "Your Secret Key"
email = "example@example.com"
ip_address = "99.123.12.122" #ip_address can be blank

params = {"email": email, "api_key": api_key, "ip_address":ip_address}

response = requests.get(url, params=params)

# Print the returned json
print json.loads(response.content)
let key = "Your Secret Key"
let email = "example@example.com"
let ip = "99.123.12.122" //ip address can be blank
let url = URL(string: String(format: "https://api.zerobounce.net/v2/validate?api_key=%@&email=%@&ip_address=%@", key, email, ip))
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
    if error != nil {
        NSLog("Error \(String(describing: error))")
    } else {
        do {
            let parsedData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]
            for (key, value) in parsedData {
                NSLog("\(key) = \(value) ")
            }
        } catch {
            print("Error deserializing JSON: \(error)")
        }
    }
}
task.resume()
NSString *key = @"Your Secret Key";
NSString *email = @"example@example.com";
NSString *ip = @"99.123.12.122"; //ip address can be blank

NSString *urlString = [NSString stringWithFormat:@"https://api.zerobounce.net/v2/validate?api_key=%@&email=%@&ip_address=%@", key, email, ip];

__block NSURL *url = [NSURL URLWithString:urlString];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSData *response = [NSData dataWithContentsOfURL:url];
    NSDictionary *arrResponse = nil;
    if(response!=nil)
    {
        arrResponse = [NSJSONSerialization JSONObjectWithData: response options:kNilOptions error:nil];
    }
    dispatch_async(dispatch_get_main_queue(), ^(void) {
        for(NSString *key in [arrResponse allKeys]) {
            NSLog(@"%@: %@",key,[arrResponse objectForKey:key]);
        }
//            callback(nil, arr);
    });
});
//Add to build.gradle (App) in the "android" bracket:
useLibrary 'org.apache.http.legacy'

Example:

android {
    compileSdkVersion 25
    useLibrary 'org.apache.http.legacy'
}

//-----------------------------------
//Filename: JsonParser.java


import android.os.AsyncTask;
import org.json.JSONObject;
import java.util.Iterator;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        new AsyncTaskParseJson().execute();
    }
}

public class AsyncTaskParseJson extends AsyncTask<String, String, String> {

    String key = "Your Secret Key";
    String email = "example@example.com";
    String ip = "99.123.12.122"; //ip address can be blank
    String url = "https://api.zerobounce.net/v2/validate?api_key="+key+"&email="+email+"&ip_address="+ip;

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected String doInBackground(String... arg0) {

        JsonParser jParser = new JsonParser();
        JSONObject json = jParser.getJSONFromUrl(url);
        Iterator keys = json.keys();
        while( keys.hasNext() ) {
            String key = (String)keys.next();
            try {
                System.out.println("ZeroBounce: "+key+" = " +json.get(key).toString());
            }
            catch (Exception e){}
        }

        return null;
    }
    @Override
    protected void onPostExecute(String strFromDoInBg) {}
}

//----------------------------------
//Filename: MainActivity.java

package com.zerobounce.zbapiandroid;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JsonParser {

    final String TAG = "JsonParser.java";

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    public JSONObject getJSONFromUrl(String url) {

        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

        } catch (Exception e) {
            Log.e(TAG, "Error converting result " + e.toString());
        }

        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e(TAG, "Error parsing data " + e.toString());
        }

        return jObj;
    }
}

API URL: https://api.zerobounce.net/v2/validate

URL Parameters

Parameter Description
email The email address you want to validate
ip_address The IP Address the email signed up from (Can be blank, but parameter required)
api_key Your API Key, found in your account.

If you want to call the API from your browser to test it, all you need to do is to replace the API KEY with your key:

https://api.zerobounce.net/v2/validate?api_key=replacewithyours&email=valid@example.com&ip_address=156.124.12.145

or

https://api.zerobounce.net/v2/validate?api_key=replacewithyours&email=valid@example.com&ip_address=

The API will return these results in a JSON format using the "Validate" method.

Properties Description
address The email address you are validating.
status [valid, invalid, catch-all, unknown, spamtrap, abuse, do_not_mail]
sub-status [antispam_system, greylisted, mail_server_temporary_error, forcible_disconnect, mail_server_did_not_respond, timeout_exceeded, failed_smtp_connection, mailbox_quota_exceeded, exception_occurred, possible_traps, role_based, global_suppression, mailbox_not_found, no_dns_entries, failed_syntax_check, possible_typo, unroutable_ip_address, leading_period_removed, does_not_accept_mail, alias_address, role_based_catch_all, disposable, toxic]
account The portion of the email address before the "@" symbol.
domain The portion of the email address after the "@" symbol.
did_you_mean Suggestive Fix for an email typo
domain_age_days Age of the email domain in days or [null].
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].
firstname The first name of the owner of the email when available or [null].
lastname The last name of the owner of the email when available or [null].
gender The gender of the owner of the email when available or [null].
city The city of the IP passed in.
region The region/state of the IP passed in.
zipcode The zipcode of the IP passed in.
country The country of the IP passed in.
Processed_at The UTC time the email was validated.

  - Successful Response

JSON Successful response sample from the API using the "validate" method:

{
 "address":"flowerjill@aol.com",
 "status":"valid",
 "sub_status":"",
 "free_email":true,
 "did_you_mean":null,
 "account":"flowerjill",
 "domain":"aol.com",
 "domain_age_days": "8426",
 "smtp_provider":"yahoo",
 "mx_record":"mx-aol.mail.gm0.yahoodns.net",
 "mx_found": true,
 "firstname":"Jill",
 "lastname":"Stein",
 "gender":"female",
 "country":"United States",
 "region":"Florida",
 "city":"West Palm Beach",
 "zipcode":"33401",
 "processed_at":"2017-04-01 02:48:02.592"
}

  - Failure Response

JSON Failure Response

{"error":"Invalid API Key or your account ran out of credits"}

Get Credit Balance (v2)

This API will tell you how many credits you have left on your account. It's simple, fast and easy to use.

Here are a few scenarios that businesses will use this API for.

Below, you will find the instructions on how to use our API. It's very easy to use and it requires SSL.

  - GET /v2/getcredits

Get Credit Balance Samples

Try
    Dim apiKey = "Your Secret Key"
    Dim apiURL = "https://api.zerobounce.net/v2/getcredits?api_key=" & apiKey

    Dim request As HttpWebRequest = DirectCast(WebRequest.Create(apiURL), HttpWebRequest)
    request.Timeout = 150000
    request.Method = "GET"

    Using response As WebResponse = request.GetResponse()
        response.GetResponseStream().ReadTimeout = 20000
        Using ostream As New StreamReader(response.GetResponseStream())
            responseString = ostream.ReadToEnd()
        End Using
    End Using
Catch ex as exception
'Catch Exception - All errors will be shown here - if there are issues with the API
End Try
try {
  string apiKey = "Your Secret Key";
  string apiURL = "https://api.zerobounce.net/v2/getcredits?api_key=" + apiKey; 

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
  request.Timeout = 150000;
  request.Method = "GET";

  using (WebResponse response = request.GetResponse()) {
     response.GetResponseStream().ReadTimeout = 20000;
     using (StreamReader ostream = new StreamReader(response.GetResponseStream())) {
     responseString = ostream.ReadToEnd();
     }
  }
  } catch (exception ex) {
  //Catch Exception - All errors will be shown here - if there are issues with the API
  }
<?php
// set the api key and email to be validated
$apiKey = 'Your Secret Key';
// use curl to make the request
$url = 'https://api.zerobounce.net/v2/getcredits?api_key='.$apiKey;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
curl_setopt($ch, CURLOPT_TIMEOUT, 150); 
$response = curl_exec($ch);
curl_close($ch);

//decode the json response
$json = json_decode($response, true);
?>
import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;

 public class MyClass {

     public static void main(String[] args){

         String key = "Your Secret Key";
         String targetURL = "https://api.zerobounce.net/v2/getcredits?api_key="+key;

         HttpURLConnection connection = null;
         final String USER_AGENT = "Mozilla/5.0";

         try {
             URL url = new URL(targetURL);
             connection = (HttpURLConnection) url.openConnection();
             connection.setRequestMethod("GET");
             connection.addRequestProperty("User-Agent", USER_AGENT);


             connection.setUseCaches(false);
             connection.setDoOutput(true);

             BufferedReader in = new BufferedReader(
                     new InputStreamReader(connection.getInputStream()));
             String inputLine;
             StringBuffer response = new StringBuffer();

             while ((inputLine = in.readLine()) != null) {
                 response.append(inputLine);
             }
             in.close();

             //print result
             System.out.println(response.toString());

         } catch (Exception e) {
             e.printStackTrace();
         } finally {
             if (connection != null) {
                 connection.disconnect();
             }
         }

     }
 }
import requests
import json

target_url = "https://api.zerobounce.net/v2/getcredits?api_key="
secret_key = "Your Secret Key"

api_response = requests.get("%s%s" % (target_url, secret_key))
data = json.loads(api_response.content)

# prints the number of credits
print data["Credits"]
let key = "Your Secret Key"
let url = URL(string: String(format: "https://api.zerobounce.net/v2/getcredits?api_key=%@", key))
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
    if error != nil {
        NSLog("Error \(String(describing: error))")
    } else {
        do {
            let parsedData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]
            for (key, value) in parsedData {
                NSLog("\(key) = \(value) ")
            }
        } catch {
            print("Error deserializing JSON: \(error)")
        }
    }
}
task.resume()
NSString *key = @"Your Secret Key";
NSString *urlString = [NSString stringWithFormat:@"https://api.zerobounce.net/v2/getcredits?api_key=%@", key];

__block NSURL *url = [NSURL URLWithString:urlString];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSData *response = [NSData dataWithContentsOfURL:url];
    NSDictionary *arrResponse = nil;
    if(response!=nil)
    {
        arrResponse = [NSJSONSerialization JSONObjectWithData: response options:kNilOptions error:nil];
    }
    dispatch_async(dispatch_get_main_queue(), ^(void) {
        for(NSString *key in [arrResponse allKeys]) {
            NSLog(@"%@: %@",key,[arrResponse objectForKey:key]);
        }
//            callback(nil, arr);
    });
});
//Add to build.gradle (App) in the "android" bracket:
useLibrary 'org.apache.http.legacy'

Example:

android {
    compileSdkVersion 25
    useLibrary 'org.apache.http.legacy'
}
//------------------------------------------
//Filename: JsonParser.java

import android.os.AsyncTask;
import org.json.JSONObject;
import java.util.Iterator;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        new AsyncTaskParseJson().execute();
    }
}

public class AsyncTaskParseJson extends AsyncTask<String, String, String> {

    String key = "Your Secret Key";
    String url = "https://api.zerobounce.net/v2/getcredits?api_key="+key;

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected String doInBackground(String... arg0) {

        JsonParser jParser = new JsonParser();
        JSONObject json = jParser.getJSONFromUrl(url);
        Iterator keys = json.keys();
        while( keys.hasNext() ) {
            String key = (String)keys.next();
            try {
                System.out.println("ZeroBounce: "+key+" = " +json.get(key).toString());
            }
            catch (Exception e){}
        }

        return null;
    }
    @Override
    protected void onPostExecute(String strFromDoInBg) {}
}

//---------------------------------------------------
//Filename: MainActivity.java

package com.zerobounce.zbapiandroid;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JsonParser {

    final String TAG = "JsonParser.java";

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    public JSONObject getJSONFromUrl(String url) {

        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

        } catch (Exception e) {
            Log.e(TAG, "Error converting result " + e.toString());
        }

        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e(TAG, "Error parsing data " + e.toString());
        }

        return jObj;
    }
}

API URL: https://api.zerobounce.net/v2/getcredits

URL Parameters

Parameter Description
api_key Your API Key, found in your account.

If you want to call the API from your browser to test it, all you have to do is to replace the API KEY with your key:

https://api.zerobounce.net/v2/getcredits?api_key=replacewithyours

This API will tell you how many credits you have left on your account.

The API will return these results in a JSON format using the "getcredits" method. credits - The amount of credits you have left in your account for email validations. If a -1 is returned, that means your API Key is invalid.

  - Successful Response

JSON Succesful Response

{"credits":2375323}

  - Failure response

JSON Failure Response

{"credits":-1}

Send File (v2)

The sendfile API allows user to send a file for bulk email validation. The content type needs to be multipart/form-data. Please refer to the C# example for details.

  - POST /v2/sendfile

Send File Sample

' Send File Sample in VB.net

Public Class SendFileStatus
    Public Property success As Boolean
    Public Property message As String
    Public Property file_name As String
    Public Property file_id As String
End Class

Private Shared Sub SendFileAPITest()
    Dim fileFullPath As String = $"full file path of a csv or txt file"  ' required
    Dim apiKey As String = "replace with your api key here"              ' required
    Dim emailAddressColumn As Integer = 2  ' required
    Dim firstNameColumn As Integer? = 5    ' optional
    Dim lastNameColumn As Integer? = 6     ' optional
    Dim genderColumn As Integer? = Nothing ' optional
    Dim ipAddressColumn As Integer? = 11   ' optional
    Dim hasHeaderRow As Boolean? = True    ' optional
    Dim returnUrl As String = Nothing      ' optional

    Try
        Dim sendFileStatus As SendFileStatus = SendFile(fileFullPath, apiKey, emailAddressColumn, firstNameColumn, lastNameColumn, genderColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result
        Console.Write(JsonConvert.SerializeObject(sendFileStatus, Formatting.Indented))
    Catch ex As Exception
        Console.Write(ex.InnerException.Message)
    End Try

    Console.ReadKey()
End Sub

Public Shared Async Function SendFile(ByVal fileFullPath As String, 
                                      ByVal apiKey As String, 
                                      ByVal emailAddressColumn As Integer, 
                                      ByVal Optional firstNameColumn As Integer? = Nothing, 
                                      ByVal Optional lastNameColumn As Integer? = Nothing, 
                                      ByVal Optional genderColumn As Integer? = Nothing, 
                                      ByVal Optional ipAddressColumn As Integer? = Nothing, 
                                      ByVal Optional hasHeaderRow As Boolean? = Nothing, 
                                      ByVal Optional returnUrl As String = Nothing) As Task(Of SendFileStatus)

    If String.IsNullOrEmpty(fileFullPath) Then Throw New Exception("Error: fileFullPath is required")
    If String.IsNullOrEmpty(apiKey) Then Throw New Exception("Error: apiKey is required")
    Dim fi = New FileInfo(fileFullPath)
    Dim fileContents = File.ReadAllBytes(fi.FullName)
    Dim fileName = fi.Name
    Dim uri As Uri = New Uri("https://bulkapi.zerobounce.net/v2/sendfile")

    Using client = New HttpClient()

        Using request = New HttpRequestMessage(HttpMethod.Post, uri)
            Dim multiPartContent As MultipartFormDataContent = New MultipartFormDataContent()
            Dim byteArrayContent As ByteArrayContent = New ByteArrayContent(fileContents)
            byteArrayContent.Headers.Add("Content-Type", "text/csv")
            multiPartContent.Add(byteArrayContent, "file", fileName)
            multiPartContent.Add(New StringContent(apiKey), "api_key")
            multiPartContent.Add(New StringContent(emailAddressColumn.ToString()), "email_address_column")
            If firstNameColumn IsNot Nothing Then multiPartContent.Add(New StringContent(firstNameColumn.ToString()), "first_name_column")
            If lastNameColumn IsNot Nothing Then multiPartContent.Add(New StringContent(lastNameColumn.ToString()), "last_name_column")
            If genderColumn IsNot Nothing Then multiPartContent.Add(New StringContent(genderColumn.ToString()), "gender_column")
            If ipAddressColumn IsNot Nothing Then multiPartContent.Add(New StringContent(ipAddressColumn.ToString()), "ip_address_column")
            If hasHeaderRow IsNot Nothing Then multiPartContent.Add(New StringContent(If((hasHeaderRow = True), "true", "false")), "has_header_row")
            If returnUrl IsNot Nothing Then multiPartContent.Add(New StringContent(returnUrl.ToString()), "return_url")
            request.Content = multiPartContent

            Using response = Await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).ConfigureAwait(False)
                Dim content = Await response.Content.ReadAsStringAsync()

                If response.IsSuccessStatusCode = False Then
                    Dim error As String = $"StatusCode = {CInt(response.StatusCode)}, Content = {content}"
                    Throw New Exception(error)
                End If

                Return JsonConvert.DeserializeObject(Of SendFileStatus)(content)
            End Using
        End Using
    End Using
End Function

// Send File Sample in C#

public class SendFileStatus
{
    public bool success { get; set; }
    public string message { get; set; }
    public string file_name { get; set; }
    public string file_id { get; set; }
}

private static void SendFileAPITest()
{
    string fileFullPath = $"full file path of a csv or txt file";  //required
    string apiKey = "replace with your api key here";  //required       
    int emailAddressColumn = 2;  //required
    int? firstNameColumn = 5;  //optional
    int? lastNameColumn = 6;  //optional
    int? genderColumn = null;  //optional
    int? ipAddressColumn = 11;  //optional
    bool? hasHeaderRow = true;  //optional
    string returnUrl = null;  //optional

    try
    {
        SendFileStatus sendFileStatus = SendFile(fileFullPath, apiKey, emailAddressColumn, firstNameColumn, lastNameColumn, genderColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result;
        Console.Write(JsonConvert.SerializeObject(sendFileStatus, Formatting.Indented));
    }
    catch (Exception ex)
    {
        Console.Write(ex.InnerException.Message);
    }

    Console.ReadKey();

}

public static async Task<SendFileStatus> SendFile(string fileFullPath, string apiKey, int emailAddressColumn, 
                                            int? firstNameColumn = null, int? lastNameColumn = null, int? genderColumn = null, 
                                            int? ipAddressColumn = null, bool? hasHeaderRow = null, string returnUrl = null)
{
    if (string.IsNullOrEmpty(fileFullPath))
        throw new Exception("Error: fileFullPath is required");
    if (string.IsNullOrEmpty(apiKey))
        throw new Exception("Error: apiKey is required");

    var fi = new FileInfo(fileFullPath);
    var fileContents = File.ReadAllBytes(fi.FullName);
    var fileName = fi.Name;

    Uri uri = new Uri(@"https://bulkapi.zerobounce.net/v2/sendfile");

    using (var client = new HttpClient())
    using (var request = new HttpRequestMessage(HttpMethod.Post, uri))
    {
        MultipartFormDataContent multiPartContent = new MultipartFormDataContent();
        ByteArrayContent byteArrayContent = new ByteArrayContent(fileContents);
        byteArrayContent.Headers.Add("Content-Type", "text/csv");
        multiPartContent.Add(byteArrayContent, "file", fileName);
        multiPartContent.Add(new StringContent(apiKey), "api_key");
        multiPartContent.Add(new StringContent(emailAddressColumn.ToString()), "email_address_column");
        if (firstNameColumn != null)
            multiPartContent.Add(new StringContent(firstNameColumn.ToString()), "first_name_column");
        if (lastNameColumn != null)
            multiPartContent.Add(new StringContent(lastNameColumn.ToString()), "last_name_column");
        if (genderColumn != null)
            multiPartContent.Add(new StringContent(genderColumn.ToString()), "gender_column");
        if (ipAddressColumn != null)
            multiPartContent.Add(new StringContent(ipAddressColumn.ToString()), "ip_address_column");
        if (hasHeaderRow != null)
            multiPartContent.Add(new StringContent((hasHeaderRow == true) ? "true" : "false"), "has_header_row");
        if (returnUrl != null)
            multiPartContent.Add(new StringContent(returnUrl.ToString()), "return_url");

        request.Content = multiPartContent;


        using (var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).ConfigureAwait(false))
        {
            var content = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode == false)
            {
                var error = $"StatusCode = {(int)response.StatusCode}, Content = {content}";
                throw new Exception(error);
            }

            return JsonConvert.DeserializeObject<SendFileStatus>(content);
        }
    }
}
    <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://bulkapi.zerobounce.net/v2/sendfile",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"api_key\"\r\n\r\nreplacewithyours\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"email_address_column\"\r\n\r\nreplacewithyours\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "Postman-Token: fae6714d-dc09-4e08-b50d-c97030603b61",
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
RequestBody body = RequestBody.create(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"api_key\"\r\n\r\nreplacewithyours\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"email_address_column\"\r\n\r\nreplacewithyours\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--");
Request request = new Request.Builder()
  .url("https://bulkapi.zerobounce.net/v2/sendfile")
  .post(body)
  .addHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW")
  .addHeader("cache-control", "no-cache")
  .addHeader("Postman-Token", "25d608ba-6cb5-4c8c-88d7-d47276c67d8e")
  .build();

Response response = client.newCall(request).execute();
import http.client

conn = http.client.HTTPConnection("bulkapi,zerobounce,net")

payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"api_key\"\r\n\r\nreplacewithyours\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"email_address_column\"\r\n\r\nreplacewithyours\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"

headers = {
    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    'cache-control': "no-cache",
    'Postman-Token': "bc455eda-9884-417e-b16f-3a5fef3f7540"
    }

conn.request("POST", "v2,sendfile", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
import Foundation

let headers = [
  "content-type": "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
  "cache-control": "no-cache",
  "Postman-Token": "2f68fcc3-d9b6-458b-b613-56f6a03e6617"
]
let parameters = [
  [
    "name": "api_key",
    "value": "replacewithyours"
  ],
  [
    "name": "email_address_column",
    "value": "replacewithyours"
  ]
]

let boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW"

var body = ""
var error: NSError? = nil
for param in parameters {
  let paramName = param["name"]!
  body += "--\(boundary)\r\n"
  body += "Content-Disposition:form-data; name=\"\(paramName)\""
  if let filename = param["fileName"] {
    let contentType = param["content-type"]!
    let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)
    if (error != nil) {
      print(error)
    }
    body += "; filename=\"\(filename)\"\r\n"
    body += "Content-Type: \(contentType)\r\n\r\n"
    body += fileContent
  } else if let paramValue = param["value"] {
    body += "\r\n\r\n\(paramValue)"
  }
}

let request = NSMutableURLRequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/sendfile")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
// Please select VB or C# language for Send File Sample#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"content-type": @"multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
                           @"cache-control": @"no-cache",
                           @"Postman-Token": @"92c5b06e-624f-44e5-bd86-f537bc6cef67" };
NSArray *parameters = @[ @{ @"name": @"api_key", @"value": @"replacewithyours" },
                         @{ @"name": @"email_address_column", @"value": @"replacewithyours" } ];
NSString *boundary = @"----WebKitFormBoundary7MA4YWxkTrZu0gW";

NSError *error;
NSMutableString *body = [NSMutableString string];
for (NSDictionary *param in parameters) {
    [body appendFormat:@"--%@\r\n", boundary];
    if (param[@"fileName"]) {
        [body appendFormat:@"Content-Disposition:form-data; name=\"%@\"; filename=\"%@\"\r\n", param[@"name"], param[@"fileName"]];
        [body appendFormat:@"Content-Type: %@\r\n\r\n", param[@"contentType"]];
        [body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"fileName"] encoding:NSUTF8StringEncoding error:&error]];
        if (error) {
            NSLog(@"%@", error);
        }
    } else {
        [body appendFormat:@"Content-Disposition:form-data; name=\"%@\"\r\n\r\n", param[@"name"]];
        [body appendFormat:@"%@", param[@"value"]];
    }
}
[body appendFormat:@"\r\n--%@--\r\n", boundary];
NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://bulkapi.zerobounce.net/v2/sendfile"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
// Please select VB or C# language for Send File Sample

API URL: https://bulkapi.zerobounce.net/v2/sendfile

Body form-data

Multipart Key Description
file csv or txt file. Byte array contents for the submitted file. The content's header is type of "text/csv".
api_key Your API Key, found in your account. (Required)
return_url The URL will be used to call back when the validation is completed. (Optional)
email_address_column The column index of the email address in the file. Index starts from 1. (Required)
first_name_column The column index of the first name column. (Optional)
last_name_column The column index of the last name column. (Optional)
gender_column The column index of the gender column. (Optional)
ip_address_column The IP Address the email signed up from. (Optional)
has_header_row If the first row from the submitted file is a header row. true or false (Optional)

If a return_url was specified in the Multipart Form Data during the send file request, we will POST the following data to the URL when the validation process is complete.

{ "file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff", "file_name": "Your file name.csv", "upload_date": "10/20/2018 4:35:58 PM" }

  - Successful Response

JSON Succesful Response

{
    "success": true,
    "message": "File Accepted",
    "file_name": "Your file name.csv",
    "file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff"
}

If the submitted file is accepted, a file ID will be returned. You can then use the file ID to call filestatus API to get the status of the file been processed or use the file ID to call getfile API to retrieve the validated results.

  - Failure response

JSON Failure Response

{
    "success": false,
    "message": [
        "Error messages"
    ]
}

File Status (v2)

The filestatus API returns the file processing status for the file been submitted using sendfile API. Please refer to the C# example for details.

  - GET /v2/filestatus

File Status Sample

' File Status Sample in VB.net

Public Class FileStatus
    Public Property success As Boolean
    Public Property file_id As String
    Public Property file_name As String
    Public Property upload_date As String
    Public Property file_status As String
    Public Property complete_percentage As String
    Public Property return_url As String
End Class

Private Shared Sub FileStatusAPITest()
    Dim apiKey As String = "replace with your api key here"
    Dim fileID As String = "replace with the returned file ID when calling sendfile API"

    Try
        Dim fileStatus As FileStatus = FileStatusAsync(apiKey, fileID).Result
        Console.Write(JsonConvert.SerializeObject(fileStatus, Formatting.Indented))
    Catch ex As Exception
        Console.Write(ex.InnerException.Message)
    End Try

    Console.ReadKey()
End Sub

Public Shared Async Function FileStatusAsync(ByVal apiKey As String, ByVal fileID As String) As Task(Of FileStatus)
    If String.IsNullOrEmpty(apiKey) Then Throw New Exception("Error: apiKey is required")
    If String.IsNullOrEmpty(fileID) Then Throw New Exception("Error: fileID is required")
    Dim uri As Uri = New Uri($"https://bulkapi.zerobounce.net/v2/filestatus?api_key={apiKey}&file_id={fileID}")

    Using client = New HttpClient()
        Using request = New HttpRequestMessage(HttpMethod.Get, uri)
            Using response = Await client.SendAsync(request).ConfigureAwait(False)
                Dim content = Await response.Content.ReadAsStringAsync()

                If response.IsSuccessStatusCode = False Then
                    Dim error As String = $"StatusCode = {CInt(response.StatusCode)}, Content = {content}"
                    Throw New Exception(error)
                End If

                Return JsonConvert.DeserializeObject(Of FileStatus)(content)
            End Using
        End Using
    End Using
End Function
// File Status Sample in C#

public class FileStatus
{
    public bool success { get; set; }
    public string file_id { get; set; }
    public string file_name { get; set; }
    public string upload_date { get; set; }
    public string file_status { get; set; }
    public string complete_percentage { get; set; }
    public string return_url { get; set; }
}

private static void FileStatusAPITest()
{
    string apiKey = "replace with your api key here";
    string fileID = "replace with the returned file ID when calling sendfile API";

    try
    {
        FileStatus fileStatus = FileStatusAsync(apiKey, fileID).Result;
        Console.Write(JsonConvert.SerializeObject(fileStatus, Formatting.Indented));
    }
    catch (Exception ex)
    {
        Console.Write(ex.InnerException.Message);
    }
    Console.ReadKey();
}

public static async Task<FileStatus> FileStatusAsync(string apiKey, string fileID)
{
    if (string.IsNullOrEmpty(apiKey))
        throw new Exception("Error: apiKey is required");
    if (string.IsNullOrEmpty(fileID))
        throw new Exception("Error: fileID is required");

    Uri uri = new Uri($"https://bulkapi.zerobounce.net/v2/filestatus?api_key={apiKey}&file_id={fileID}");

    using (var client = new HttpClient())
    using (var request = new HttpRequestMessage(HttpMethod.Get, uri))
    using (var response = await client.SendAsync(request).ConfigureAwait(false))
    {
        var content = await response.Content.ReadAsStringAsync();

        if (response.IsSuccessStatusCode == false)
        {
            var error = $"StatusCode = {(int)response.StatusCode}, Content = {content}";
            throw new Exception(error);
        }

        return JsonConvert.DeserializeObject<FileStatus>(content);
    }
}
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://bulkapi.zerobounce.net/v2/filestatus?api_key=replacewithyours&file_id=replacewithyours",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "Postman-Token: 91504cea-f92f-46b0-97a4-338167072887",
    "cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://bulkapi.zerobounce.net/v2/filestatus?api_key=replacewithyours&file_id=replacewithyours")
  .get()
  .addHeader("cache-control", "no-cache")
  .addHeader("Postman-Token", "7fffd7a4-b2fd-4e8b-ac85-4099411f27ce")
  .build();

Response response = client.newCall(request).execute();
import http.client

conn = http.client.HTTPConnection("bulkapi,zerobounce,net")

payload = ""

headers = {
    'cache-control': "no-cache",
    'Postman-Token': "caa917fe-45ce-45ae-9456-2b039b999dcb"
    }

conn.request("GET", "v2,filestatus", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
// Please select VB or C# language for File Status Sampleimport Foundation

let headers = [
  "cache-control": "no-cache",
  "Postman-Token": "4f1b92e2-034f-4fa0-94d9-b097d768668a"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/filestatus?api_key=replacewithyours&file_id=replacewithyours")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"cache-control": @"no-cache",
                           @"Postman-Token": @"5e9c24ae-b577-4e33-8748-83f14e151ae9" };

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://bulkapi.zerobounce.net/v2/filestatus?api_key=replacewithyours&file_id=replacewithyours"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
// Please select VB or C# language for File Status Sample

API URL: https://bulkapi.zerobounce.net/v2/filestatus

URL Parameters

Parameter Description
api_key Your API Key, found in your account.
file_id The returned file ID when calling sendfile API.

If you want to call the API from your browser to test it, all you have to do is to replace the API KEY with your key and the FILE ID with the returned file ID from sendfile API:

https://bulkapi.zerobounce.net/v2/filestatus?api_key=replacewithyours&file_id=replacewithyours

  - Successful Response

JSON Succesful Response

{
    "success": true,
    "file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff",
    "file_name": "Your file name.csv",
    "upload_date": "10/20/2018 4:35:58 PM",
    "file_status": "Complete",
    "complete_percentage": "100%",
    "return_url": "Your return URL if provided when calling sendfile API"
}
Properties Description
file_status [Queued, Processing, Complete]

  - Failure response

JSON Failure Response

{
    "success": false,
    "message": "Error messages"
}

Get File (v2)

The getfile API allows users to get the validation results file for the file been submitted using sendfile API. Please refer to the C# example for details.

  - GET /v2/getfile

Get File Sample

' Get File Sample in VB.net

Private Shared Sub GetFileAPITest()
    Dim apiKey As String = "replace with your api key here"
    Dim fileID As String = "replace with the returned file ID when calling sendfile API"
    Dim dir As String = "C:\temp"

    Try
        Dim filePath = GetFileAsync(apiKey, fileID, dir).Result
        Console.Write($"File {filePath} retrieved successfully.")
    Catch ex As Exception
        Console.Write(ex.InnerException.Message)
    End Try

    Console.ReadKey()
End Sub

Public Shared Async Function GetFileAsync(ByVal apiKey As String, ByVal fileID As String, ByVal dir As String) As Task(Of String)
    If String.IsNullOrEmpty(apiKey) Then Throw New Exception("Error: apiKey is required")
    If String.IsNullOrEmpty(fileID) Then Throw New Exception("Error: fileID is required")
    Dim uri As Uri = New Uri($"https://bulkapi.zerobounce.net/v2/getfile?api_key={apiKey}&file_id={fileID}")

    Using client = New HttpClient()
        Using request = New HttpRequestMessage(HttpMethod.Get, uri)
            Using response = Await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(False)
                Using streamToReadFrom As Stream = Await response.Content.ReadAsStreamAsync()

                    If response.IsSuccessStatusCode = False Then
                        Dim [error] = $"StatusCode = {CInt(response.StatusCode)}, Content = {response.Content.ReadAsStringAsync().Result}"
                        Throw New Exception([error])
                    End If

                    Dim filePath = Path.Combine(dir, response.Content.Headers.ContentDisposition.FileName)

                    Using streamToWriteTo As Stream = File.Open(filePath, FileMode.Create)
                        Await streamToReadFrom.CopyToAsync(streamToWriteTo)
                    End Using

                    Return filePath
                End Using
            End Using
        End Using
    End Using
End Function
// Get File Sample in C#

private static void GetFileAPITest()
{
    string apiKey = "replace with your api key here";
    string fileID = "replace with the returned file ID when calling sendfile API";
    string dir = @"C:\temp";  // specify the directory where you want to save the results file

    try
    {              
        var filePath = GetFileAsync(apiKey, fileID, dir).Result;
        Console.Write($"File {filePath} retrieved successfully.");
    }
    catch (Exception ex)
    {
        Console.Write(ex.InnerException.Message);
    }
    Console.ReadKey();
}

public static async Task<string> GetFileAsync(string apiKey, string fileID, string dir)
{
    if (string.IsNullOrEmpty(apiKey))
        throw new Exception("Error: apiKey is required");
    if (string.IsNullOrEmpty(fileID))
        throw new Exception("Error: fileID is required");

    Uri uri = new Uri($"https://bulkapi.zerobounce.net/v2/getfile?api_key={apiKey}&file_id={fileID}");

    using (var client = new HttpClient())
    using (var request = new HttpRequestMessage(HttpMethod.Get, uri))
    using (var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false))
    using (Stream streamToReadFrom = await response.Content.ReadAsStreamAsync())
    {
        if (response.IsSuccessStatusCode == false)
        {
            var error = $"StatusCode = {(int)response.StatusCode}, Content = {response.Content.ReadAsStringAsync().Result}";
            throw new Exception(error);
        }

        var filePath = Path.Combine(dir, response.Content.Headers.ContentDisposition.FileName);
        using (Stream streamToWriteTo = File.Open(filePath, FileMode.Create))
        {
            await streamToReadFrom.CopyToAsync(streamToWriteTo);
        }
        return filePath;
    }
}
<?php

$request = new HttpRequest();
$request->setUrl('https://bulkapi.zerobounce.net/v2/getfile');
$request->setMethod(HTTP_METH_GET);

$request->setQueryData(array(
  'api_key' => 'replacewithyours',
  'file_id' => 'replacewithyours'
));

$request->setHeaders(array(
  'Postman-Token' => '0a6c40b8-0cd4-4dbb-a57e-422558e7ab6a',
  'cache-control' => 'no-cache'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://bulkapi.zerobounce.net/v2/getfile?api_key=replacewithyours&file_id=replacewithyours")
  .get()
  .addHeader("cache-control", "no-cache")
  .addHeader("Postman-Token", "d0b7d318-f3f6-47fb-842d-5622b26592c1")
  .build();

Response response = client.newCall(request).execute();
import http.client

conn = http.client.HTTPConnection("bulkapi,zerobounce,net")

payload = ""

headers = {
    'cache-control': "no-cache",
    'Postman-Token': "9f615d7e-60af-4746-9bcc-317b1f80a6bb"
    }

conn.request("GET", "v2,getfile", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
import Foundation

let headers = [
  "cache-control": "no-cache",
  "Postman-Token": "6c8cb1cb-25ed-4e56-b4cb-65e949b8bdd1"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/getfile?api_key=replacewithyours&file_id=replacewithyours")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
// Please select VB or C# language for Get File Sample
// Please select VB or C# language for Get File Sample

API URL: https://bulkapi.zerobounce.net/v2/getfile

URL Parameters

Parameter Description
api_key Your API Key, found in your account.
file_id The returned file ID when calling sendfile API.

If you want to call the API from your browser to test it, all you have to do is to replace the API KEY with your key and the FILE ID with the returned file ID from sendfile API:

https://bulkapi.zerobounce.net/v2/getfile?api_key=replacewithyours&file_id=replacewithyours

  - Successful Response

JSON Succesful Response


The getfile API returns the validation results file. The returned content type is "application/octet-stream". You can get the file name from response.Content.Headers.ContentDisposition.FileName. If you are calling the API directly from the browser, you can either save or open the results file from the browser.

  - Failure response

JSON Failure Response

{
    "success": false,
    "message": "Error messages"
}

Sandbox Mode (v2)

To help you test every scenario of status and sub-status codes with the API, we put together a list of emails that will return specific results when used with the API for testing purposes. Testing with these emails will not use any of your credits.

In addition, we also provide an IP address to test with to get GEO-Location results.

You will still need to use your API KEY with these test email addresses.

You can use this IP to test the GEO Location in the API.

99.110.204.1

Please view our status codes documentation to learn more about each status.

Status Codes (v2)

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.

invalid - These are emails that we determined to be invalid, please delete them from your mailing list. The results are 99.999% accurate.

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 classifed 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 addreesses.

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.

unknown - These emails we weren't able to validate for one reason or another. Typical cases are "The 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.

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.

Sub Status Explanation

alias_address - (valid) These emails addresses act as forwarders/aliases and are not real inboxes, for example if you send an email to forward@example.com and then the email is forwarded to realinbox@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.

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.

does_not_accept_mail - (invalid) These domains only send mail and don't accept it.

exception_occurred - (unknown) These emails caused an exception when validating. If this happens repeately, 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.

failed_syntax_check - (Invalid) Emails that fail RFC syntax protocols

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.

global_suppression - (do_not_mail) These emails are found in many popular global supression lists (GSL), they consist of known ISP complainers, direct complainers, purchased addresses, and known litigators.

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.

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.

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.

mailbox_quota_exceeded - (invalid) These emails exceeded their space quota and are not accepting emails. 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.

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.

possible_typo - (invalid) These are emails of commonly misspelled popular domains. These emails are marked invalid.

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.

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.

unroutable_ip_address - (invalid) These emails domains point to an un-routable IP address, these are marked invalid.

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.

Other Fields

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).

V2 Changes

These are the items that changed between v1 and v2.

1) Disposable and Toxic emails have been moved under the do_not_mail status with the appropriate sub-status (toxic, disposable)
2) The "DoNotMail" status was changed to "do_not_mail"
3) All statuses are now lowercase, instead of mixed case.
4) We added a free_email property to indicate if the email domain is a free email provider can be used for [fraud prevention].
5) We added a domain_age_days property, to let you know how old the domain is [fraud prevention].
6) We added the smtp_provider property for the email domain, this feature is in beta.
7) We added the mx_found property, to let you know if the domain has an MX record
8) We added the mx_record property, to tell you the preferred MX record of the domain.
9) We added the did_you_mean property, which will be populated if a typo is detected with a suggested correction.
10) apiKey property was changed to api_key
11) IPAddress property was changed to ip_address
12) The validatewithip method was removed, it's now part of the validate method
13) The location property was removed (wasn't being used)
14) The creation_date property was removed (wasn't being used)
15) processedat property is now processed_at
16) We added a new sub-status called "role_based_catch_all"
17) We added three new API, sendfile, filestatus, and getfile for bulk email validation.

Version 1 (v1)

Validate Emails (v1)

This page will help you get started with ZeroBounce. You'll be up and running in a jiffy!



Below you will find the instructions on how to use our API, it's very easy to use and requires SSL. The API requires that you have an active credit balance and will never consume a credit for any unknown result.

To test out or API without using credits - Please use the emails provided in our sandbox documentation.

The response time for our API is between one second and 70 seconds. Since API's are meant to be fast by nature, we limit the amount of time we spend validating an email address. So if we encounter a slow mail server or a mail server with a greylisting algorithm you will get an unknown result. You can always re-validate those conditions, uploading a file to the bulk email validator.

On average 96-98% of all domains will return in 1 to 5 seconds, there are a handful of domains that run off Postfix/Dovecot that have a 20 second connection time for real-time validations and a very small fractional percentage of other domains that are very slow to respond to SMTP inquires. All the major ISP will return in 1 to 3 seconds, which is usually the majority of most email distribution.

  - GET /v1/validate

To verify an email address, use the following code:

Try
    Dim apiKey as string = "Your Secret Key"
    Dim emailToValidate as string = "example@example.com"
    Dim responseString as string = ""
    Dim apiURL as string = "https://api.zerobounce.net/v1/validate?apikey=" & apiKey & "&email=" &  HttpUtility.UrlEncode(emailToValidate)
    'Uncomment out to use the optional API with IP Lookup
    'Dim apiURL as string = "https://api.zerobounce.net/v1/validatewithip?apikey=" & apiKey & "&email=" &  HttpUtility.UrlEncode(emailToValidate) & "&ipaddress=" & HttpUtility.UrlEncode("99.123.12.122")


    Dim request As HttpWebRequest = DirectCast(WebRequest.Create(apiURL), HttpWebRequest)
    request.Timeout = 150000
    request.Method = "GET"

    Using response As WebResponse = request.GetResponse()
        response.GetResponseStream().ReadTimeout = 20000
        Using ostream As New StreamReader(response.GetResponseStream())
            responseString = ostream.ReadToEnd()
        End Using
    End Using
Catch ex as exception
'Catch Exception - All errors will be shown here - if there are issues with the API
End Try
try {
string apiKey = "Your Secret Key";
string emailToValidate = "example@example.com";
string responseString = "";
    string apiURL = "https://api.zerobounce.net/v1/validate?apikey=" + apiKey + "&email=" +  HttpUtility.UrlEncode(emailToValidate);

        //Uncomment out to use the optional API with IP Lookup
        //string apiURL = "https://api.zerobounce.net/v1/validatewithip?apikey=" + apiKey + "&email=" +  HttpUility.UrlEncode(emailToValidate); + "&ipaddress=" + HttpUtility.UrlEncode("99.123.12.122")

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
    request.Timeout = 150000;
    request.Method = "GET";

    using (WebResponse response = request.GetResponse()) {
        response.GetResponseStream().ReadTimeout = 20000;
        using (StreamReader ostream = new StreamReader(response.GetResponseStream())) {
            responseString = ostream.ReadToEnd();
        }
    }
    } catch (exception ex) {
//Catch Exception - All errors will be shown here - if there are issues with the API
}
<?php
//set the api key and email to be validated
$apiKey = 'Your Secret Key';
$emailToValidate = 'example@example.com';
$IPToValidate = '99.123.12.122';
// use curl to make the request
$url = 'https://api.zerobounce.net/v1/validate?apikey='.$apiKey.'&email='.urlencode($emailToValidate);
//Uncomment out to use the optional API with IP Lookup
// $url = 'https://api.zerobounce.net/v1/validatewithip?apikey='.$apiKey.'&email='.urlencode($emailToValidate).'&ipaddress='.urlencode($IPToValidate);

$ch = curl_init($url);
//PHP 5.5.19 and higher has support for TLS 1.2
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
curl_setopt($ch, CURLOPT_TIMEOUT, 150); 
$response = curl_exec($ch);
curl_close($ch);

//decode the json response
$json = json_decode($response, true);
?>
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MyClass {

    public static void main(String[] args){

        String key = "Your Secret Key";
        String email = "example@example.com";
        String ip = "99.123.12.122";
        String targetURL = "https://api.zerobounce.net/v1/validate?apikey="+key+"&email="+email;
//        Uncomment out to use the optional API with IP Lookup
//        String targetURL = "https://api.zerobounce.net/v1/validatewithip?apikey="+key+"&email="+email+"&ipaddress="+ip;

        HttpURLConnection connection = null;
        final String USER_AGENT = "Mozilla/5.0";

        try {
            URL url = new URL(targetURL);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.addRequestProperty("User-Agent", USER_AGENT);
            connection.setUseCaches(false);
            connection.setDoOutput(true);

            BufferedReader in = new BufferedReader(
                    new InputStreamReader(connection.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();

            //print result
            System.out.println(response.toString());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
        }

    }
}
let key = "Your Secret Key"
let email = "example@example.com"
let url = URL(string: String(format: "https://api.zerobounce.net/v1/validate?apikey=%@&email=%@", key, email))
let ip = "99.123.12.122"
//        Uncomment out to use the optional API with IP Lookup
//        let url = URL(string: String(format: "https://api.zerobounce.net/v1/validatewithip?apikey=%@&email=%@&ipaddress=%@", key, email, ip))
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
    if error != nil {
        NSLog("Error \(String(describing: error))")
    } else {
        do {
            let parsedData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]
            for (key, value) in parsedData {
                NSLog("\(key) = \(value) ")
            }
        } catch {
            print("Error deserializing JSON: \(error)")
        }
    }
}
task.resume()
url = "https://api.zerobounce.net/v1/validate"
apikey = "Your Secret Key"
email = "example@example.com"
ipaddress = "99.123.12.122"

params = {"email": email, "apikey": apikey}

# Uncomment to use the optional API with IP Lookup
# params["ipaddress"] = ipaddress

response = requests.get(url, params=params)

# Print the returned json
print json.loads(response.content)
NSString *key = @"Your Secret Key";
NSString *email = @"example@example.com";
NSString *ip = @"99.123.12.122";
NSString *urlString = [NSString stringWithFormat:@"https://api.zerobounce.net/v1/validate?apikey=%@&email=%@", key, email];
//    NSString *urlString = [NSString stringWithFormat:@"https://api.zerobounce.net/v1/validatewithip?apikey=%@&email=%@&ipaddress=%@", key, email, ip];
//    Uncomment out to use the optional API with IP Lookup


__block NSURL *url = [NSURL URLWithString:urlString];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSData *response = [NSData dataWithContentsOfURL:url];
    NSDictionary *arrResponse = nil;
    if(response!=nil)
    {
        arrResponse = [NSJSONSerialization JSONObjectWithData: response options:kNilOptions error:nil];
    }
    dispatch_async(dispatch_get_main_queue(), ^(void) {
        for(NSString *key in [arrResponse allKeys]) {
            NSLog(@"%@: %@",key,[arrResponse objectForKey:key]);
        }
//            callback(nil, arr);
    });
});
//Add to build.gradle (App) in the "android" bracket:
useLibrary 'org.apache.http.legacy'

//Example:

android {
    compileSdkVersion 25
    useLibrary 'org.apache.http.legacy'
}

//-----------------------------------

//Filename: JsonParser.java


import android.os.AsyncTask;
import org.json.JSONObject;
import java.util.Iterator;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        new AsyncTaskParseJson().execute();
    }
}

public class AsyncTaskParseJson extends AsyncTask<String, String, String> {

    String key = "Your Secret Key";
    String email = "example@example.com";
    String ip = "99.123.12.122";
    String url = "https://api.zerobounce.net/v1/validate?apikey="+key+"&email="+email;
//    Uncomment out to use the optional API with IP Lookup
//    String url = "https://api.zerobounce.net/v1/validatewithip?apikey="+key+"&email="+email+"&ipaddress="+ip;

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected String doInBackground(String... arg0) {

        JsonParser jParser = new JsonParser();
        JSONObject json = jParser.getJSONFromUrl(url);
        Iterator keys = json.keys();
        while( keys.hasNext() ) {
            String key = (String)keys.next();
            try {
                System.out.println("ZeroBounce: "+key+" = " +json.get(key).toString());
            }
            catch (Exception e){}
        }

        return null;
    }
    @Override
    protected void onPostExecute(String strFromDoInBg) {}
}

//----------------------------------

//Filename: MainActivity.java

package com.zerobounce.zbapiandroid;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JsonParser {

    final String TAG = "JsonParser.java";

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    public JSONObject getJSONFromUrl(String url) {

        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

        } catch (Exception e) {
            Log.e(TAG, "Error converting result " + e.toString());
        }

        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e(TAG, "Error parsing data " + e.toString());
        }

        return jObj;
    }
}

API URL: https://api.zerobounce.net/v1/validate

API URL (With GEO Append): https://api.zerobounce.net/v1/validatewithip

URL Parameters

Parameter Description
email The email address you want to validate
ip_address The IP Address the email signed up from (Can be blank, but parameter required)
api_key Your API Key, found in your account.

If you want to call the API from your browser to test it, all you need to do is to replace the API KEY with your key:

https://api.zerobounce.net/v1/validatewithip?apikey=replacewithyours&email=valid@example.com&ipAddress=156.124.12.145

or if you don't need GEO Append simply call the validate method.

https://api.zerobounce.net/v1/validate?apikey=replacewithyours&email=valid@example.com

The API will return these results in a JSON format using the "validate" method.

Properties Description
address The email address you are validating.
status [valid, invalid, catch-all, unknown, spamtrap, abuse, do_not_mail]
sub-status [antispam_system, greylisted, mail_server_temporary_error, forcible_disconnect, mail_server_did_not_respond, timeout_exceeded, failed_smtp_connection, mailbox_quota_exceeded, exception_occurred, possible_traps, role_based, global_suppression, mailbox_not_found, no_dns_entries, failed_syntax_check, possible_typo, unroutable_ip_address, leading_period_removed, does_not_accept_mail, alias_address]
account The portion of the email address before the "@" symbol.
domain The portion of the email address after the "@" symbol.
disposable [true, false] If the email domain is diposable, which are usually temporary email addresses.
toxic [true, false] These domains are known for abuse, spam, and bot created.
firstname The first name of the owner of the email when available or [null].
lastname The last name of the owner of the email when available or [null].
gender The gender of the owner of the email when available or [null].
creationdate The creation date of the email when available or [null] [Obsolete].
location The location of the owner of the email when available or [null] [Obsolete].
processedat The UTC time the email was validated.

The API will return these additional fields using the "validatewithip" will return these additional additional fields using the validatewithip method:

Properties Description
city The city of the IP passed in.
region The region/state of the IP passed in.
zipcode The zipc ode of the IP passed in.
country The country of the IP passed in.

  - Successful response

JSON Successful response sample from the API using the "validate" method:

{
 "address":"flowerjill@aol.com",
 "status":"Valid",
 "sub_status":"",         
 "account":"flowerjill",
 "domain":"aol.com",
 "disposable":false,
 "toxic":false,
 "firstname":"Jill",
 "lastname":"Stein",
 "gender":"female",
 "location":null,
 "creationdate":null,
 "processedat":"2017-04-01 02:48:02.592"
}

JSON Successful response sample from the API using the "validatewithip" method:

{
 "address":"flowerjill@aol.com",
 "status":"Valid",
 "sub_status":"", 
 "account":"flowerjill",
 "domain":"aol.com",
 "disposable":false,
 "toxic":false,
 "firstname":"Jill",
 "lastname":"Stein",
 "gender":"female",
 "location":null,
 "country":"United States",
 "region":"Florida",
 "city":"West Palm Beach",
 "zipcode":"33401",
 "creationdate":null,
 "processedat":"2017-04-01 02:48:02.592"
 }

  - Failure Response

JSON Failure Response

{"error":"Invalid API Key or your account ran out of credits"}

Get Credit Balance (v1)

This API will tell you how many credits you have left on your account. It's simple, fast and easy to use.

Here are a few scenarios that businesses will use this API for.

Below, you will find the instructions on how to use our API. It's very easy to use and it requires SSL.

This API will tell you how many credits you have left on your account.

  - GET /v1/getcredits

To check how many credits you have left, use the following code:

Try
    Dim apiKey = "Your Secret Key"
    Dim apiURL = "https://api.zerobounce.net/v1/getcredits?apikey=" & apiKey

    Dim request As HttpWebRequest = DirectCast(WebRequest.Create(apiURL), HttpWebRequest)
    request.Timeout = 150000
    request.Method = "GET"

    Using response As WebResponse = request.GetResponse()
        response.GetResponseStream().ReadTimeout = 20000
        Using ostream As New StreamReader(response.GetResponseStream())
            responseString = ostream.ReadToEnd()
        End Using
    End Using
Catch ex as exception
'Catch Exception - All errors will be shown here - if there are issues with the API
End Try
try {
  string apiKey = "Your Secret Key";
  string apiURL = "https://api.zerobounce.net/v1/getcredits?apikey=" + apiKey; 

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
  request.Timeout = 150000;
  request.Method = "GET";

  using (WebResponse response = request.GetResponse()) {
     response.GetResponseStream().ReadTimeout = 20000;
     using (StreamReader ostream = new StreamReader(response.GetResponseStream())) {
     responseString = ostream.ReadToEnd();
     }
  }
  } catch (exception ex) {
  /Catch Exception - All errors will be shown here - if there are issues with the API
  }>>
<?php
// set the api key and email to be validated
$apiKey = 'Your Secret Key';
// use curl to make the request
$url = 'https://api.zerobounce.net/v1/getcredits?apikey='.$apiKey;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
curl_setopt($ch, CURLOPT_TIMEOUT, 150); 
$response = curl_exec($ch);
curl_close($ch);

//decode the json response
$json = json_decode($response, true);
?>
import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;

 public class MyClass {

     public static void main(String[] args){

         String key = "Your Secret Key";
         String targetURL = "https://api.zerobounce.net/v1/getcredits?apikey="+key;

         HttpURLConnection connection = null;
         final String USER_AGENT = "Mozilla/5.0";

         try {
             URL url = new URL(targetURL);
             connection = (HttpURLConnection) url.openConnection();
             connection.setRequestMethod("GET");
             connection.addRequestProperty("User-Agent", USER_AGENT);


             connection.setUseCaches(false);
             connection.setDoOutput(true);

             BufferedReader in = new BufferedReader(
                     new InputStreamReader(connection.getInputStream()));
             String inputLine;
             StringBuffer response = new StringBuffer();

             while ((inputLine = in.readLine()) != null) {
                 response.append(inputLine);
             }
             in.close();

             //print result
             System.out.println(response.toString());

         } catch (Exception e) {
             e.printStackTrace();
         } finally {
             if (connection != null) {
                 connection.disconnect();
             }
         }

     }
 }
import requests
import json

target_url = "https://api.zerobounce.net/v1/getcredits?apikey="
secret_key = "Your Secret Key"

api_response = requests.get("%s%s" % (target_url, secret_key))
data = json.loads(api_response.content)

# prints the number of credits
print data["Credits"]
let key = "Your Secret Key"
let url = URL(string: String(format: "https://api.zerobounce.net/v1/getcredits?apikey=%@", key))
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
    if error != nil {
        NSLog("Error \(String(describing: error))")
    } else {
        do {
            let parsedData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]
            for (key, value) in parsedData {
                NSLog("\(key) = \(value) ")
            }
        } catch {
            print("Error deserializing JSON: \(error)")
        }
    }
}
task.resume()
NSString *key = @"Your Secret Key";
NSString *urlString = [NSString stringWithFormat:@"https://api.zerobounce.net/v1/getcredits?apikey=%@", key];

__block NSURL *url = [NSURL URLWithString:urlString];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSData *response = [NSData dataWithContentsOfURL:url];
    NSDictionary *arrResponse = nil;
    if(response!=nil)
    {
        arrResponse = [NSJSONSerialization JSONObjectWithData: response options:kNilOptions error:nil];
    }
    dispatch_async(dispatch_get_main_queue(), ^(void) {
        for(NSString *key in [arrResponse allKeys]) {
            NSLog(@"%@: %@",key,[arrResponse objectForKey:key]);
        }
//            callback(nil, arr);
    });
});
Add to build.gradle (App) in the "android" bracket:
useLibrary 'org.apache.http.legacy'

Example:

android {
    compileSdkVersion 25
    useLibrary 'org.apache.http.legacy'
}
//------------------------------------------
//Filename: JsonParser.java

import android.os.AsyncTask;
import org.json.JSONObject;
import java.util.Iterator;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        new AsyncTaskParseJson().execute();
    }
}

public class AsyncTaskParseJson extends AsyncTask<String, String, String> {

    String key = "Your Secret Key";
    String url = "https://api.zerobounce.net/v1/getcredits?apikey="+key;

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected String doInBackground(String... arg0) {

        JsonParser jParser = new JsonParser();
        JSONObject json = jParser.getJSONFromUrl(url);
        Iterator keys = json.keys();
        while( keys.hasNext() ) {
            String key = (String)keys.next();
            try {
                System.out.println("ZeroBounce: "+key+" = " +json.get(key).toString());
            }
            catch (Exception e){}
        }

        return null;
    }
    @Override
    protected void onPostExecute(String strFromDoInBg) {}
}

//---------------------------------------------------
//Filename: MainActivity.java

package com.zerobounce.zbapiandroid;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JsonParser {

    final String TAG = "JsonParser.java";

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    public JSONObject getJSONFromUrl(String url) {

        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

        } catch (Exception e) {
            Log.e(TAG, "Error converting result " + e.toString());
        }

        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e(TAG, "Error parsing data " + e.toString());
        }

        return jObj;
    }
}

API URL: https://api.zerobounce.net/v1/getcredits

URL Parameters

Parameter Description
api_key Your API Key, found in your account.

If you want to call the API from your browser to test it, all you have to do is to replace the API KEY with your key:

https://api.zerobounce.net/v1/getcredits?api_key=replacewithyours

This API will tell you how many credits you have left on your account.

The API will return these results in a JSON format using the "getcredits" method. credits - The amount of credits you have left in your account for email validations. If a -1 is returned, that means your API Key is invalid.

  - Successful Response

JSON Response

{"credits":2375323}

  - Failure Response

JSON Response

{"credits":-1}

Sandbox Mode (v1)

To help you test every scenario of status and sub-status codes with the API, we put together a list of emails that will return specific results when used with the API for testing purposes. Testing with these emails will not use any of your credits.

In addition, we also provide an IP address to test with to get GEO-Location results.

You will still need to use your API KEY with these test email addresses.

You can use this IP to test the GEO Location in the API.

99.110.204.1

Please view our status codes documentation to learn more about each status.

Status Codes (v1)

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.

Invalid - These are emails that we determined to be invalid, please delete them from your mailing list. The results are 99.999% accurate.

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 classifed 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 addreesses.

DoNotMail - These emails are of companies, role based, or people you just want to avoid emailing to. They are broken down into 2 sub-categories "role-based" 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.

Unknown - These emails we weren't able to validate for one reason or another. Typical cases are "The 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.

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.

Sub Status Explanation

alias_address - (Valid) These emails addresses act as forwarders/aliases and are not real inboxes, for example if you send an email to forward@example.com and then the email is forwarded to realinbox@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.

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.

does_not_accept_mail - (Invalid) These domains only send mail and don't accept it.

exception_occurred - (Unknown) These emails caused an exception when validating. If this happens repeately, 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.

failed_syntax_check - (Invalid) Emails that fail RFC syntax protocols

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.

global_suppression - (Do Not Mail) These emails are found in many popular global supression lists (GSL), they consist of known ISP complainers, direct complainers, purchased addresses, and known litigators.

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.

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.

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.

mailbox_quota_exceeded - (Invalid) These emails exceeded their space quota and are not accepting emails. 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.

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.

possible_typo - (Invalid) These are emails of commonly misspelled popular domains. These emails are marked invalid.

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.

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.

unroutable_ip_address - (Invalid) These emails domains point to an un-routable IP address, these are marked invalid.

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.

Other Fields

Disposable - 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 Domains - 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.

TLS Support

Why are we only supporting TLS 1.2 and above?

The PCI Security Council sets the rules on which technologies are acceptable for use in transmitting cardholder data. They have explicitly identified TLS 1.0 as no longer being a strong form of encryption because it is vulnerable to many known attacks.

Almost every website has stopped supporting TLS 1.0 and 1.1, this is done to help safeguard your information.

Are you affected?

If you don't use our API's then it's un-likely you will be affected unless you're using a really old browser and or operating system. To check to see if your computer/browser supports TLS 1.2 or higher please visit this link: https://www.ssllabs.com/ssltest/viewMyClient.html

API Library support

If you have code that connects with the ZeroBounce API, you must ensure that it will continue to work after June 1, 2018. Each language and library is different, below are the more popular languages.

These languages will need significant changes/upgrades in order to work:

You can test your connection with various tools and documentation found on the internet. Please keep in mind that we are not experts in every language or framework and so we aren’t able to test or fix your code for you.

Language specific instructions

Support for TLS System Default Versions included in the .NET

Browser Support

Most browsers have supported TLS 1.2 for several years.

The following browsers DO NOT support TLS 1.2 and will no longer work.

API Dashboard

Your API Dashboard is located in your account off the left hand menu. Every-time you make a call to the API, it will record the results, so you can quickly see big picture overview of your usage and your results. No emails are saved, just a count of the results.

Email Validation API Dashboard

In the API Dashboard, as seen above, you will have a drop-down the drill into the details of the invalids, do not mail, and unknown status codes. And be able to graph by daily or monthly trends to get a more in-depth look into your email validations.

Email Validation API Dashboard

In the above image, I clicked on the status I didn't want to show, leaving just the trend of the invalids. To get further details about the invalid, change the menu on top to "Invalids by Sub-Status"

Email Validation API Dashboard

Now you can see the sub-status break down of the "Invalids" emails. It's a very powerful tool, to allow you to see usage summary by day, months, and even years with a visual representation of the health of the emails you are passing through the API.

Approved Integration Vendors

Do you need a hands on specialist integrating our API into your applications, web pages, sign up forms, or registration screens?

Here is a list of approved integration vendors.

NXT Logo Contact: Catalin Chivulescu
Email: catalin.chivulescu@nxthost.com
Technologies Supported: All
Launguages: English, Romanian
QuixTec Logo Contact: Quixtec
Email: contactus@quixtec.com
Phone: (425) 267-9025
Technologies Supported: Click Here
Launguages: English, Spanish, German, Hindu

categ- API Wrappers

Version 2 (v2)

.NET (v2)

You can find the ZeroBounce .NET API Wrapper v2 on our GitHub - .NET API v2 repository.

You can also easily consume and keep it updated within your Visual Studio Project with Nuget Package Manager: https://www.nuget.org/packages/ZeroBounceAPIWrapperV2/

This wrapper class takes all the work out of coding against the API and allows you to easily set properties and get results instantly.

The .NET API Wrapper takes these input parameters.

C#

var zeroBounceAPI = new ZeroBounce.ZeroBounceAPI();

//set input parameters
zeroBounceAPI.api_key = "Your API Key"; //Required
zeroBounceAPI.emailToValidate = "Email address you are validating"; //Required
zeroBounceAPI.ip_address = "IP address the email signed up with"; //Optional

//Depending on how you use the API, you might want it to time out faster, for example on a registration screen. 
//Normally the API will return results very fast, but a small percentage of mail servers take
//upwards of 20+ seconds to respond. 
//If the API times out, it will return a status of "Unknown" and a sub_status of "timeout_exceeded"  

zeroBounceAPI.readTimeOut = 200000;// "Any integer value in milliseconds
zeroBounceAPI.requestTimeOut = 150000; // "Any integer value in milliseconds

//validate email and assign results to an object
var apiProperties = zeroBounceAPI.ValidateEmail();

//check credits and assign results to an object
var apiCredits= zeroBounceAPI.GetCredits();

//use the properties to make decisions on
switch (apiProperties.status)
  {
      case "invalid":
          Console.WriteLine("invalid");
          break;
      case "valid":
          Console.WriteLine("valid");
          break;
      default:
          Console.WriteLine(apiProperties.status);
          break;
  }

Visual Basic

Dim zeroBounceAPI = New ZeroBounce.ZeroBounceAPI

'set input parameters
zeroBounceAPI.api_key = "Your API Key" 'Required 
zeroBounceAPI.emailToValidate = "Email address you are validating" 'Required
zeroBounceAPI.ip_address = "IP address the email signed up with" 'Optional

'Depending on how you use the API, you might want it to time out faster, for example on a registration screen. 
'Normally the API will return results very fast, but a small percentage of mail servers 
'take upwards of 20+ seconds to respond. 
'If the API times out, it will return a status of "Unknown" and a sub_status of "timeout_exceeded"  

zeroBounceAPI.readTimeOut = 200000 'Any integer value in milliseconds
zeroBounceAPI.requestTimeOut = 150000 'Any integer value in milliseconds 


Dim apiProperties = zeroBounceAPI.ValidateEmail
Dim apiCredits = zeroBounceAPI.GetCredits

'use the properties to make decisions on
Select Case (apiProperties.status)
    Case "Invalid"
        Console.WriteLine("Invalid")
    Case "Valid"
        Console.WriteLine("Valid")
    Case Else
        Console.WriteLine(apiProperties.status)
End Select
Property Values
api_key Located in your account.
emailToValidate The email address your validating.
ip_address [optional] - The IP Address the email address was captured from
requestTimeOut Timeout settings in milliseconds, setting this enables you to control how long you are willing to wait for to send the request to the API. When the timeout occurs an "Unknown" result is returned.
readTimeOut Timeout settings in milliseconds, setting this enables you to control how long your willing to wait for the API to respond to your request. When the timeout occurs an "Unknown" result is returned.

The ValidateEmail and GetCredit methods return objects from which you can easily retrieve properties the properties below.

Properties and possible values returned by the methods:

ValidateEmail method

Property Possible Values
address The email address you are validating.
status valid
invalid
catch-all
unknown
spamtrap
abuse
do_not_mail
sub_status antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
toxic
disposable
role_based_catch_all
account The portion of the email address before the "@" symbol.
domain The portion of the email address after the "@" symbol.
did_you_mean Suggestive fix for an email typo or [null].
domain_age_days Age of the email domain in days or [null].
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 or [null].
smtp_provider The SMTP Provider of the email or [null] (BETA).
lastname The last name of the owner of the email when available or [null].
gender The gender of the owner of the email when available or [null].
country The country the IP address is from.
region The state/region the IP address is from
city The city the IP address is from.
zipcode The Zip Code the IP address is from.
processed_at The UTC time the email was validated.
error Error Message or [null]

GetCredit method

Property Possible Values
credits The number of credits left in account for email validation.

Java (v2)

You can find the ZeroBounce Java API v2 on our GitHub - Java API v2.

This is a java wrapper class example for the ZeroBounce API v2.

The project has 2 dependencies:

1) Apache HttpClient
2) JSON (org.json)

Either download the dependencies separately and add them to the relevant path or add the following dependencies to your pom.xml file if you're building via Maven (already added if you're cloning this repo):

XML

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.4</version>
</dependency>

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20171018</version>
</dependency>

Java

 //Depending on how you use the API, you might want it to time out faster,
//for example on a registration screen. 
//Normally the API will return results very fast, but a small percentage of
//mail servers take upwards of 20+ seconds to respond. 
//If the API times out, it will return a status of "Unknown" and 
//a sub_status of "timeout_exceeded"  

ZeroBounceApi zeroBounceApi = new ZeroBounceApi("YOUR_API_KEY",TIMEOUT_IN_SECONDS);

// Get credits and assign to int variable
int credits = zeroBounceApi.getCredits();

// validate email and assign result to a ZeroBounceResponse object

ZeroBounceResponse validation = zeroBounceApi.validate("some@email.com", "some.ip.address can be blank");
validation.getEmailAddress();
validation.getStatus();
validation.isDisposable();
validation.getCountry();

Class, Properties, and Methods:

ZeroBounceApi Class:

Parameters Description
api_key Located in your account.
timeoutSeconds Timeout settings in seconds, setting this enables you to control how long you are willing to wait for a response from the API. When the timeout occurs an "Unknown" result is returned.

Validate(email) method:

Properties Possible Values
getEmailAddress() The email address you are validating.
getStatus() Valid
Invalid
Catch-All
Unknown
Spamtrap
Abuse
DoNotMail
getSubStatus() antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
role_based_catch_all
getAccount() The portion of the email address before the "@" symbol.
getDomain() The portion of the email address after the "@" symbol.
getDidYouMean() Suggestive Fix for an email typo or [null]
getDomainAgeDays() Age of the email domain in days or [null].
isFreeEmail() [true/false] If the email comes from a free provider.
isMXFound() [true/false] Does the domain have an MX record.
getMXRecord() The preferred MX record of the domain or [null].
getSMTPProvider() The SMTP Provider of the email or [null] (BETA).
getFirstName() The first name of the owner of the email when available or [null].
getLastName() The last name of the owner of the email when available or [null].
getGender() The gender of the owner of the email when available or [null].
getCountry() The country the IP address is from.
getCity() The city the IP address is from.
getZipcode() The zip code the IP address is from.
getRegion() The region/state the IP address is from.
getProcessedAt() The UTC time the email was validated.

getCredit() method:

Properties Possible Values
getCredits() The number of credits left in account for email validation.

JavaScript (v2)

You can find the ZeroBounce JavaScript API v2 on our GitHub - JavaScript API v2.

Code Sample

JavaScript

var ZeroBounceApi = new ZeroBounceApi(apiKey)
ZeroBounceApi.apiKey
ZeroBounceApi.getCredits()
ZeroBounceApi.validate("some@email.com", "some.ip.address can be blank")

The validate and getCredits methods return objects from which you can easily retrieve properties the properties below.

Properties and possible values returned by the methods:

validate method

Property Possible Values
address The email address you are validating.
status valid
invalid
catch-all
unknown
spamtrap
abuse
do_not_mail
sub_status antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
toxic
disposable
role_based_catch_all
account The portion of the email address before the "@" symbol.
domain The portion of the email address after the "@" symbol.
did_you_mean Suggestive fix for an email typo or [null].
domain_age_days Age of the email domain in days or [null].
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 or [null].
smtp_provider The SMTP Provider of the email or [null] (BETA).
lastname The last name of the owner of the email when available or [null].
gender The gender of the owner of the email when available or [null].
country The country the IP address is from.
region The state/region the IP address is from
city The city the IP address is from.
zipcode The Zip Code the IP address is from.
processed_at The UTC time the email was validated.

GetCredit method

Property Possible Values
credits The number of credits left in account for email validation.

Python (v2)

You can find the ZeroBounce Python API v2 on our GitHub - Python API v2

Example usage

Python

from zerobounce import ZeroBounceAPI

zba = ZeroBounceAPI('yourapikey____________')
print zba.get_credits()
resp1 = zba.validate('flowerjill@aol.com','123.145.124.12')

print resp1
{
 "address":"flowerjill@aol.com",
 "status":"valid",
 "sub_status":"",
 "free_email":True,
 "did_you_mean":None,
 "account":"flowerjill",
 "domain":"aol.com",
 "domain_age_days": "8426",
 "smtp_provider":"yahoo",
 "mx_record":"mx-aol.mail.gm0.yahoodns.net",
 "mx_found": True,
 "firstname":"Jill",
 "lastname":"Stein",
 "gender":"female",
 "country":"United States",
 "region":"Florida",
 "city":"West Palm Beach",
 "zipcode":"33401",
 "processed_at":"2017-04-01 02:48:02.592"
}

print resp.firstname
Jill

print resp2.status
valid

The validate and get_credit methods return objects from which you can easily retrieve properties the properties below.

Properties and possible values returned by the methods:

validate method

Property Possible Values
address The email address you are validating.
status valid
invalid
catch-all
unknown
spamtrap
abuse
do_not_mail
sub_status antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
toxic
disposable
role_based_catch_allaccount
domain The portion of the email address after the "@" symbol.
did_you_mean Suggestive fix for an email typo or [None].
domain_age_days Age of the email domain in days or [None].
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 or [None].
smtp_provider The SMTP Provider of the email or [None] (BETA).
lastname The last name of the owner of the email when available or [None].
gender The gender of the owner of the email when available or [None].
country The country the IP address is from.
region The state/region the IP address is from
city The city the IP address is from.
zipcode The Zip Code the IP address is from.
processed_at The UTC time the email was validated.

GetCredit method

Property Possible Values
credits The number of credits left in account for email validation.

PHP (v2)

You can find the ZeroBounce PHP API on our GitHub - PHP API v2.

This is a PHP wrapper class example for the ZeroBounce API.

Example usage:

The validation methods return objects on which you call get methods which return the relevant information. Please see the sample code on the right:

PHP

<?php
require_once("zerobounce.php");

$zba = new ZeroBounceAPI('YOUR_API_KEY');

//print the credit balance
print_r($zba->get_credits());

//instantiate a validation object following a call to 
//validate and print individual elements
$validation = $zba->validate('email@address.com', 'IP can be blank');
echo $validation['address'];
echo $validation['status'];
print_r($zba->validate('email@address.com', 'IP'));
?>

The validation and get_credits methods return objects from which you can easily retrieve properties the properties below.

Properties and possible values returned by the methods:

validation method

Property Possible Values
address The email address you are validating.
status valid
invalid
catch-all
unknown
spamtrap
abuse
do_not_mail
sub_status antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
toxic
disposable
role_based_catch_all
account The portion of the email address before the "@" symbol.
domain The portion of the email address after the "@" symbol.
did_you_mean Suggestive fix for an email typo or [null].
domain_age_days Age of the email domain in days or [null].
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 or [null].
smtp_provider The SMTP Provider of the email or [null] (BETA).
lastname The last name of the owner of the email when available or [null].
gender The gender of the owner of the email when available or [null].
country The country the IP address is from.
region The state/region the IP address is from
city The city the IP address is from.
zipcode The Zip Code the IP address is from.
processed_at The UTC time the email was validated.

GetCredit method

Property Possible Values
credits The number of credits left in account for email validation.

Ruby (v2)

Ruby

# Configure the client
Zerobounce.configure do |config|
  config.apikey = 'key'
  config.valid_statuses = [:valid, :catch_all, :unknown]
end

resp = Zerobounce.validate(email: 'valid@example.com')
resp.valid? # => true

# Change what is considered a valid status
Zerobounce.valid?('invalid@example.com') # => false
Zerobounce.config.valid_statuses = [:invalid]
Zerobounce.valid?('invalid@example.com') # => true

# Use a different API key for one request
Zerobounce.validate(email: 'valid@example.com', apikey: 'different-api-key')

User Contributed Ruby Wrapper(s)

https://github.com/afrase/zerobounce

Delphi (v2)

Delphi

    Function ValidateEmail(emailaddress : string;var status : string) : boolean;
        var
        stir : string;
        url,apiKey : string;

        Reader: TJsonTextReader;
        procedure CreateReader(Str: string);
        begin
        if Reader <> nil then
            Reader.Free;
        if Sr <> nil then
            Sr.Free;
        Sr := TStringReader.Create(Str);
        Reader := TJsonTextReader.Create(Sr);
    end;

    function UrlEncode(const DecodedStr: String; Pluses: Boolean): String;
        var
        I: Integer;
        begin
        Result := '';
        if Length(DecodedStr) > 0 then
        for I := 1 to Length(DecodedStr) do
        begin
        if not (DecodedStr[I] in ['0'..'9', 'a'..'z',
                                        'A'..'Z', ' ']) then
            Result := Result + '%' + IntToHex(Ord(DecodedStr[I]), 2)
        else if not (DecodedStr[I] = ' ') then
            Result := Result + DecodedStr[I]
        else
            begin
            if not Pluses then
                Result := Result + '%20'
            else
                Result := Result + '+';
            end;
        end;
    end;

    begin
    try
    //2 DLLS are needed for the SSL to run (they need to be in one directory with the EXE)
    //openssl-1.0.2o-i386-win32.zip is the current one
    //Download from https://indy.fulgan.com/SSL/
    apiKey := 'yourZEROBOUNCEapikeyXXXX';

    url :='https://api.zerobounce.net/v2/validate?api_key='+apiKey+'&email='+UrlEncode(emailaddress,false)+'&ip_address=';
    form1.IdHTTP1.ReadTimeout := 15000;
    form1.idhttp1.IOHandler := form1.IdSSLIOHandlerSocketOpenSSL1;
    form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_2;
    form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1_2];
    stir := form1.IdHTTP1.Get(url);
    CreateReader(stir);
    status := '';
    while Reader.read do
    case Reader.TokenType of
        TJsonToken.string:
        begin
            if reader.path='status' then status := 
    status+reader.value.tostring;
            if reader.path='sub_status' then
            if reader.value.tostring<>'' then status := status+', 
    '+reader.value.tostring;
        end;
    end;
    result := (pos('Unknown',status)=0) and (pos('Invalid',status)=0);
    except
    status := '';
    result := true;
    end;
end;

User Contributed Delphi Wrapper(s) - László Malinovszky

GitHub - Delphi Wrapper v2

NodeJS (v2)

JavaScript

var https = require("https");
var api_key = "YOUR_API_KEY";
var email = "sampleemail@email.com";
var ip_address = "";

var options = {
    hostname: 'api.zerobounce.net',
    port: 443,
    path: "/v2/validate?api_key="+api_key+"&email="+email+"&ip_address='"+ip_address+"'",
    method: 'GET',
    secureProtocol: "TLSv1_2_method"
}

https.request(options, res => {
    let body = '';
    res.on('data', d => body += d)
    res.on('end', () => {
        var result = JSON.parse(body);
    // DO SOMETHING WITH result JSON

    })
}).on('error', err => {

    //DO SOMETHING FOR ERRORS
    return;

}).end()

User Contributed NodeJS Wrapper(s) - Jeff Courter

GitHub - NodeJS Wrapper v2

Version 1 (v1)

.NET (v1)

C#

var zeroBounceAPI = new ZeroBounce.ZeroBounceAPI();

//set input parameters
zeroBounceAPI.apiKey = "Your API Key"; //Required
zeroBounceAPI.emailToValidate = "Email address your validating"; //Required
zeroBounceAPI.ipAddress = "IP address the email signed up with"; //Optional

//Depending on how you use the API, you might want it to time out faster,
//for example on a registration screen. 
//Normally the API will return results very fast, but a small percentage of
//mail servers take upwards of 20+ seconds to respond. 
//If the API times out, it will return a status of "Unknown" and 
//a sub_status of "timeout_exceeded"  

zeroBounceAPI.readTimeOut = 200000; //Optional - Any integer value in milliseconds
zeroBounceAPI.requestTimeOut = 150000; //Optional -Any integer value in milliseconds

//validate email and assign results to an object
var apiProperties = zeroBounceAPI.ValidateEmail();

//check credits and assign results to an object
var apiCredits= zeroBounceAPI.GetCredits();

//use the properties to make decisions on
switch (apiProperties.status)
  {
      case "Invalid":
          Console.WriteLine("Invalid");
          break;
      case "Valid":
          Console.WriteLine("Valid");
          break;
      default:
          Console.WriteLine(apiProperties.status);
          break;
  }

Visual Basic

Dim zeroBounceAPI = New ZeroBounce.ZeroBounceAPI

'set input parameters
zeroBounceAPI.apiKey = "Your API Key" 'Required 
zeroBounceAPI.emailToValidate = "Email address your validating" 'Required
zeroBounceAPI.ipAddress = "IP address the email signed up with" 'Optional

'Depending on how you use the API, you might want it to time out faster,
'for example on a registration screen. 
'Normally the API will return results very fast, but a small percentage of
'mail servers take upwards of 20+ seconds to respond. 
'If the API times out, it will return a status of "Unknown" and 
'a sub_status of "timeout_exceeded" 

zeroBounceAPI.readTimeOut = 200000 'Any integer value in milliseconds
zeroBounceAPI.requestTimeOut = 150000 'Any integer value in milliseconds

Dim apiProperties = zeroBounceAPI.ValidateEmail
Dim apiCredits = zeroBounceAPI.GetCredits

'use the properties to make decisions on
Select Case (apiProperties.status)
    Case "Invalid"
        Console.WriteLine("Invalid")
    Case "Valid"
        Console.WriteLine("Valid")
    Case Else
        Console.WriteLine(apiProperties.status)
End Select

You can find the ZeroBounce .NET API Wrapper on our GitHub - .NET API repository.

You can also easily consume and keep it updated within your Visual Studio Project with Nuget Package Manager: https://www.nuget.org/packages/ZeroBounceAPIWrapper/

This wrapper class takes all the work out of coding against the API and allows you to easily set properties and get results instantly.

The .NET API Wrapper takes these input parameters.

Property Values
apiKey Located in your account.
emailToValidate The email address your validating.
ipAddress [optional] - The IP Address the email address was captured from
requestTimeOut Timeout settings in milliseconds, setting this enables you to control how long you are willing to wait for to send the request to the API. When the timeout occurs an "Unknown" result is returned.
readTimeOut Timeout settings in milliseconds, setting this enables you to control how long your willing to wait for the API to respond to your request. When the timeout occurs an "Unknown" result is returned.

The ValidateEmail and GetCredit methods return objects from which you can easily retrieve properties the properties below.

Properties and possible values returned by the methods:

ValidateEmail method

Property Possible Values
address The email address you are validating.
status Valid
Invalid
Catch-All
Unknown
Spamtrap
Abuse
DoNotMail
subStatus antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
account The portion of the email address before the "@" symbol.
domain The portion of the email address after the "@" symbol.
disposable [true/false] If the email domain is diposable, which are usually temporary email addresses.
toxic [true/false] These domains are known for abuse, spam, and bot created.
firstname The first name of the owner of the email when available or [null].
lastname The last name of the owner of the email when available or [null].
gender The gender of the owner of the email when available or [null].
creationDate The location of the owner of the email when available or [null].
location The location of the owner of the email when available or [null].
processedAt The UTC time the email was validated.

These additional properties are available when you set the ipAddress property.

Property Possible Values
country The country the IP address is from.
region The state/region the IP address is from.
city The city the IP address is from.
zipcode The Zip Code the IP address is from.

GetCredit method

Property Possible Values
credits The number of credits left in account for email validation.

.NET Core (v1)

User Contributed .NET Core Wrapper(s)

https://github.com/bkrauska/zerobounce-dotnetcore-api

Java (v1)

You can find the ZeroBounce Java API on our GitHub - Java API.

This is a java wrapper class example for the ZeroBounce API.

The project has 2 dependencies:

  1. Apache HttpClient
  2. JSON (org.json)

Either download the dependencies separately and add them to the relevant path or add the following dependencies to your pom.xml file if you're building via Maven (already added if you're cloning this repo):

XML

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.4</version>
</dependency>

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20171018</version>
</dependency>

Java

//Depending on how you use the API, you might want it to time out faster,
//for example on a registration screen. 
//Normally the API will return results very fast, but a small percentage of
//mail servers take upwards of 20+ seconds to respond. 
//If the API times out, it will return a status of "Unknown" and 
//a sub_status of "timeout_exceeded"  

ZeroBounceApi zeroBounceApi = new ZeroBounceApi("YOUR_API_KEY",TIMEOUT_IN_SECONDS);

// Get credits and assign to int variable
int credits = zeroBounceApi.getCredits();

// validate email and assign result to a ZeroBounceResponse object

ZeroBounceResponse validation = zeroBounceApi.validate("some@email.com");
validation.getEmailAddress();
validation.getStatus();
validation.isDisposable();

// validate email with ip and assign result to a ZeroBounceResponseWithIp object
ZeroBounceResponseWithIp validationWithIp = zeroBounceApi.validateWithIpAddress("some@email.com", "some.ip.address");
validationWithIp.getEmailAddress();
validationWithIp.getCountry();

Class, Properties, and Methods:

ZeroBounceApi Class:

Parameters Description
apiKey Located in your account.
timeoutSeconds Timeout settings in seconds, setting this enables you to control how long you are willing to wait for a response from the API. When the timeout occurs an "Unknown" result is returned.

Validate(email) method:

Properties Possible Values
getEmailAddress() The email address you are validating.
getStatus() Valid
Invalid
Catch-All
Unknown
Spamtrap
Abuse
DoNotMail
getSubStatus() antispam_system
greylisted
mail_server_temporary_error
forcible_disconnect
mail_server_did_not_respond
timeout_exceeded
failed_smtp_connection
mailbox_quota_exceeded
exception_occurred
possible_traps
role_based
global_suppression
mailbox_not_found
no_dns_entries
failed_syntax_check
possible_typo
unroutable_ip_address
leading_period_removed
does_not_accept_mail
alias_address
getAccount() The portion of the email address before the "@" symbol.
getDomain() The portion of the email address after the "@" symbol.
isDisposable() [true/false] If the email domain is diposable, which are usually temporary email addresses.
isToxic() [true/false] These domains are known for abuse, spam, and bot created.
getFirstName() The first name of the owner of the email when available or [null].
getLastName() The last name of the owner of the email when available or [null].
getGender() The gender of the owner of the email when available or [null].
getCreationDate() The location of the owner of the email when available or [null].
getLocation() The location of the owner of the email when available or [null].
getProcessedAt() The UTC time the email was validated.

validateWithIpAddress(email, ip) method:

These additional properties are available with the ValidateWithIpAddress method.

Properties Possible Values
getCountry() The country the IP address is from.
getCity() The city the IP address is from.
getZipcode() The zip code the IP address is from.
getRegion() The region/state the IP address is from.

getCredit() method:

Properties Possible Values
getCredits() The number of credits left in account for email validation.

Code Sample: The validation methods return objects on which you call get methods which return the relevant information. Please see the code for all getters.

JavaScript (v1)

JavaScript

var ZeroBounceApi = new ZeroBounceApi(apiKey)
ZeroBounceApi.apiKey
ZeroBounceApi.getCredits()
ZeroBounceApi.validate("some@email.com")
ZeroBounceApi.validateWithIpAddress("some@email.com", "some.ip.address")

You can find the ZeroBounce JavaScript API on our GitHub - JavaScript API.

PHP (v1)

PHP

<?php
require_once("zerobounce.php");

$zba = new ZeroBounceAPI('YOUR_API_KEY');

//print the credit balance
print_r($zba->get_credits());

//instantiate a validation object following a call to 
//validate and print individual elements
$validation = $zba->validate('email@address.com');
echo $validation['address'];
echo $validation['status'];

//instantiate a validation object following a call to 
//validatewithip and print the whole object
print_r($zba->validatewithip('email@address.com', 'IP'));
?>

You can find the ZeroBounce PHP API on our GitHub - PHP API.

This is a PHP wrapper class example for the ZeroBounce API.

The validation methods return objects on which you call get methods which return the relevant information. Please see the sample code.

Here are some other user contributed PHP wrapper(s)

Python (v1)

Python

from zerobounce import ZeroBounceAPI

zba = ZeroBounceAPI('yourapikey____________')
print zba.get_credits()
print zba.validate('username@example.com')
print zba.validatewithip('username@example.com')

You can find the ZeroBounce Python API on our GitHub - Python API

To see the example, please select Python on the right-column.

Ruby (v1)

User Contributed Ruby Wrapper(s)

https://github.com/afrase/zerobounce

Ruby

# Configure the client
Zerobounce.configure do |config|
  config.apikey = 'key'
  config.valid_statuses = [:valid, :catch_all, :unknown]
end

resp = Zerobounce.validate(email: 'valid@example.com')
resp.valid? # => true

# Change what is considered a valid status
Zerobounce.valid?('invalid@example.com') # => false
Zerobounce.config.valid_statuses = [:invalid]
Zerobounce.valid?('invalid@example.com') # => true

# Use a different API key for one request
Zerobounce.validate(email: 'valid@example.com', apikey: 'different-api-key')

Golang (v1)

User Contributed Golang Wrapper(s)

https://github.com/riquellopes

categ- F.A.Q

Account

I'm not getting the email to validate and confirm my account

When you register for an account, Zerobounce sends you an email with a link in it, so you can activate your account. You just have to click on that link, and you're all set to start verifying your list.

Check all folders/tabs (Spam, Promotional, deleted) to locate the email. If you can't locate the email, then it's possible that you misspelled your email address on the registration screen. Please try re-registering, and if your email was mis-spelled, you will be allowed to register under the correct email address.

Sometimes, your spam filters might be rejecting our emails. It's important that you are able to receive emails from us, so you can access the files you validate. If you think you are not receiving our emails because of your spam filters, please contact us and we will be happy to assist you in solving this issue.

Please use the "Leave a Message" button after doing a search with the "Help" Icon on the bottom right.

How do I change my password?

Please log into your account and click the "Change Password" link in the left hand menu. You will be prompted to enter your old password and the new password you're changing it to.

How do I disable password protected downloads?

We don't recommend disabling this feature, because if your account gets comprised, they won't have access to your data unless the comprised your email account as well.

But if you want to disable it, you can

In your account, click on "Options" on the left hand menu, then click on "Password Protected settings" icon button.

Disable Email Validation Password Protection

Then you will be taken to the screen below telling you that you will receive an email with a link in it, to disable this feature.

Disable Email Validation Password Protection

Check your email and click the "Approve Change" button as seen below.

Disable Email Validation Password Protection

Then this screen will appear, once the link is clicked.

Disable Email Validation Password Protection

That's it, you're done. It's disabled. You can re-enable it at any time.

Uploading files

What file formats do you accept?

We accept .TXT and .CSV files.

When you upload a file, be sure to select the right "File Delimiter" and to check the box, if your files contain a header row.

If you upload a multi-column CSV - You will be presented with a screen to match the columns with the data in it. We automatically detect what's in most columns and will pre-populate those columns for you.

It's important to match the column data type, because we use that information to help enhance your data. If you mark a column as "First Name" - we'll use that column to determine the gender of the Email.

If you mark a column as "IP Address" - we will use that data and tell you the location of that IP Address.

When you get your results back, you will have all your columns intact. We will append your columns to the CSV and they will be labelled as "ZB {Column Name}".

When uploading a file, I'm getting the error "too many invalid emails found"

This can happen under a few different conditions:

My file delimiter is missing, what do I do?

ZeroBounce.net accepts the most common file delimiters/separators, but there can be occasions where the file you want to validate has a different file delimiter than what's listed in our file delimiter drop down. We call these Custom Delimiters/separators.

What you can do is get a text editor. We recommend Notepad++, because it can handle large files and it's free to use. Open your file with Notepad++ and do a search (Your delimiter) and replace (With one of our accepted delimiters/separators). Save the file and attempt to re-upload it.

If you're still having problems uploading, click the "Leave a message" button under the "Help" icon after doing a basic search.

Billing and payments

What payment methods do you accept?

ZeroBounce.net uses PayPal and Stripe as their payment processor. We accept all payments that Paypal or Stripe accepts.

Link to PayPal Acceptance Page: Click Here

Link to Countries supported by PayPal: Click Here

Link to Stripe: Click Here

Stripe allows all credit cards (we do not accept pre-paid debit cards). We also accept payments by bank wire and ACH.

Checkout as a GUEST with PayPal

You don't need to have an account with PayPal in order to make a purchase. PayPal will allow you to pay with a credit or debit card, and without a PayPal account.

When you get to the checkout screen, choose the "Pay with a Debit or Credit Card" option on the bottom when you see this screen:

Email Validation Paypal Checkout as a Guest

After choosing this option, you will see the screen below to enter your credit card information.

Email Validation Paypal Checkout as a Guest

In some cases, PayPal won't allow you to checkout as a guest, based on various reasons related to details like customers browser, cookies, locale, IP etc.

Where do I get my invoice?

ZeroBounce.Net stores all your invoices in your account. Use the menu on the left hand side and click the "Invoices" link under "Account Info". If you're already logged into your account, simply click this link: My Invoices.

The invoice ZeroBounce.net provides in your account is for your convenience and there can be missing information needed for tax related expenses and account purposes, which is not provided to us by PayPal.

ZeroBounce.net only has access to the information that PayPal provides us on your order, which can be very limited. PayPal protects their customers' data and doesn't transmit information that is not needed for the vendor to complete your order. PayPal will also send you a receipt after the payment. The receipts should be kept for your records, as they contain your full information.

Bank Decline Codes

If a payment is declined by the bank or card issuer, the bank may provide a decline code with a more detailed reason. Below is a list of possible decline codes that can be returned.

Decline Code Explanation Next Steps
approve_with_id The payment cannot be authorized The payment should be attempted again. If it still cannot be processed, the customer needs to contact their bank.
call_issuer The card has been declined for an unknown reason The customer needs to contact their bank for more information.
card_not_supported The card does not support this type of purchase The customer needs to contact their bank to make sure their card can be used to make this type of purchase.
card_velocity_exceeded The customer has exceeded the balance or credit limit available on their card. The customer should contact their bank for more information.
currency_not_supported The card does not support the specified currency. The customer needs check with the issuer that the card can be used for the type of currency specified.
do_not_honor The card has been declined for an unknown reason The customer needs to contact their bank for more information.
do_not_try_again The card has been declined for an unknown reason The customer should contact their bank for more information.
fraudulent The payment has been declined as the issuer suspects it is fraudulent The customer should contact their bank for more information.
generic_decline The card has been declined for an unknown reason The customer needs to contact their bank for more information.
insufficient_funds The card has insufficient funds to complete the purchase The customer should use an alternative payment method.
invalid_account The card, or account the card is connected to, is invalid The customer needs to contact their bank to check that the card is working correctly.
invalid_amount The payment amount is invalid, or exceeds the amount that is allowed If the amount appears to be correct, the customer needs to check with their bank that they can make purchases of that amount.
invalid_pin The PIN entered is incorrect. This decline code only applies to payments made with a card reader. The customer should try again using the correct PIN.
issuer_not_available The card issuer could not be reached, so the payment could not be authorized The payment should be attempted again. If it still cannot be processed, the customer needs to contact their bank.
lost_card The payment has been declined because the card is reported lost The specific reason for the decline should not be reported to the customer. Instead, it needs to be presented as a generic decline.
new_account_information_available The card, or account the card is connected to, is invalid The customer needs to contact their bank for more information.
no_action_taken The card has been declined for an unknown reason The customer should contact their bank for more information.
not_permitted The payment is not permitted The customer needs to contact their bank for more information.
pickup_card The card cannot be used to make this payment (it is possible it has been reported lost or stolen) The customer needs to contact their bank for more information.
reenter_transaction The payment could not be processed by the issuer for an unknown reason. The payment should be attempted again. If it still cannot be processed, the customer needs to contact their bank.
restricted_card The card cannot be used to make this payment (it is possible it has been reported lost or stolen) The customer needs to contact their bank for more information.
revocation_of_all_authorizations The card has been declined for an unknown reason The customer should contact their bank for more information.
revocation_of_authorization The card has been declined for an unknown reason The customer should contact their bank for more information.
security_violation The card has been declined for an unknown reason The customer needs to contact their bank for more information.
service_not_allowed The card has been declined for an unknown reason The customer should contact their bank for more information.
stolen_card The payment has been declined because the card is reported stolen The specific reason for the decline should not be reported to the customer. Instead, it needs to be presented as a generic decline.
stop_payment_order The card has been declined for an unknown reason The customer should contact their bank for more information.
testmode_decline A Stripe test card number was used A genuine card must be used to make a payment.
transaction_not_allowed The card has been declined for an unknown reason The customer needs to contact their bank for more information.
try_again_xxxxxxxxx The card has been declined for an unknown reason Ask the customer to attempt the payment again. If subsequent payments are declined, the customer should contact their bank for more information.
withdrawal_count_limit_exceeded The customer has exceeded the balance or credit limit available on their card. The customer should use an alternative payment method.

Questions about our services

What are Catch-all Domains?

Catch-All domains always return a valid response from the SMTP service, whether the email address is actually valid or invalid. Some mail servers do this because they believe it will prevent people from harvesting real email addresses from their SMTP Server.

Some mail operators set up a catch-all address. For instance, if you mail misspelledname@domain.com, the mail administrator will forward that email to a "catch-all" address, like "review@domain.com". So they can look at all the emails sent to their mail server to see if anything important was sent to an invalid recipient.

We have found that catch-all domains get a lot more spam, because mail services have no way of telling if the email address is good or bad before sending. So spam operators just send to them, thinking someone will see the email.

Most Email Validation services will just return Valid for catch-all domains without telling you.

ZeroBounce.net identifies these domains for you. Since we are not able to validate them, it's up to you to decide if you want to take the risk to send to these domains. We do recommend that, if you decide to send emails to catch all domains, you segment these into a different group in your mailing platform.

Now, there are 3 behaviors of catch-all email domains:

  1. An non-real email address is funneled into a catch-all inbox (This does not hurt your email reputation)
  2. The non-real email is bounced back, saying the user doesn't exist (This does hurt your email reputation)
  3. The recipient is actually valid and the email gets delivered

How do you detect Abuse Emails?

First, let's explain what Abuse Emails are.

Abuse Emails are considered emails where the recipient clicks the "Spam" link often in emails sent to them. We call these high risk emails. If you email them, they might click the "Spam" link, therefore lowering your mailing reputation. Furthermore, these users contribute to causing your emails to land in the spam/bulk folders or, worse, not being delivered at all.

Now, should you send messages to Abuse Email Addresses? That's your decision. Maybe these people are really interested in what you have to say and they won't mark the mail as spam. It's your call, you know you customers better than we do and you know how you gathered these email addresses. Did you buy the list? If yes, maybe you shouldn't mail them. Are they an actual customer of your store? Then maybe you should email them. It's your decision.

How do we detect them? We have relationships in place that report this information to us. They are mostly gathered through Feedback loops or individual OPT-Out links found in people's emails.

How do you detect Spam Traps?

It's a common misconception that all Spam Traps are undetectable. We all read the same articles you did. There is a lot of inaccurate information on the web regarding Spam Traps. We can't reveal all of the ways we detect Spam Traps, but we can provide you a few.

That's pretty clear cut. How is that undetectable?

That's easily identifiable, too.

Yes, it's impossible to detect or know about all Spam Traps. We might not be able to eliminate all your Spam Traps, but if we eliminate 50% of them, it's a good start!

How do I contact ZeroBounce?

Zerobounce uses Zendesk as a ticketing system, to keep track of all communications with our customers. To contact us just click the "Leave us a message" button, after performing a search under the "Help" Icon.

We would love to hear from you and we'll get back to you shortly!

We are in the process of setting up additional channels of communication, but for now the only way to contact us is through email support via Zendesk support@zerobounce.net

Credit use

Do my email validation credits expire?

No, once you purchase credits, they will never expire. You can use those credits to validate your emails whenever you want. Our 24/7 customer support team is here to assist you in the process, should you need any help.

Potential issues

Why is my file taking so long to process?

Zerobounce deploys break-through anti grey-listing technology. A lot of remote mail servers will issue a 421 response code initially, then after a period of time up to 30 minutes, they will allow the email address to be validated properly.

If any file that you upload to be validated has an email address that we encounter a single 421 response on, it will delay the entire file processing time by up to 35 minutes.

If your file appears to be stuck longer than an hour, please let us know and we'll look into it.

Typically, it takes around 1 to 3 hours to validate 100,000 mixed domain email addresses. So, if your file has 1 million email addresses in it, naturally you would assume it will take between 10 and 30 hours. But, it's not that simple, grey-listing isn't multiplied. So a file of 1 million emails will take between 3 and 23 hours. The average is more like 7 hours.

You next obvious question is: "If someone is validating a million emails addresses, do I have to wait?" The answer is no, because we have multiple servers that process email addresses across different geographical regions.

Typically, there will be little to no wait for your file to start processing. However, it is possible that if a lot of people submit files all around the same time, there will be a delay before your file starts processing. When we start experiencing high queue times, we start adding additional servers to handle the processing. We use all the resources we need to use in order to take care of our customers.

I downloaded my processed file and it's asking me for a password

ZeroBounce.net takes security of your data seriously. When you download a file, a password will be generated and emailed to you to access that file. The reason why we do this, is to add an extra layer of security. If someone was to comprise your account, they wouldn't have access to your data without that password.

The password you receive in email only applies to the file you downloaded. If you download a file a second time, you will be send a new password to access that file.

Where do I get the PASSWORD to decrypt my downloaded results?

When you download your validated results from Zerobounce.net, we send a password to your email, so you can access the zip file you downloaded.

The password should arrive in email soon after you download your results. Every time you download any results, even if it's the same results, a new password will be sent to you.

We do this for the security of your data, to protect you in case you left your PC unattended or if someone got access to your account. They wouldn't be able to get access to your data without the password that's emailed to you.

2-factor authentication is very important.

Decompression failed when downloading on a Macintosh

If you receive a "Decompression Failed" when attempting to download the ZIP file on a Macintosh computer, as seen below in Safari:

Email Validation Decompression Error

This can be fixed with the following resolution:

  1. In Safari Preferences/General, do you have the box 'Open Safe Files after Downloading' ticked?
  2. Try UN-ticking that and restart Safari.

My overview PDF Report appears to be blank

There is a known issue with PDFs and the default OSX PDF viewer. Please open with Chrome or Adobe Reader if you are having issues viewing the report.

How come some emails are missing data append features?

ZeroBounce.net does its best to append additional data to your emails, like "First Name, Last Name, Gender, Etc". The more information you know about your customer, the better you can communicate with them.

We gather this information through reliable third-party sources we have contracts with. Unfortunately, we will not be able to provide this information for all e-mail addresses, because we don't have it and are unable to retrieve it. It's a nice feature we provide for free and sometimes we achieve an over 80% data appends rate. Other times it is under 10%, depending on the list uploaded.

Just to be clear, we never use customer data, as it would be against our Privacy Policy.

How come my results are .zip?

ZeroBounce.net creates a bundle of files for your convenience, separating the different status codes into their own files and adding an overview report. This allows you to segment your list.

Upload the "Valid" file to your mailing platform.

Upload the "Catch-All" file to your mailing platform, but segment them into their own group, if you decide to email catch-all email addresses. Some of them can be invalid.

We also provide back your original list and a list of all the results combined. This way you can view and study your results in different ways.

If you are unable to open a ZIP file, you will need to install a program that can open them. Most Operating Systems come with a built-in ZIP reader.

We recommend downloading Winzip or 7-Zip if you need a tool to extract the files.

How come the total records I submit, sometimes show a lesser amount when validated?

ZeroBounce.net automatically removes duplicate records and mal-formed email addresses from all files you upload to be processed.

For example, if you upload 1000 emails and 10 of those emails are duplicates, once processing finishes, you will see 990 emails processed. We didn't lose any emails you uploaded, we just eliminated the duplicates.

You are not charged any credits for duplicate or mal-formed emails. We simply ignore them.

If you click the arrow, next to the file name on the download results screen. You will see why those emails were excluded.

These ignored records will be located in a file that ends with "_rejected.csv" in the the .zip file you download.

Unable To Expand - Archive Utility

If you're using Mac OS, you might encounter this issue when unzipping your downloaded results:

Email Validation Archive Utility

There are a few known fixes for this:

Watch The video below and follow the instructions.



The terminal workaround is explained in greater detail below:

Step 1. Access your Search function by clicking the magnifying glass in the top right corner of your home screen. Search for "Terminal" and double-click this option.

Email Validation Archive Utility

Step 2. Your terminal will now be displayed on your screen. Type "unzip " with a space after.

Email Validation Archive Utility

Step 3. Drag the protected .zip file into this window and press enter.

Email Validation Archive Utility

Step 4. You will be prompted for a password - denoted by a key character. Access your email to copy the password.

Email Validation Archive Utility

Step 5. Paste the password into the terminal and press enter.

You will see that your .zip file has been expanded under your user profile in "Users".

Email Validation Archive Utility
Email Validation Archive Utility

Step 6. Enable "Hard disk" under "Show these items on the desktop:" in your Finder settings. This will allow you to access your "Users" folder.

To access your Finders settings in the top menu, and "select preferences"

Email Validation Archive Utility

Step 7. Access your "Macintosh HD" drive on your desktop and open the "Users" folder.

Email Validation Archive Utility

Step 8. Open your user folder and you will see the series of .csv files that were unpacked from your .zip file. For a more detailed description of each file click here.

Email Validation Archive Utility

Alternatively, if this process does not work for you, these options are available:

Download "The Unarchiver" from the Mac App Store. Download "The Archive Browser" from the Mac App Store. If none of the above fixes work, please contact us.

Where can I get software to open the CSV file?

All of our downloads are CSV Files and you need a CSV Viewer to see the results.

If you don't have a CSV Viewer, you have plenty of free options available to you.

There are literally hundreds of other options. If you want to recommend a viewer to add to the list above, please contact us.

Why is my bounce rate high after cleaning?

There are many different factors that will cause emails to bounce that's un-related to whether the actual email address is good or bad.

Here are some examples:

Obviously, all of the examples above doesn't mean the email address is invalid. It just means, there are other factors causing bounces that need to be addressed. To understand what's causing the bounce you must have access to your SMTP Logs and you have to analyze the SMTP Codes to determine why.

If you experience a high bounce rate and they are not being caused by any of the above issues we want to know about it. But we need the SMTP Bounce you received, in order to investigate.

Please provide the emails along with the SMTP Bounce message to support@zerobounce.net and we will investigate any issues related with cleaning.

If you review your own SMTP Bounce Logs and determine it's not from the emails being invalid, we put together a guide to help you troubleshoot and configure your email for sending: The complete guide to improve deliverability.

Sorry, we couldn't find <file name> on windows

Email Validation Long Filename

In windows, your file name and path combined can only be 260 characters long. When you access the zip file and then access the file name inside the zip file. It can sometimes go over 260 characters if you uploaded a file with a very long name.

There are a few things you can try to fix the issue.

The CSV I downloaded doesn't format correctly when opened.

When files are uploaded to ZeroBounce, we auto-detect the delimiter used and give you the file back with the same delimiter.

Excel doesn't auto detect the delimiter and puts all the data in one column.

To correct this issue:

  1. Open a blank worksheet in Excel.
  2. Click on the "Data" tab in the top navigation bar
  3. Click on "From Text" under "Get external Data"
  4. The following screen will pop up.
Email Validation CSV Format

Then click next and select the delimiter you see in the file, in the example above it's a Tab delimited file. So below I selected Tab, then click Finish.

Email Validation CSV Format

Then Select the first column A1 and click "OK"

</>
Related example code appears here