{"id":21740871,"url":"https://github.com/whois-api-llc/node-email-verifier","last_synced_at":"2025-04-13T03:41:36.688Z","repository":{"id":26155710,"uuid":"104838915","full_name":"whois-api-llc/node-email-verifier","owner":"whois-api-llc","description":"The best possible way to verify and validate an email address.","archived":false,"fork":false,"pushed_at":"2023-03-01T09:30:51.000Z","size":155,"stargazers_count":42,"open_issues_count":4,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-02T09:42:23.608Z","etag":null,"topics":["email","email-verification","nodejs","verification","whoisxmlapi"],"latest_commit_sha":null,"homepage":"https://emailverification.whoisxmlapi.com/api","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whois-api-llc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-26T05:15:11.000Z","updated_at":"2024-12-06T10:44:18.000Z","dependencies_parsed_at":"2024-06-19T17:10:02.527Z","dependency_job_id":null,"html_url":"https://github.com/whois-api-llc/node-email-verifier","commit_stats":{"total_commits":44,"total_committers":2,"mean_commits":22.0,"dds":0.06818181818181823,"last_synced_commit":"a22aa7df6c002f982b42f4b1492ded09d71f02c0"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whois-api-llc%2Fnode-email-verifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whois-api-llc%2Fnode-email-verifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whois-api-llc%2Fnode-email-verifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whois-api-llc%2Fnode-email-verifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whois-api-llc","download_url":"https://codeload.github.com/whois-api-llc/node-email-verifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248660851,"owners_count":21141358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["email","email-verification","nodejs","verification","whoisxmlapi"],"created_at":"2024-11-26T06:15:43.943Z","updated_at":"2025-04-13T03:41:36.664Z","avatar_url":"https://github.com/whois-api-llc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-email-verifier\n\n[![NPM Version](https://img.shields.io/npm/v/email-verifier.svg?style=flat)](https://npmjs.org/package/email-verifier)\n[![NPM Downloads](http://img.shields.io/npm/dm/email-verifier.svg?style=flat)](https://npmjs.org/package/email-verifier)\n[![Build Status](https://img.shields.io/travis/whois-api-llc/node-email-verifier.svg?style=flat)](https://travis-ci.org/whois-api-llc/node-email-verifier)\n\n*The best possible way to verify and validate an email address in Node.*\n\n![Email Verifier Icon](https://github.com/whois-api-llc/node-email-verifier/raw/master/images/verify-email.png)\n\n\n## Meta\n\n- Author: Randall Degges\n- Email: r@rdegges.com\n- Twitter: [@rdegges](https://twitter.com/rdegges)\n- Site: https://www.rdegges.com\n- Status: production ready\n\nIf you'd like to read an article about how this library works, please check out\nthis blog post:\nhttps://emailverification.whoisxmlapi.com/blog/how-to-verify-an-email-address-using-nodejs\n\n\n## Prerequisites\n\nTo use this library, you'll need to create a free WhoisAPI account:\nhttps://emailverification.whoisxmlapi.com/\n\nIf you haven't done this yet, please do so now.\n\n\n## Installation\n\nTo install `email-verifier` using [npm](https://www.npmjs.org/), simply run:\n\n```console\n$ npm install email-verifier\n```\n\nIn the root of your project directory.\n\n\n## Verification Methods\n\nEmail verification is a tricky thing to do properly. There are a number of\ndifferent ways to \"verify\" an email address, and not all of them may be\nappropriate for your use case.\n\nThis library is really flexible, and allows you to pick and choose what types of\nverification are done in a granular way. Here is a list of all the different\ntypes of email verification this library handles. This list includes all of the\nlatest and greatest checks, which are fully supported.\n\nAll checking mechanisms conform to best practices, and provide confident\nverification.\n\n**Syntax Checking**: This checks the email addresses and ensures that it\nconforms to IETF standards using a complete syntactical email validation engine.\n\n**Fake Email Pattern Detection**: This checks the email address against a\npowerful built-in fake email pattern detector algorithm. The fake email pattern\ndetector is capable of detecting thousands of fake emails automatically with\nvery high accuracy.\n\n**Typo/Curse Words Check**: This checks the email address against all known\ncommon typos for most email domains. This will also detect certain curse words\npresent in the email address. This is useful if you're building an application\nwhere profanity is something you want to filter.\n\n**Mail Server Existence Check**: This checks the availability of the email\naddress domain using DNS MX records.\n\n**Mail Existence Check**: This checks if the email address really exists and can\nreceive email via SMTP connections and email-sending emulation techniques.\n\n**Catch-all Domain Email Check**: This checks to see if the email domain will\nreceive all of the email messages addressed to that domain, even if their\naddresses do not exist in the mail server. This tells you whether or not you've\nbeen given a wildcard/catch-all address, or an individual mailbox.\n\n**Disposable Email Address Check**: This checks if the email is provided by a\nknown Disposable Email Address (DEA) provider such as Mailinator, 10MinuteMail,\nGuerrillaMail and about 2000 more.\n\n\n## Usage\n\nOnce you have `email-verifier` installed, you can use it to easily verify an\nemail address. Email verification performs a number of checks to ensure a given\nemail address is actually valid.\n\nThis library gives you access to all sorts of email verification data that you\ncan use in your application in any number of ways.\n\n```javascript\nconst Verifier = require(\"email-verifier\");\n\nlet verifier = new Verifier(\"your_email_verification_api_key\");\nverifier.verify(\"r@rdegges.com\", (err, data) =\u003e {\n  if (err) throw err;\n  console.log(data);\n});\n```\n\nHere's the sort of data you might get back when running all checks at once:\n\n```json\n{\n  \"catchAll\": \"false\",\n  \"disposable\": \"false\",\n  \"dns\": \"OK\",\n  \"emailAddress\": \"r@rdegges.com\",\n  \"free\": \"false\",\n  \"mxs\": [ \"mail.protonmail.ch\" ],\n  \"smtp\": \"OK\",\n  \"validFormat\": \"OK\"\n}\n```\n\nBy default, when verifying an email address all types of verification checks\nwill be performed. This can take a while (up to two seconds), and may not be\nideal for your use case.\n\nIf you prefer to only check certain types of email verification information, you\ncan pass in your preferred checks when creating the `Verifier` object:\n\n```javascript:\nconst Verifier = require(\"email-verifier\");\n\nlet verifier = new Verifier(\"your_email_verification_api_key\", {\n  checkCatchAll: false,\n  checkDisposable: false,\n  checkFree: false,\n  validateDNS: false,\n  validateSMTP: false\n});\n```\n\nIf, for some reason, you notice that a particular email's `validateSMTP` status\nis incorrect, this usually means that the person's email provider has recently\nchanged. The email verification API services caches SMTP checks for speed\npurposes, but you can force a cache refresh by specifying the optional\n`hardRefresh` option when making a query.\n\nFor instance:\n\n```javascript\nconst Verifier = require(\"email-verifier\");\n\nlet verifier = new Verifier(\"your_email_verification_api_key\");\nverifier.verify(\"r@rdegges.com\", { hardRefresh: true }, (err, data) =\u003e {\n  if (err) throw err;\n  console.log(data);\n});\n```\n\nBy default, this library also handles retrying failed HTTP requests for you. For\ninstance: if the verification API service is currently down or having issues,\nyour request will be retried up to five consecutive times before failing.\n\nAgain: this can add more request time, and may not be what you want in all\ncases.\n\nIf you'd prefer to lower the amount of retries that this library will perform on\nyour behalf, you can pass in a `retries` option like so:\n\n```javascript\nconst Verifier = require(\"email-verifier\");\n\nlet verifier = new Verifier(\"your_email_verification_api_key\", {\n  retries: 2\n});\n```\n\n\n## Changelog\n\n0.4.0: *05-06-2018*\n\n- Adding support for the `hardRefresh` API option.\n\n0.3.0: *4-15-2018*\n\n- Updated API endpoint.\n- Switched from using username/password auth to API key auth.\n\n0.2.1: *10-18-2017*\n\n- Updating library to work with recent API changes.\n\n0.2.0: *10-18-2017*\n\n- Updating docs and repo path.\n\n0.1.0: *10-1-2017*\n\n- First release!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhois-api-llc%2Fnode-email-verifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhois-api-llc%2Fnode-email-verifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhois-api-llc%2Fnode-email-verifier/lists"}