Loading
Loading
Our Bulk Email Validation API provides a reliable way to validate and verify multiple email addresses in a single request. Built for high-volume processing, the API checks each address for invalid emails, MX record and domain issues, disposable and temporary inboxes, catch-all domains, role-based accounts, spam traps, syntax problems, and other key email quality signals.
Use our bulk email verification API to clean email databases at scale, improve deliverability, reduce bounce rates, remove risky or low-quality addresses before campaigns, block disposable and temporary emails from entering your system, and identify typographical mistakes, catch-all domains, and other problematic addresses across your entire list. This endpoint returns the same validation depth as our Single Email Checker API while processing up to 100 email records in one request.
Verify MX records across large email lists in a single request. Detect domains with invalid or missing mail server configuration and remove addresses that are unlikely to receive email successfully.
Validate email syntax for every address in your batch to catch malformed entries, typographical mistakes, and invalid formatting before they waste sending volume.
Find temporary and disposable email addresses at scale and keep risky, low-quality contacts out of your database.
Screen large lists for spam traps and role-based accounts to improve deliverability and protect sender reputation.
Identify free email providers across your list and focus on genuine business contacts for stronger B2B outreach.
Detect catch-all domains in bulk to reduce bounce risk and avoid wasting campaign resources on uncertain addresses.
Add optional IP-based location insights to bulk validation results for profiling, monitoring, and fraud review.
Detect contacts linked to VPNs, proxies, and Tor exits to uncover suspicious records across large datasets.
Our API supports up to 100 emails per request which enables you to process extensive batches of emails simultaneously, significantly streamlining your workflow and ensuring rapid and accurate results.
$ pip install requests
A maximum of 100 email objects can be included in the request body per request.
| Parameter | Required | Type | Default | Description |
|---|---|---|---|---|
| format | No | String | json | Response format. Possible values are: (1) json (2) xml |
| Parameter | Required | Type | Default | Description |
|---|---|---|---|---|
| emailData | Yes | Array<Object> | - | Array of email validation objects. Maximum 100 email objects are allowed per request. |
Each item inside emailData should be an object with the following fields:
| Parameter | Required | Type | Default | Description |
|---|---|---|---|---|
| Yes | String | - | Email address to validate. Invalid email addresses are still accepted and will return syntax-related errors in the corresponding response item. | |
| name | No | String | - | Optional identifier reserved for future identity verification and record tracking use cases. |
| ip | No | String | - | Optional IP address used for geolocation and threat intelligence enrichment, including VPN, proxy, TOR, and abuse signals. |
The API request must be a valid JSON object containing a single field named emailData. The value of emailData must be an array of objects, where each object contains an email field with a valid or invalid email address. Invalid email addresses are still accepted in the request and will return syntax-related errors during the validation process for that specific record.
{
"emailData": [
{
"email": "abc@example.com"
},
{
"email": "xyz@example.com"
}
]
}In addition to the email field, each object in the emailData array may also include two optional parameters: name and ip. When these fields are provided, the API performs additional enrichment and security analysis for each email record individually.
{
"emailData": [
{
"email": "abc@example.com",
"name": "ABC Person",
"ip": "1.1.1.1"
},
{
"email": "xyz@example.com",
"name": "XYZ Person",
"ip": "8.8.8.8"
}
]
}The name field is reserved for future identity verification use cases, especially where matching a submitted name against the expected identity can help reduce fraud. The ip field is used to derive geolocation and threat intelligence signals, including whether the IP is linked to a VPN, proxy, TOR exit, or known abusive activity.
Explore detailed response fields including field names, data types, requirements, and descriptions in the interactive Response Table. For complete response documentation click here.
| HTTP Status | Reasons |
|---|---|
| 400 | Malformed JSON/XML body, wrong input format, unsupported method or version, or validation errors. |
Provide multiple email addresses in the request body to receive validation results. Each item in the response corresponds to one validation attempt and includes syntax, domain, DNS, and account analysis.
# Response { "emailValidationResponses": [ { "success": true, "email": "someone@gmail.com", "name": "ABC Person", "validEmail": "valid", "validSyntax": true, "domain": { "name": "gmail.com", "disposable": false, "spam": false, "free": true, "validDomain": true, "catchAll": false }, "account": { "role": false, "fullMailBox": false }, "dns": { "mxRecords": [ "gmail-smtp-in.l.google.com.", "alt1.gmail-smtp-in.l.google.com.", "alt2.gmail-smtp-in.l.google.com.", "alt3.gmail-smtp-in.l.google.com.", "alt4.gmail-smtp-in.l.google.com." ] } }, { "success": true, "email": "someone@fastmail.com", "name": "XYZ Person", "validEmail": "valid", "validSyntax": true, "domain": { "name": "fastmail.com", "disposable": false, "spam": false, "free": true, "validDomain": true, "catchAll": false }, "account": { "role": false, "fullMailBox": false }, "dns": { "mxRecords": [ "in1-smtp.messagingengine.com.", "in2-smtp.messagingengine.com." ] } } ] }curl -X 'POST' \ 'https://api.apifreaks.com/v1.0/email-validation/bulk?apiKey=API-KEY' \ -H 'Content-Type: application/json' \ -H 'X-apiKey: API-KEY' \ -d '{ "emailData": [ { "email": "someone@gmail.com", "name": "ABC Person" }, { "email": "someone@fastmail.com", "name": "XYZ Person" } ] }'
Including an IP address in each object enriches the response with detailed security insights and precise location data for that IP.
# Response { "emailValidationResponses": [ { "success": true, "email": "someone@gmail.com", "name": "ABC Person", "validEmail": "valid", "validSyntax": true, "domain": { "name": "gmail.com", "disposable": false, "spam": false, "free": true, "validDomain": true, "catchAll": false }, "account": { "role": false, "fullMailBox": false }, "dns": { "mxRecords": [ "gmail-smtp-in.l.google.com.", "alt1.gmail-smtp-in.l.google.com.", "alt2.gmail-smtp-in.l.google.com.", "alt3.gmail-smtp-in.l.google.com.", "alt4.gmail-smtp-in.l.google.com." ] }, "ip": "1.1.1.1", "address": { "location": { "city": "South Brisbane", "district": "Brisbane", "zipcode": "4101", "state_prov": "Queensland", "country_name": "Australia", "continent_name": "Oceania", "continent_code": "OC", "country_code2": "AU", "country_code3": "AUS", "country_name_official": "Commonwealth of Australia", "is_eu": false }, "security": { "threat_score": 5, "is_tor": false, "is_proxy": false, "proxy_type": "", "is_anonymous": false, "is_known_attacker": false, "is_spam": false, "is_bot": false, "is_cloud_provider": true }, "validIpAddress": true } }, { "success": true, "email": "someone@fastmail.com", "name": "XYZ Person", "validEmail": "valid", "validSyntax": true, "domain": { "name": "fastmail.com", "disposable": false, "spam": false, "free": true, "validDomain": true, "catchAll": false }, "account": { "role": false, "fullMailBox": false }, "dns": { "mxRecords": [ "in1-smtp.messagingengine.com.", "in2-smtp.messagingengine.com." ] }, "ip": "8.8.8.8", "address": { "location": { "city": "Mountain View", "district": "Santa Clara", "zipcode": "94043-1351", "state_prov": "California", "country_name": "United States", "continent_name": "North America", "continent_code": "NA", "country_code2": "US", "country_code3": "USA", "country_name_official": "United States of America", "is_eu": false }, "security": { "threat_score": 0, "is_tor": false, "is_proxy": false, "proxy_type": "", "is_anonymous": false, "is_known_attacker": false, "is_spam": false, "is_bot": false, "is_cloud_provider": false }, "validIpAddress": true } } ] }curl -X 'POST' \ 'https://api.apifreaks.com/v1.0/email-validation/bulk?apiKey=API-KEY' \ -H 'Content-Type: application/json' \ -H 'X-apiKey: API-KEY' \ -d '{ "emailData": [ { "email": "someone@gmail.com", "name": "ABC Person", "ip": "1.1.1.1" }, { "email": "someone@fastmail.com", "name": "XYZ Person", "ip": "8.8.8.8" } ] }'
To use the Bulk Email Validation API, API credits are required. Charges apply only for successful queries, defined by a 2xx status code. If a request results in a 4xx or 5xx status code, no credits will be deducted, and any credits already charged will be refunded.
For each successfully processed email in the request, 15 credits are charged.
Utilize the Credits Usage API to efficiently monitor your recent consumption of both one-off and subscription credits. This API provides a streamlined way to track and manage your credit usage, ensuring you stay informed about your remaining balance and can optimize your resource allocation effectively.