ZeroBounce
Authentication Type: API Key Description: Validate email addresses individually or in bulk using the ZeroBounce API. Returns deliverability status, sub-status, and contact metadata including name, location, and SMTP provider.
Authentication
To authenticate, you'll need a ZeroBounce API key. Sign up at zerobounce.net and find your API key in the ZeroBounce dashboard.
Validate Email
Validate a single email address. Returns the full deliverability status along with contact metadata such as name, gender, location, and SMTP provider.
Operation Type: Query (Read)
Parameters:
- email
string(required): The email address to validate - ipAddress
string(nullable): Optional IP address of the user who submitted the email, used to improve validation accuracy. Default: null - timeout
number(nullable): Timeout in seconds (3-60). Uses your account's default when null. Default: null
Returns:
- address
string: The validated email address - status
string: Validation result. Values:"valid","invalid","catch-all","unknown","spamtrap","abuse","do_not_mail" - subStatus
string: Detailed sub-status code (e.g.,"mailbox_not_found","no_dns_entries","disposable") - freeEmail
boolean: Whether the email is from a free email provider (Gmail, Yahoo, etc.) - catchallDomain
string(nullable): The catch-all domain if status is"catch-all" - didYouMean
string(nullable): A suggested corrected email if a typo was detected - account
string(nullable): The local part of the email address (before@) - domain
string(nullable): The domain part of the email address - domainAgeDays
string(nullable): Age of the domain in days - activeInDays
number(nullable): Days since the mailbox was last active - activeFirstSeen
string(nullable): Date the mailbox was first seen active - smtpProvider
string(nullable): The email service provider detected for the domain - mxFound
string: Whether a valid MX record was found ("true"or"false") - mxRecord
string(nullable): The primary MX record hostname - firstname
string(nullable): First name associated with the email if found - lastname
string(nullable): Last name associated with the email if found - gender
string(nullable): Predicted gender based on the first name - country
string(nullable): Country associated with the email - region
string(nullable): Region/state associated with the email - city
string(nullable): City associated with the email - zipcode
string(nullable): ZIP/postal code associated with the email - processedAt
string: Timestamp when the validation was processed
Example Usage:
{
"email": "john.doe@example.com",
"ipAddress": "99.110.204.1"
}
Validate Email Batch
Validate a batch of up to 200 email addresses in a single request. Each address is validated with the same depth as the single validation endpoint.
Operation Type: Query (Read)
Parameters:
- emailBatch
array of objects(required): Array of email addresses to validate (up to 200)- emailAddress
string(required): The email address to validate - ipAddress
string(nullable): Optional IP address of the user who submitted this email. Default: null
- emailAddress
- timeout
number(nullable): Timeout in seconds for the entire batch (10-120). Uses your account's default when null. Default: null
Returns:
- emailBatch
array of objects: Validation results for each email (same shape as single validate)- address
string: The validated email address - status
string: Validation result ("valid","invalid","catch-all","unknown","spamtrap","abuse","do_not_mail") - subStatus
string: Detailed sub-status code - freeEmail
boolean: Whether the domain is a free email provider - catchallDomain
string(nullable): Catch-all domain if applicable - didYouMean
string(nullable): Suggested corrected email if a typo was detected - account
string(nullable): Local part of the email - domain
string(nullable): Domain part of the email - domainAgeDays
string(nullable): Domain age in days - activeInDays
number(nullable): Days since last active - activeFirstSeen
string(nullable): Date first seen active - smtpProvider
string(nullable): Email service provider - mxFound
string: Whether MX record was found - mxRecord
string(nullable): Primary MX record hostname - firstname
string(nullable): First name if available - lastname
string(nullable): Last name if available - gender
string(nullable): Predicted gender - country
string(nullable): Country associated - region
string(nullable): Region/state associated - city
string(nullable): City associated - zipcode
string(nullable): ZIP code associated - processedAt
string: Timestamp when processed
- address
- errors
array of objects: Addresses that could not be processed- error
string: Error description - emailAddress
string: The email address that failed
- error
Example Usage:
{
"emailBatch": [
{ "emailAddress": "alice@example.com" },
{ "emailAddress": "bob@company.org", "ipAddress": "192.0.2.1" },
{ "emailAddress": "invalid.email@nonexistent-domain.xyz" }
]
}
Common Use Cases
List Hygiene:
- Clean email lists before sending campaigns to reduce bounce rates and protect sender reputation
- Filter out spamtraps, abuse addresses, and do-not-mail entries from prospect lists
- Identify and remove invalid emails from CRM contact records
Lead Qualification:
- Validate emails from form submissions before storing them in your database
- Use the
statusfield to prioritize outreach — focus on"valid"addresses first - Use
catch-allstatus to flag addresses that need manual verification
Contact Enrichment:
- Retrieve contact metadata (name, gender, location) to fill gaps in CRM records
- Identify the email service provider using
smtpProviderfor deliverability strategy - Use
activeInDaysto gauge how recently a mailbox was active
Bulk Processing:
- Validate large lists in batches of up to 200 addresses per request
- Process errors separately using the
errorsarray to retry or flag failures - Combine with list segmentation to route emails by validation status