Global Email Validation and Deliverability API

API ID 13004

Validates email addresses for syntax, MX records, disposable domains, role-based addresses, and domain typos, then returns a weighted risk score and deliverability verdict. Supports single and batch validation.

183 ms avg response

API Documentation

Endpoints

Request

Runs the full validation pipeline on a single email address. It checks syntax, MX records, disposable status, role-based addresses, free providers, domain typos, and email type, then returns a weighted risk score and a deliverability verdict.

Endpoint ID: 26019
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26019/validate+email
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"email":"[email protected]","valid":true,"syntax":true,"mx":true,"disposable":false,"role":false,"free_provider":true,"typo_suggestion":null,"email_type":"free","deliverability":"high","risk_score":5},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Validate Email — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26019/validate+email&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Validates up to 50 email addresses supplied in a JSON body with an emails array. Returns a results array where each item has email, valid, syntax, mx, disposable, role, free_provider, typo_suggestion, email_type, deliverability, and risk_score, plus a summary with total, valid_count, invalid_count, high_risk_count, disposable_count, role_count, and free_provider_count.

Endpoint ID: 26020
POST https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26020/validate+emails+batch
INPUT PARAMETERS

Validate Emails Batch — Endpoint Features

Object Description
Request Body Required Json

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"results":[{"email":"[email protected]","valid":true,"syntax":true,"mx":true,"disposable":false,"role":false,"free_provider":true,"typo_suggestion":null,"email_type":"free","deliverability":"high","risk_score":5},{"email":"[email protected]","valid":true,"syntax":true,"mx":true,"disposable":true,"role":false,"free_provider":false,"typo_suggestion":null,"email_type":"disposable","deliverability":"low","risk_score":75},{"email":"[email protected]","valid":true,"syntax":true,"mx":true,"disposable":false,"role":false,"free_provider":false,"typo_suggestion":null,"email_type":"business","deliverability":"high","risk_score":0}],"summary":{"total":3,"valid_count":3,"invalid_count":0,"high_risk_count":1,"disposable_count":1,"role_count":0,"free_provider_count":1}},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Validate Emails Batch — CODE SNIPPETS

curl --location --request POST 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26020/validate+emails+batch' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{"emails": ["[email protected]", "[email protected]", "[email protected]"]}'

    
Request

Checks the email given in the required email query parameter against RFC 5322 syntax rules only, with no DNS lookup. Returns email, a valid boolean, and a reason string that names the specific failure when invalid or null when valid.

Endpoint ID: 26021
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26021/check+syntax
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"email":"[email protected]","valid":true,"reason":null},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Check Syntax — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26021/check+syntax&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Scores the email given in the required email query parameter. Returns email, a risk_score from 0 to 100, a deliverability verdict, and a breakdown object with syntax_failed, no_mx, mx_timeout, disposable, role_based, free_provider, and typo_present booleans.

Endpoint ID: 26022
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26022/get+risk+score
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"email":"[email protected]","risk_score":5,"deliverability":"high","breakdown":{"syntax_failed":false,"no_mx":false,"mx_timeout":false,"disposable":false,"role_based":false,"free_provider":true,"typo_present":false}},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Get Risk Score — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26022/get+risk+score&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Analyses a single domain given in the required domain query parameter, with no at symbol. Returns domain, mx boolean, mx_records array of exchange and priority, disposable boolean, free_provider boolean, provider_name string or null, and typo_of string or null naming the domain it is a misspelling of.

Endpoint ID: 26023
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26023/get+domain+intelligence
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"domain":"gmail.com","mx":true,"mx_records":[{"exchange":"gmail-smtp-in.l.google.com","priority":5},{"exchange":"alt1.gmail-smtp-in.l.google.com","priority":10},{"exchange":"alt2.gmail-smtp-in.l.google.com","priority":20},{"exchange":"alt3.gmail-smtp-in.l.google.com","priority":30},{"exchange":"alt4.gmail-smtp-in.l.google.com","priority":40}],"disposable":false,"free_provider":true,"provider_name":"Gmail","typo_of":null},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Get Domain Intelligence — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26023/get+domain+intelligence&domain=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Analyses up to 100 domains supplied in a JSON body with a domains array. Returns a results array where each item has domain, mx, mx_records, disposable, free_provider, provider_name, and typo_of, plus a summary with total, mx_valid_count, disposable_count, free_provider_count, and typo_count.

Endpoint ID: 26024
POST https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26024/get+domain+intelligence+batch
INPUT PARAMETERS

Get Domain Intelligence Batch — Endpoint Features

Object Description
Request Body Required Json

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"results":[{"domain":"gmail.com","mx":true,"mx_records":[{"exchange":"gmail-smtp-in.l.google.com","priority":5},{"exchange":"alt1.gmail-smtp-in.l.google.com","priority":10},{"exchange":"alt2.gmail-smtp-in.l.google.com","priority":20},{"exchange":"alt3.gmail-smtp-in.l.google.com","priority":30},{"exchange":"alt4.gmail-smtp-in.l.google.com","priority":40}],"disposable":false,"free_provider":true,"provider_name":"Gmail","typo_of":null},{"domain":"mailinator.com","mx":true,"mx_records":[{"exchange":"mail2.mailinator.com","priority":1},{"exchange":"mail.mailinator.com","priority":1}],"disposable":true,"free_provider":false,"provider_name":null,"typo_of":null},{"domain":"acmewidgets.com","mx":true,"mx_records":[{"exchange":"spamtitan.isomedia.com","priority":5}],"disposable":false,"free_provider":false,"provider_name":null,"typo_of":null}],"summary":{"total":3,"mx_valid_count":3,"disposable_count":1,"free_provider_count":1,"typo_count":0}},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Get Domain Intelligence Batch — CODE SNIPPETS

curl --location --request POST 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26024/get+domain+intelligence+batch' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{"domains": ["gmail.com", "mailinator.com", "acmewidgets.com"]}'

    
Request

Looks up the MX records for the domain given in the required domain query parameter, with no at symbol, via live DNS with a fast timeout. Returns domain, mx boolean, a records array of exchange and priority sorted by priority, lookup_time_ms, and a timeout boolean.

Endpoint ID: 26025
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26025/check+mx+records
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"domain":"gmail.com","mx":true,"records":[{"exchange":"gmail-smtp-in.l.google.com","priority":5},{"exchange":"alt1.gmail-smtp-in.l.google.com","priority":10},{"exchange":"alt2.gmail-smtp-in.l.google.com","priority":20},{"exchange":"alt3.gmail-smtp-in.l.google.com","priority":30},{"exchange":"alt4.gmail-smtp-in.l.google.com","priority":40}],"lookup_time_ms":1.209,"timeout":false},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Check MX Records — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26025/check+mx+records&domain=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Checks the domain given in the required domain query parameter, with no at symbol, against the bundled list of over 121000 known disposable and throwaway providers. Returns domain, a disposable boolean, and domain_count giving the total number of disposable domains loaded.

Endpoint ID: 26026
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26026/check+disposable+domain
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"domain":"mailinator.com","disposable":true,"domain_count":121570},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Check Disposable Domain — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26026/check+disposable+domain&domain=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns a paginated export of the full disposable domain list. Accepts an optional page parameter starting at 1 and defaulting to 1, and an optional limit parameter up to 1000 and defaulting to 100. Returns a domains array of strings, plus page, limit, total, and total_pages.

Endpoint ID: 26027
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26027/list+disposable+domains
INPUT PARAMETERS

List Disposable Domains — Endpoint Features

Object Description
page Required The page number to return, starting at a minimum of 1 and defaulting to 1 when omitted. A page beyond the end of the list returns an empty array rather than an error.
limit Required The number of disposable domains to return per page, up to a maximum of 1000 and defaulting to 100 when omitted.

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

page
limit
API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"domains":["0-180.com","0-30-24.com","0-420.com"],"page":1,"limit":3,"total":121570,"total_pages":40524},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
List Disposable Domains — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26027/list+disposable+domains?page=1&limit=3' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Checks whether the local part of the email given in the required email query parameter is a recognised role based prefix such as info or support. Returns email, a role boolean, the matched prefix string or null, and a category which is one of support, admin, marketing, finance, technical, or generic.

Endpoint ID: 26028
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26028/check+role+address
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"email":"[email protected]","role":true,"prefix":"support","category":"support"},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Check Role Address — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26028/check+role+address&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Suggests a correction for a misspelled domain in the email given in the required email query parameter, using an exact typo map then an edit distance fallback. Returns original, suggestion string or null, corrected_email string or null, and confidence which is high, medium, or null.

Endpoint ID: 26029
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26029/suggest+typo+correction
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"original":"[email protected]","suggestion":"gmail.com","corrected_email":"[email protected]","confidence":"high"},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Suggest Typo Correction — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26029/suggest+typo+correction&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Checks whether the domain given in the required domain query parameter, with no at symbol, is a known free email provider or ISP bundled mailbox. Returns domain, a free_provider boolean, and provider_name string or null giving the provider name when matched.

Endpoint ID: 26030
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26030/check+free+provider
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"domain":"gmail.com","free_provider":true,"provider_name":"Gmail"},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Check Free Provider — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26030/check+free+provider&domain=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns the full list of known free email providers and ISP bundled mailboxes. Returns a providers array where each item has domain, name, and type which is either free or isp, plus a total count. Takes no parameters.

Endpoint ID: 26031
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26031/list+free+providers
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"providers":[{"domain":"gmail.com","name":"Gmail","type":"free"},{"domain":"yahoo.com","name":"Yahoo Mail","type":"free"},{"domain":"outlook.com","name":"Outlook","type":"free"},{"domain":"hotmail.com","name":"Hotmail","type":"free"},{"domain":"icloud.com","name":"iCloud Mail","type":"free"},{"domain":"me.com","name":"iCloud Mail","type":"free"},{"domain":"mac.com","name":"iCloud Mail","type":"free"},{"domain":"aol.com","name":"AOL Mail","type":"free"},{"domain":"protonmail.com","name":"Proton Mail","type":"free"},{"domain":"proton.me","name":"Proton Mail","type":"free"},{"domain":"zoho.com","name":"Zoho Mail","type":"free"},{"domain":"gmx.com","name":"GMX Mail","type":"free"},{"domain":"gmx.net","name":"GMX Mail","type":"free"},{"domain":"mail.com","name":"Mail.com","type":"free"},{"domain":"live.com","name":"Microsoft Live","type":"free"},{"domain":"msn.com","name":"MSN","type":"free"},{"domain":"ymail.com","name":"Yahoo Mail","type":"free"},{"domain":"rocketmail.com","name":"Yahoo Mail","type":"free"},{"domain":"fastmail.com","name":"FastMail","type":"free"},{"domain":"tutanota.com","name":"Tutanota","type":"free"},{"domain":"hey.com","name":"Hey","type":"free"},{"domain":"web.de","name":"WEB.DE","type":"free"},{"domain":"freenet.de","name":"freenet Mail","type":"free"},{"domain":"t-online.de","name":"T-Online","type":"isp"},{"domain":"orange.fr","name":"Orange Mail","type":"isp"},{"domain":"free.fr","name":"Free.fr","type":"isp"},{"domain":"laposte.net","name":"La Poste","type":"free"},{"domain":"libero.it","name":"Libero Mail","type":"free"},{"domain":"virgilio.it","name":"Virgilio Mail","type":"free"},{"domain":"mail.ru","name":"Mail.ru","type":"free"},{"domain":"yandex.ru","name":"Yandex Mail","type":"free"},{"domain":"rambler.ru","name":"Rambler Mail","type":"free"},{"domain":"163.com","name":"NetEase 163","type":"free"},{"domain":"qq.com","name":"QQ Mail","type":"free"},{"domain":"126.com","name":"NetEase 126","type":"free"},{"domain":"rediffmail.com","name":"Rediffmail","type":"free"},{"domain":"naver.com","name":"Naver Mail","type":"free"},{"domain":"daum.net","name":"Daum Mail","type":"free"},{"domain":"yahoo.co.jp","name":"Yahoo Japan Mail","type":"free"},{"domain":"yahoo.co.uk","name":"Yahoo UK","type":"free"},{"domain":"btinternet.com","name":"BT Internet","type":"isp"},{"domain":"gmx.de","name":"GMX Mail","type":"free"},{"domain":"gmx.at","name":"GMX Mail","type":"free"},{"domain":"gmx.ch","name":"GMX Mail","type":"free"},{"domain":"arcor.de","name":"Arcor Mail","type":"isp"},{"domain":"1und1.de","name":"1&1 Mail","type":"isp"},{"domain":"mail.de","name":"mail.de","type":"free"},{"domain":"posteo.de","name":"Posteo","type":"free"},{"domain":"mailbox.org","name":"Mailbox.org","type":"free"},{"domain":"wp.pl","name":"Wirtualna Polska","type":"free"},{"domain":"onet.pl","name":"Onet Poczta","type":"free"},{"domain":"interia.pl","name":"Interia","type":"free"},{"domain":"o2.pl","name":"O2 Poczta","type":"free"},{"domain":"tlen.pl","name":"Tlen.pl","type":"free"},{"domain":"seznam.cz","name":"Seznam Email","type":"free"},{"domain":"centrum.cz","name":"Centrum Email","type":"free"},{"domain":"atlas.cz","name":"Atlas Email","type":"free"},{"domain":"centrum.sk","name":"Centrum.sk","type":"free"},{"domain":"azet.sk","name":"Azet.sk","type":"free"},{"domain":"freemail.hu","name":"Freemail.hu","type":"free"},{"domain":"citromail.hu","name":"Citromail","type":"free"},{"domain":"abv.bg","name":"ABV Mail","type":"free"},{"domain":"mail.bg","name":"Mail.bg","type":"free"},{"domain":"inbox.lv","name":"Inbox.lv","type":"free"},{"domain":"inbox.lt","name":"Inbox.lt","type":"free"},{"domain":"one.lt","name":"One.lt","type":"free"},{"domain":"yahoo.it","name":"Yahoo Italy","type":"free"},{"domain":"yahoo.de","name":"Yahoo Germany","type":"free"},{"domain":"yahoo.fr","name":"Yahoo France","type":"free"},{"domain":"yahoo.es","name":"Yahoo Spain","type":"free"},{"domain":"yahoo.ca","name":"Yahoo Canada","type":"free"},{"domain":"yahoo.com.au","name":"Yahoo Australia","type":"free"},{"domain":"yahoo.com.br","name":"Yahoo Brazil","type":"free"},{"domain":"yahoo.com.mx","name":"Yahoo Mexico","type":"free"},{"domain":"yahoo.in","name":"Yahoo India","type":"free"},{"domain":"yahoo.co.in","name":"Yahoo India","type":"free"},{"domain":"live.co.uk","name":"Microsoft Live UK","type":"free"},{"domain":"live.fr","name":"Microsoft Live France","type":"free"},{"domain":"live.de","name":"Microsoft Live Germany","type":"free"},{"domain":"live.it","name":"Microsoft Live Italy","type":"free"},{"domain":"live.com.au","name":"Microsoft Live Australia","type":"free"},{"domain":"hotmail.co.uk","name":"Hotmail UK","type":"free"},{"domain":"hotmail.fr","name":"Hotmail France","type":"free"},{"domain":"hotmail.de","name":"Hotmail Germany","type":"free"},{"domain":"hotmail.it","name":"Hotmail Italy","type":"free"},{"domain":"hotmail.es","name":"Hotmail Spain","type":"free"},{"domain":"bol.com.br","name":"BOL Mail","type":"free"},{"domain":"uol.com.br","name":"UOL Mail","type":"free"},{"domain":"terra.com.br","name":"Terra Mail","type":"free"},{"domain":"ig.com.br","name":"iG Mail","type":"free"},{"domain":"globo.com","name":"Globo Mail","type":"free"},{"domain":"hanmail.net","name":"Hanmail","type":"free"},{"domain":"nate.com","name":"Nate Mail","type":"free"},{"domain":"sina.com","name":"Sina Mail","type":"free"},{"domain":"sina.cn","name":"Sina Mail","type":"free"},{"domain":"sohu.com","name":"Sohu Mail","type":"free"},{"domain":"yeah.net","name":"NetEase Yeah","type":"free"},{"domain":"foxmail.com","name":"Foxmail","type":"free"},{"domain":"aliyun.com","name":"Aliyun Mail","type":"free"},{"domain":"in.com","name":"In.com Mail","type":"free"},{"domain":"indiatimes.com","name":"Indiatimes Mail","type":"free"},{"domain":"email.it","name":"Email.it","type":"free"},{"domain":"tin.it","name":"Tin.it","type":"isp"},{"domain":"alice.it","name":"Alice Mail","type":"isp"},{"domain":"tiscali.it","name":"Tiscali Mail","type":"isp"},{"domain":"aruba.it","name":"Aruba Mail","type":"free"},{"domain":"sfr.fr","name":"SFR Mail","type":"isp"},{"domain":"bbox.fr","name":"Bbox Mail","type":"isp"},{"domain":"neuf.fr","name":"Neuf Mail","type":"isp"},{"domain":"voila.fr","name":"Voila Mail","type":"free"},{"domain":"wanadoo.fr","name":"Wanadoo Mail","type":"isp"},{"domain":"numericable.fr","name":"Numericable Mail","type":"isp"},{"domain":"aim.com","name":"AIM Mail","type":"free"},{"domain":"netscape.net","name":"Netscape Mail","type":"free"},{"domain":"excite.com","name":"Excite Mail","type":"free"},{"domain":"lycos.com","name":"Lycos Mail","type":"free"},{"domain":"juno.com","name":"Juno","type":"isp"},{"domain":"netzero.net","name":"NetZero","type":"isp"},{"domain":"inbox.com","name":"Inbox.com","type":"free"},{"domain":"usa.com","name":"Mail.com Network","type":"free"},{"domain":"consultant.com","name":"Mail.com Network","type":"free"},{"domain":"engineer.com","name":"Mail.com Network","type":"free"},{"domain":"europe.com","name":"Mail.com Network","type":"free"},{"domain":"lawyer.com","name":"Mail.com Network","type":"free"},{"domain":"post.com","name":"Mail.com Network","type":"free"},{"domain":"techie.com","name":"Mail.com Network","type":"free"},{"domain":"writeme.com","name":"Mail.com Network","type":"free"},{"domain":"cheerful.com","name":"Mail.com Network","type":"free"},{"domain":"myself.com","name":"Mail.com Network","type":"free"},{"domain":"workmail.com","name":"Mail.com Network","type":"free"},{"domain":"accountant.com","name":"Mail.com Network","type":"free"},{"domain":"activist.com","name":"Mail.com Network","type":"free"},{"domain":"alumni.com","name":"Mail.com Network","type":"free"},{"domain":"doctor.com","name":"Mail.com Network","type":"free"},{"domain":"dr.com","name":"Mail.com Network","type":"free"},{"domain":"runbox.com","name":"Runbox","type":"free"},{"domain":"mailfence.com","name":"Mailfence","type":"free"},{"domain":"posteo.net","name":"Posteo","type":"free"},{"domain":"disroot.org","name":"Disroot","type":"free"},{"domain":"kolabnow.com","name":"Kolab Now","type":"free"},{"domain":"talktalk.net","name":"TalkTalk Mail","type":"isp"},{"domain":"sky.com","name":"Sky Mail","type":"isp"},{"domain":"virginmedia.com","name":"Virgin Media Mail","type":"isp"},{"domain":"blueyonder.co.uk","name":"Blueyonder","type":"isp"},{"domain":"mweb.co.za","name":"MWEB Mail","type":"isp"},{"domain":"webmail.co.za","name":"Webmail.co.za","type":"free"},{"domain":"telkomsa.net","name":"Telkom SA","type":"isp"},{"domain":"iafrica.com","name":"iAfrica Mail","type":"isp"},{"domain":"yandex.com","name":"Yandex Mail","type":"free"},{"domain":"inbox.ru","name":"Mail.ru Network","type":"free"},{"domain":"bk.ru","name":"Mail.ru Network","type":"free"},{"domain":"list.ru","name":"Mail.ru Network","type":"free"},{"domain":"comcast.net","name":"Comcast Xfinity","type":"isp"},{"domain":"verizon.net","name":"Verizon","type":"isp"},{"domain":"att.net","name":"AT&T","type":"isp"},{"domain":"cox.net","name":"Cox Communications","type":"isp"},{"domain":"charter.net","name":"Charter/Spectrum","type":"isp"},{"domain":"earthlink.net","name":"EarthLink","type":"isp"},{"domain":"centurylink.net","name":"CenturyLink","type":"isp"},{"domain":"frontier.com","name":"Frontier Communications","type":"isp"},{"domain":"windstream.net","name":"Windstream","type":"isp"},{"domain":"optimum.net","name":"Optimum (Altice)","type":"isp"},{"domain":"telekom.de","name":"Deutsche Telekom","type":"isp"},{"domain":"bigpond.com","name":"Telstra BigPond","type":"isp"},{"domain":"optusnet.com.au","name":"Optus","type":"isp"},{"domain":"iinet.net.au","name":"iiNet","type":"isp"},{"domain":"rogers.com","name":"Rogers","type":"isp"},{"domain":"sympatico.ca","name":"Bell Sympatico","type":"isp"},{"domain":"shaw.ca","name":"Shaw Communications","type":"isp"},{"domain":"telus.net","name":"Telus","type":"isp"},{"domain":"xtra.co.nz","name":"Spark Xtra","type":"isp"}]},"_note":"Response truncated for documentation purposes"}
List Free Providers — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26031/list+free+providers' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Canonicalises the email given in the required email query parameter by lowercasing it, stripping plus tags, and removing Gmail dots. A literal plus sign in the value must be percent encoded as %2B. Returns original, normalized, a changed boolean, and a rules_applied array naming each transform that fired.

Endpoint ID: 26032
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26032/normalize+email
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"original":"[email protected]","normalized":"[email protected]","changed":true,"rules_applied":["lowercased","stripped_plus_tag","stripped_dots"]},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Normalize Email — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26032/normalize+email&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Classifies the domain of the email given in the required email query parameter. Returns email, domain, email_type which is one of free, business, disposable, educational, government, or isp, and an is_business boolean that is true only when the type is business.

Endpoint ID: 26033
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26033/classify+email+type
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"email":"[email protected]","domain":"acmewidgets.com","email_type":"business","is_business":true},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Classify Email Type — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26033/classify+email+type&email=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request

Returns API status and live dataset counts. Returns uptime_seconds, version, node_version, disposable_domain_count, free_provider_count, isp_count, role_prefix_count, typo_map_size, endpoints, and an smtp_enabled boolean. Takes no parameters.

Endpoint ID: 26034
GET https://docs.zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26034/health+check
INPUT PARAMETERS

Free test requests remaining: 3 of 3.

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{"success":true,"data":{"uptime_seconds":624071,"version":"1.0.0","node_version":"v18.20.5","disposable_domain_count":121570,"free_provider_count":172,"isp_count":43,"role_prefix_count":78,"typo_map_size":208,"endpoints":19,"smtp_enabled":false},"meta":{"disclaimer":"Validation results are indicative only. Deliverability cannot be fully guaranteed without live SMTP verification.","cached":false}}
Health Check — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13004/global+email+validation+and+deliverability+api/26034/health+check' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API Access Key & Authentication

After signing up, every developer is assigned a personal API access key, a unique combination of letters and digits provided to access to our API endpoint. To authenticate with the Global Email Validation and Deliverability API simply include your bearer token in the Authorization header.

Headers
Header Description
Authorization Required Should be Bearer access_key. See "Your API Access Key" above when you are subscribed.

No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.

(Save 2 months with annual billing 🎉)

🚀 Enterprise Plan

Starts at
$ 10,000/Year


  • Custom Volume
  • Custom Rate Limit
  • Specialized Customer Support
  • Real-Time API Monitoring

Overview

Validates email addresses against RFC 5322 syntax, checks MX records via live DNS, detects disposable domains from a list of over 121,000 known providers, flags role-based addresses, suggests corrections for common domain typos, classifies the domain type, and normalizes addresses for de-duplication. Each request returns a weighted risk score and a deliverability verdict. The API is stateless and stores no submitted data.

Authentication is handled by the marketplace gateway, so no key management is required in your own code.

Risk scores are computed from weighted flags: invalid syntax scores 100 and short-circuits all other checks, no MX record adds 55, an MX timeout adds 30, a disposable domain adds 75, a role-based address adds 20, a typo adds 10, and a free provider adds 5. The total is capped at 100. The deliverability verdict is derived from the score: high for 0 to 20, medium for 21 to 49, low for 50 to 79, and undeliverable for 80 to 100.

Domain type is classified in precedence order: disposable, then free, educational, government, ISP, and finally business. When passing an email address that contains a plus sign in a query string, the plus must be percent-encoded as %2B, since an unencoded plus is interpreted as a space and will fail syntax validation.

Global Email Validation and Deliverability API FAQs

No. It validates syntax, confirms the domain can receive mail through a live MX record lookup, and scores reputation signals such as disposable domains, role-based addresses, and typos. It does not perform live SMTP mailbox verification, so it cannot confirm that a specific mailbox exists. The deliverability verdict and risk score are strong indicative signals, not a delivery guarantee

Each detected flag adds weighted points. No MX record adds 55, an MX timeout adds 30, a disposable domain adds 75, a role-based address adds 20, a typo adds 10, and a free provider adds 5. Invalid syntax scores 100 and skips all other checks. The total is capped at 100, and the deliverability verdict is derived from it. High is 0 to 20, medium is 21 to 49, low is 50 to 79, and undeliverable is 80 to 100.

Disposable or throwaway domains are temporary email services such as Mailinator and ten-minute-mail providers, commonly used to bypass signup gates. The API checks against a list of over 121000 known disposable domains. You can check a single domain with the disposable endpoint or export the full list with the disposable list endpoint.

It runs in two stages. First it checks an exact map of common misspellings of the top providers, which returns high confidence. If there is no exact match, it compares the domain against the known provider list by edit distance, and a single-character difference returns the closest match at medium confidence. If neither stage matches, no suggestion is returned.

A free provider is an independent webmail service such as Gmail, Yahoo, or Outlook. An ISP type is a mailbox bundled with an internet or telecom subscription such as Comcast, BT Internet, or Orange. Both are non-business addresses, and the distinction is useful for analytics and for filtering business signups.

Yes. The batch validation endpoint accepts up to 50 email addresses in a single request and returns a result for each one plus a summary of counts across the batch. There is also a batch domain endpoint that accepts up to 100 domains.

No. The API is stateless and uses no database. Email addresses and domains you submit are processed in memory to produce the response and are not retained. The only data loaded is the static list of disposable domains, providers, and typo mappings.

In a URL query string an unencoded plus sign is read as a space before the API receives it, and a space is not valid in an email address, so the request fails validation. Encode the plus sign as %2B and it will be received correctly.

Each endpoint returns specific data related to email validation and domain intelligence. For example, the Validate Email endpoint returns validation results including validity, syntax, MX status, and a risk score, while the Get Domain Intelligence endpoint provides details about the domain's MX records, disposable status, and potential typos.

Key fields vary by endpoint but generally include "email" or "domain," "valid," "risk_score," "deliverability," and specific flags like "disposable" or "role." For batch endpoints, summary fields like "valid_count" and "invalid_count" are also included.

Response data is structured in a JSON format. Each endpoint typically returns a "success" boolean, a "data" object containing relevant details, and a "meta" object with disclaimers. For batch endpoints, results are presented in an array format with a summary at the end.

Parameters vary by endpoint. For example, the Validate Emails Batch endpoint accepts a JSON body with an "emails" array, while the List Disposable Domains endpoint accepts optional "page" and "limit" parameters to control pagination.

Information varies by endpoint. The Validate Email endpoint provides validation results, while the Check MX Records endpoint returns MX record details. The List Free Providers endpoint offers a comprehensive list of known free email providers, including their domains and names.

Data accuracy is maintained through live DNS lookups for MX records and a regularly updated list of disposable domains. The API also employs a structured validation process to ensure that only valid emails and domains are processed.

Typical use cases include verifying email addresses during user registration, cleaning email lists for marketing campaigns, and assessing the quality of leads by checking for disposable or role-based addresses. This helps improve deliverability and engagement rates.

Users can utilize the returned data by analyzing the risk scores and deliverability verdicts to filter out low-quality emails. For example, a high risk score indicates potential issues, allowing users to prioritize valid addresses for communication or marketing efforts.

General FAQs

To obtain your API key, first sign in to your account and navigate to the API you want to use. From the API's Pricing section, choose a plan and complete the subscription process. Once subscribed, return to the API page and you will see your API Access Key displayed at the top of the documentation page. You can use this key to authenticate your requests.

You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.

The free trial lasts for 7 days and allows you to make up to 50 API requests.

No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.

Yes. If the API offers a free trial, you will see a "Free 7-Day Trial" option in its Pricing section. The trial lasts for 7 days and allows up to 50 API requests, enabling you to evaluate the API before subscribing to a paid plan.

Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.

Prices are listed in USD (United States Dollar), EUR (Euro), CAD (Canadian Dollar), AUD (Australian Dollar), and GBP (British Pound). We accept all major debit and credit cards. Our payment system uses the latest security technology and is powered by Stripe, one of the world's most reliable payment companies. If you have any trouble paying by card, just contact us at [email protected]

Additionally, if you already have an active subscription in any of these currencies (USD, EUR, CAD, AUD, GBP), that currency will remain for subsequent subscriptions. You can change the currency at any time as long as you don't have any active subscriptions.
The local currency shown on the pricing page is based on the country of your IP address and is provided for reference only. The actual prices are in USD (United States Dollar). When you make a payment, the charge will appear on your card statement in USD, even if you see the equivalent amount in your local currency on our website. This means you cannot pay directly with your local currency.
Occasionally, a bank may decline the charge due to its fraud protection settings. We suggest reaching out to your bank initially to check if they are blocking our charges. Also, you can access the Billing Portal and change the card associated to make the payment. If these does not work and you need further assistance, please contact our team at [email protected]
Prices are determined by a recurring monthly or yearly subscription, depending on the chosen plan.
API calls are deducted from your plan based on successful requests. Each plan comes with a specific number of calls that you can make per month. Only successful calls, indicated by a Status 200 response, will be counted against your total. This ensures that failed or incomplete requests do not impact your monthly quota.
Zyla API Hub works on a recurring monthly subscription system. Your billing cycle will start the day you purchase one of the paid plans, and it will renew the same day of the next month. So be aware to cancel your subscription beforehand if you want to avoid future charges.
To upgrade your current subscription plan, simply go to the pricing page of the API and select the plan you want to upgrade to. The upgrade will be instant, allowing you to immediately enjoy the features of the new plan. Please note that any remaining calls from your previous plan will not be carried over to the new plan, so be aware of this when upgrading. You will be charged the full amount of the new plan.
To check how many API calls you have left for the current month, refer to the 'X-Zyla-API-Calls-Monthly-Remaining' field in the response header. For example, if your plan allows 1,000 requests per month and you've used 100, this field in the response header will indicate 900 remaining calls.

You can monitor your API usage through the response headers included with every request:

x-zyla-api-calls-monthly-used: Shows the total number of API requests you have used during the current billing period.
x-zyla-api-calls-monthly-remaining: Shows the number of API requests you have remaining for the current billing period.

The 'X-Zyla-RateLimit-Reset' header shows the number of seconds until your rate limit resets. This tells you when your request count will start fresh. For example, if it displays 3,600, it means 3,600 seconds are left until the limit resets.

Yes, you can cancel your subscription at any time. Simply go to the Pricing section of the API you're subscribed to and click the "Unsubscribe" button.

Please note that upgrades, downgrades, and cancellations take effect immediately. Once your subscription is canceled, access to the service will end immediately, regardless of any remaining API calls in your quota.

After 7 days, you will be charged the full amount for the plan you were subscribed to during the trial. Therefore, it's important to cancel before the trial period ends. Refund requests for forgetting to cancel on time are not accepted.
When you subscribe to an API free trial, you can make up to 50 API calls. If you wish to make additional API calls beyond this limit, the API will prompt you to perform an "Start Your Paid Plan." You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab.
You can contact us through our chat channel to receive immediate assistance. We are always online from 8 am to 5 pm (EST). If you reach us after that time, we will get back to you as soon as possible. Additionally, you can contact us via email at [email protected]

Please have a look at our Refund Policy: https://zylalabs.com/terms#refund


Related APIs


You might also like