Email Validation Api
Pricing
from $1.00 / 1,000 email-validations
Email Validation Api
Validate email addresses at scale with enterprise-grade accuracy. This API performs comprehensive email verification including syntax validation, DNS/MX record checks, disposable email detection, and optional SMTP mailbox verification.
Pricing
from $1.00 / 1,000 email-validations
Rating
0.0
(0)
Developer

Gheware Tech
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Validate email addresses at scale with enterprise-grade accuracy. This API performs comprehensive email verification including syntax validation, DNS/MX record checks, disposable email detection, and optional SMTP mailbox verification.
Stop wasting money on invalid emails. Whether you're cleaning a marketing list, validating signups, or qualifying leads, this API gives you the data you need to make informed decisions.
Why Use This Actor?
- Save Money: Reduce bounce rates and protect your sender reputation
- Increase Conversions: Focus on real, deliverable email addresses
- Prevent Fraud: Detect disposable and temporary emails at signup
- Scale Easily: Process up to 10,000 emails per batch
- Get Insights: Detailed risk scoring and deliverability predictions
Features
| Feature | Description |
|---|---|
| Syntax Validation | RFC 5322 compliant email format checking |
| DNS MX Lookup | Verify domain has valid mail exchange servers |
| Disposable Detection | 150K+ known temporary email domains (tempmail, guerrillamail, etc.) |
| Role-Based Detection | Identify generic emails (info@, admin@, support@, sales@) |
| Free Provider Detection | Detect Gmail, Yahoo, Outlook, ProtonMail, etc. |
| Typo Suggestions | Smart suggestions for common typos (gmial.com โ gmail.com) |
| SMTP Verification | Optional deep mailbox verification |
| Risk Scoring | 0-100 score with actionable risk levels |
| Catch-All Detection | Identify domains that accept all emails |
Input
{"emails": ["john.doe@gmail.com","contact@company.com","test@tempmail.com"],"enableSmtpCheck": false,"timeout": 10000,"maxConcurrency": 10}
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
emails | array | Yes | - | List of email addresses to validate (max 10,000) |
enableSmtpCheck | boolean | No | false | Enable SMTP mailbox verification for higher accuracy |
timeout | number | No | 10000 | Timeout per SMTP connection in milliseconds |
maxConcurrency | number | No | 10 | Number of emails to validate in parallel |
Output
Each email returns a comprehensive validation result:
{"email": "john.doe@gmail.com","valid": true,"syntaxValid": true,"domain": "gmail.com","mxRecords": ["gmail-smtp-in.l.google.com", "alt1.gmail-smtp-in.l.google.com"],"mxValid": true,"deliverable": "yes","deliverableConfidence": "high","disposable": false,"roleBased": false,"freeProvider": true,"catchAll": false,"suggestion": null,"riskScore": 10,"riskLevel": "low","smtpCheck": {"performed": false,"success": false,"smtpResponse": null,"error": null},"checksPerformed": ["syntax", "disposable_check", "role_check", "free_provider_check", "mx_lookup", "typo_check"],"validationTimeMs": 23}
Output Fields Explained
| Field | Type | Description |
|---|---|---|
valid | boolean | Overall validity (syntax + MX + not disposable) |
syntaxValid | boolean | Email format is RFC 5322 compliant |
domain | string | Extracted domain part of the email |
mxRecords | array | Mail exchange server records found |
mxValid | boolean | Domain has valid MX records |
deliverable | string | Deliverability status: yes, no, risky, unknown |
deliverableConfidence | string | Confidence level: high, medium, low |
disposable | boolean | Is a temporary/throwaway email service |
roleBased | boolean | Is a generic role email (admin@, info@, etc.) |
freeProvider | boolean | Is from a free email provider |
catchAll | boolean | Domain accepts all email addresses |
suggestion | string | Typo correction suggestion if detected |
riskScore | number | Risk score from 0 (safe) to 100 (risky) |
riskLevel | string | Risk category: low, medium, high, critical |
Risk Levels
| Level | Score | Recommendation |
|---|---|---|
| Low | 0-20 | Safe to use - high quality email |
| Medium | 21-40 | Use with caution - may have issues |
| High | 41-60 | Likely problematic - consider removing |
| Critical | 61-100 | Do not use - will likely bounce or cause issues |
Use Cases
Email List Cleaning
Clean your marketing lists before campaigns to improve deliverability and protect sender reputation.
Lead Qualification
Score incoming leads based on email quality. Role-based emails and free providers may indicate lower intent.
Signup Validation
Prevent fake registrations by blocking disposable emails and validating in real-time.
CRM Hygiene
Regularly validate your contact database to maintain data quality.
Marketing Automation
Integrate with your marketing stack to automatically filter low-quality emails.
API Integration
Synchronous Request
curl -X POST "https://api.apify.com/v2/acts/ghewaretech~email-validation-api/run-sync-get-dataset-items" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"emails": ["test@gmail.com", "user@tempmail.com"],"enableSmtpCheck": false}'
Asynchronous Request
curl -X POST "https://api.apify.com/v2/acts/ghewaretech~email-validation-api/runs" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"emails": ["email1@example.com", "email2@example.com"]}'
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('ghewaretech/email-validation-api').call({emails: ['test@gmail.com', 'user@company.com'],enableSmtpCheck: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("ghewaretech/email-validation-api").call(run_input={"emails": ["test@gmail.com", "user@company.com"],"enableSmtpCheck": False,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Technical Details
- Runtime: Node.js 20 with TypeScript
- SDK: Apify SDK v3
- Email Parsing: RFC 5322 compliant validation
- Disposable Database: 150K+ domains, regularly updated
- Typo Detection: Levenshtein distance algorithm
- Performance: Concurrent processing with configurable parallelism
- Memory: 512MB - 2GB depending on batch size
Frequently Asked Questions
Q: How accurate is the validation? A: Basic validation (syntax + DNS + disposable) is highly accurate. SMTP verification adds additional confidence but may have false negatives due to greylisting.
Q: Can I validate emails in real-time? A: Yes, use the synchronous API endpoint for real-time validation. Response time is typically under 1 second per email.
Q: What's the difference with and without SMTP check? A: Without SMTP, we verify the domain can receive emails. With SMTP, we actually connect to the mail server to verify the specific mailbox exists.
Q: How often is the disposable domain list updated? A: The list is updated with each actor version release, typically incorporating new disposable domains found in the wild.
Support
- GitHub: brainupgrade-in
- LinkedIn: company/brains-upgrade
- YouTube: @GhewareDevOpsAI
Built by Gheware for the Apify $1M Challenge