Commercial package and licensing guide

Email Validator JS for Commercial Node.js Projects

Review the package capabilities, install commands, and pricing in one place when you need Email Validator JS inside an internal tool, shipped product, or customer-facing workflow.

GitHubNPM

Package Highlights

RFC 5321 Compliant

Full compliance with RFC 5321 email validation standards for maximum accuracy

MX Record & SMTP Verification

Real-time domain MX record validation and SMTP connection testing with automatic retry

Name Detection

Extract first and last names from email addresses with confidence scoring

Domain Typo Suggestions

Domain typo suggestions to recover common misspellings before invalid addresses are stored

WHOIS Domain Intelligence

Domain age verification and registration status checking with 1-hour caching

Advanced Email Detection

Identify disposable, consumer, and role-based email patterns with reusable package helpers

Installation

NPM
npm install @emailcheck/email-validator-js
Yarn
yarn add @emailcheck/email-validator-js

Code Examples

Basic Usage

import { verifyEmail } from '@emailcheck/email-validator-js';

const result = await verifyEmail({
 emailAddress:'user@example.com',
 verifyMx: true,
 verifySmtp: true,
 timeout: 3000
});

console.log(result);
// {
// validFormat: true,
// validMx: true,
// validSmtp: true
// }

Batch Email Verification

import { verifyEmailBatch, verifyEmailDetailed } from '@emailcheck/email-validator-js';

// Batch verification for multiple emails
const emails = [
'valid@example.com',
'invalid@fake-domain.xyz',
'disposable@tempmail.com',
'user@gmail.com'
];

// Parallel batch processing
const results = await verifyEmailBatch({
 emails: emails,
 verifyMx: true,
 verifySmtp: true,
 concurrency: 5 // Process 5 emails simultaneously
});

console.log(results);
// Returns array of validation results for each email

// Detailed verification with error codes
const detailed = await verifyEmailDetailed({
 emailAddress:'user@example.com',
 verifyMx: true,
 verifySmtp: true,
 timeout: 5000
});

console.log(detailed.errorCode); // Specific error code for debugging
console.log(detailed.errorMessage); // Human-readable error message

Advanced Features

import { verifyEmail, extractNameFromEmail, suggestDomainCorrection, getWhoisInfo } from '@emailcheck/email-validator-js';

// Use advanced features like name detection and domain suggestions
const advancedValidation = async (email: string) => {
 // Extract name from email with confidence score
 const nameInfo = extractNameFromEmail(email);
 console.log(`Name detected: ${nameInfo.firstName} ${nameInfo.lastName} (confidence: ${nameInfo.confidence})`);

 // Get domain typo suggestions if misspelled
 const suggestion = await suggestDomainCorrection(email);
 if (suggestion.suggestedDomain) {
 console.log(`Did you mean ${suggestion.suggestedDomain}? (confidence: ${suggestion.confidence}%)`);
 }

 // Check domain age and registration with WHOIS
 const domainInfo = await getWhoisInfo(email.split('@')[1]);
 console.log(`Domain age: ${domainInfo.age} days`);
 console.log(`Registration status: ${domainInfo.status}`);

 // Full validation with all checks
 const result = await verifyEmail({
 emailAddress: email,
 verifyMx: true,
 verifySmtp: true,
 checkDisposable: true,
 checkFree: true,
 timeout: 3000
 });

 return {
 valid: result.valid,
 name: nameInfo,
 suggestion: suggestion.suggestedDomain,
 domainInfo: domainInfo,
 details: result
 };
};

React Form Integration

// Complete form validation with UI feedback
const EmailValidationForm = () => {
 const [email, setEmail] = useState('');
 const [validation, setValidation] = useState(null);
 const [loading, setLoading] = useState(false);

 const validateEmail = async () => {
 setLoading(true);
 try {
 const detailed = await verifyEmailDetailed({
 emailAddress: email,
 verifyMx: true,
 verifySmtp: true
 });

 setValidation({
 valid: detailed.validFormat && detailed.validMx,
 format: detailed.validFormat,
 mx: detailed.validMx,
 smtp: detailed.validSmtp,
 errorCode: detailed.errorCode,
 errorMessage: detailed.errorMessage
 });
 } catch (error) {
 setValidation({
 valid: false,
 errorMessage: error.message
 });
 }
 setLoading(false);
 };

 return (
 <div className="email-validator">
 <input
 type="email"
 value={email}
 onChange={(e) => setEmail(e.target.value)}
 placeholder="Enter email to validate"
 />
 <button onClick={validateEmail} disabled={loading}>
 {loading ?'Validating...' :'Validate Email'}
 </button>

 {validation && (
 <div className="results">
 {validation.valid ? (
 <div className="success">
 ✅ Valid Email
 <p>Format: {validation.format ?'✓' :'✗'}</p>
 <p>MX: {validation.mx ?'✓' :'✗'}</p>
 <p>SMTP: {validation.smtp ?'✓' :'✗'}</p>
 </div>
 ) : (
 <div className="error">
 ❌ Invalid Email
 {validation.errorMessage && (
 <p>Error: {validation.errorMessage}</p>
 )}
 {validation.errorCode && (
 <p>Code: {validation.errorCode}</p>
 )}
 </div>
 )}
 </div>
 )}
 </div>
 );
};

Use Cases

Clean imported email lists before campaigns and migrations

Protect signup forms from spam and fake registrations

Reduce bounce rates in marketing automation platforms

Enhance marketing IP reputation with clean email lists

Validate bulk email lists with concurrent batch processing

Prevent disposable emails in subscription services

Ensure data quality in CRM and customer databases

Optimize transactional email deliverability

Comply with email marketing best practices

Save costs by removing invalid emails before sending

Performance & Reliability

Node.js

Designed for application and internal-tool workflows

Batch

Concurrent processing for list-validation jobs

1 Hour

WHOIS cache TTL

Parallel

Batch processing

API Reference

verifyEmail(options)

Main validation function that performs comprehensive email verification.

Options:

  • emailAddress: string - Email to validate
  • verifyMx: boolean - Check MX records (default: true)
  • verifySmtp: boolean - Check SMTP connection (default: false)
  • timeout: number - Connection timeout in ms (default: 10000)

verifyEmailDetailed(options)

Advanced verification with detailed error codes and messages for debugging.

verifyEmailBatch(options)

Concurrent batch email verification with configurable parallelism.

extractNameFromEmail(email)

Extract first and last names from email addresses with confidence scoring.

suggestDomainCorrection(email)

Suggest corrections for misspelled domains before invalid addresses reach production systems.

getWhoisInfo(domain)

Get domain age and registration status through WHOIS lookup with 1-hour caching.

isDisposableEmail(email)

Check if email address is from a disposable/temporary email provider.

isFreeEmail(email)

Check whether an address uses a common consumer mailbox provider such as Gmail or Yahoo.

Technical Details

Advanced Features

  • RFC 5321 compliant email validation
  • Name extraction with confidence scoring
  • Domain typo suggestions for common misspellings
  • WHOIS lookup with 1-hour caching
  • Automatic retry for transient failures
  • Extensible with custom detection methods

Developer Experience

  • Full TypeScript support (>= 4.0)
  • Node.js >= 12.0 compatibility
  • Comprehensive documentation
  • Production-ready with enterprise support
  • Regular updates and maintenance

Simple, Transparent Pricing

Choose the perfect plan for your validation needs. All plans include full API access, TypeScript support, and regular updates.

Startup

Perfect for small businesses and MVPs

$49/month
  • Up to 100,000 validations/month
  • All validation features
  • Email support
  • Commercial use license
Get Started
MOST POPULAR

Business

For growing companies with higher volume

$149/month
  • Up to 500,000 validations/month
  • All validation features
  • Priority email support
  • Commercial use license
  • Bulk validation optimization
Get Started

Enterprise

For large-scale applications

$399/month
  • Unlimited validations
  • All validation features
  • Priority support
  • Commercial use license
  • Custom integration support
  • Commercial onboarding support
Contact Sales

One-Time License

Perpetual license for a single product - no recurring fees

$2,999

one-time payment

Purchase License

Licensing Terms

Community Edition

This library is distributed under the Business Source License (BSL) 1.1. It can be used in these contexts:

  • Non-production environments
  • Development and testing
  • Open source projects
  • Educational purposes

Commercial License Required For:

  • Production use in commercial applications
  • SaaS products and services
  • Revenue-generating projects
  • Enterprise deployments

Questions about licensing? Contact us at sales@email-check.app