This endpoint allows you to send us batches up to 200 emails at a time. It is rate limited to 5 uses per minute, if you exceed the rate limit, you will be blocked for 10 minutes. If you're looking to do single email validations, please use our single email validator endpoint.
If you're looking to upload files with emails greater than 200 at a time without any rate limiting restrictions, please use our Bulk File Management Endpoints which also includes anti-greylisting as an added benefit.
This endpoint can take up to 70 seconds to return the results of the entire batch. We currently don't have an SDK for this endpoint, but SDK's are available for our other endpoints.
- POST /V2/VALIDATEBATCH
API URL: https://bulkapi.zerobounce.net/v2/validatebatch
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.
URL Parameters
- ParameterDescription
- api_keyYour API Key
- email_batch[Array of Objects], Format:{"email_address": "valid@example.com","ip_address": "1.1.1.1"}
- timeoutThe duration (10 - 120 seconds) allowed for the validation. If met, the API will return unknown / greylisted. (optional parameter)
EXAMPLE POST REQUEST
{
"api_key":"Your API Key",
"email_batch":[
{"email_address": "valid@example.com","ip_address": "1.1.1.1"},
{"email_address": "invalid@example.com","ip_address": "1.1.1.1"},
{"email_address": "disposable@example.com","ip_address": null}
]
}
TO USE THIS ENDPOINT, USE THE CODE EXAMPLES BELOW FOR THE DESIRED LANGUAGE:
{
"email_batch": [
{
"address": "valid@example.com",
"status": "valid",
"sub_status": "",
"free_email": false,
"did_you_mean": null,
"account": null,
"domain": null,
"domain_age_days": "9692",
"smtp_provider": "example",
"mx_found": "true",
"mx_record": "mx.example.com",
"firstname": "zero",
"lastname": "bounce",
"gender": "male",
"country": null,
"region": null,
"city": null,
"zipcode": null,
"processed_at": "2020-09-17 17:43:11.829"
},
{
"address": "invalid@example.com",
"status": "invalid",
"sub_status": "mailbox_not_found",
"free_email": false,
"did_you_mean": null,
"account": null,
"domain": null,
"domain_age_days": "9692",
"smtp_provider": "example",
"mx_found": "true",
"mx_record": "mx.example.com",
"firstname": "zero",
"lastname": "bounce",
"gender": "male",
"country": null,
"region": null,
"city": null,
"zipcode": null,
"processed_at": "2020-09-17 17:43:11.830"
},
{
"address": "disposable@example.com",
"status": "do_not_mail",
"sub_status": "disposable",
"free_email": false,
"did_you_mean": null,
"account": null,
"domain": null,
"domain_age_days": "9692",
"smtp_provider": "example",
"mx_found": "true",
"mx_record": "mx.example.com",
"firstname": "zero",
"lastname": "bounce",
"gender": "male",
"country": null,
"region": null,
"city": null,
"zipcode": null,
"processed_at": "2020-09-17 17:43:11.830"
}
],
"errors": []
}
{
"email_batch": [],
"errors": [
{
"error": "Invalid API Key or your account ran out of credits",
"email_address": "all"
}
]
}
THE API WILL RETURN A JSON OBJECT WITH 2 ARRAY VALUES, "EMAIL_BATCH" AND "ERRORS" USING THE "BATCHVALIDATE" METHOD.
The email_batch property will be an array of validated results and the errors array will be an array of errors encountered during batch vaidation, if any.
JSON Properties
- PropertiesDescription
- email_batch[Array] An Array of validated emails
- errors[Array] An Array of errors encuontered, if any
email_batch Properties
- PropertiesDescription
- addressThe email address you are validating.
- status[valid, invalid, catch-all, unknown, spamtrap, abuse, do_not_mail]
- sub_status[alternate, 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_trap, 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]
- accountThe portion of the email address before the "@" symbol.
- domainThe portion of the email address after the "@" symbol.
- did_you_meanSuggestive Fix for an email typo
- domain_age_daysAge 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_recordThe preferred MX record of the domain
- smtp_providerThe SMTP Provider of the email or [null] [BETA].
- firstnameThe first name of the owner of the email when available or [null].
- lastnameThe last name of the owner of the email when available or [null].
- genderThe gender of the owner of the email when available or [null].
- cityThe city of the IP passed in or [null]
- regionThe region/state of the IP passed in or [null]
- zipcodeThe zipcode of the IP passed in or [null]
- countryThe country of the IP passed in or [null]
- processed_atThe UTC time the email was validated.
BulkAPI and BulkAPI Batch Validate Rate Limits
We allow a maximum of 250 requests in 1 minute for the bulkapi.zerobounce.net/ before temporarily blocking for 1 hour.
We allow a maximum of 20 requests in 1 minute for the bulkapi.zerobounce.net/v2/validatebatch before temporarily blocking for 10 minutes.
Bad requests to bulkapi.zerobounce.net/ 200 times in 1 hour will result in a temporary block for 1 hour.
Batch responses to bulkapi.zerobounce.net/v2/validate that contains over 20 unknown statuses (that are not greylisted or antispam) more than once per hour will temporarily block for 1 hour.