Response times, accuracy rates, and catch-all behavior vary significantly across providers. This post dissects real API performance data, explains what 99.9% accuracy actually measures, and gives procurement teams a framework for evaluating email verification APIs beyond the marketing headline.
Every email verification provider claims 99.9% accuracy and sub-100ms response times. The differences that matter for procurement and engineering decisions live in the details: catch-all handling, retry logic, SMTP timeout behavior, and how accuracy is measured.
Most email verification buyers evaluate providers by comparing marketing numbers: accuracy percentages, response time claims, and price-per-lookup. This post shows what those numbers mean in practice, how to test them yourself, and which metrics actually predict real-world performance. All benchmarks use the email-check.app API with its verified endpoint at api.email-check.app.
Email-check.app claims 99.9% accuracy for deliverable emails. This number is measured against emails that have confirmed mailboxes — addresses where an SMTP RCPT TO command returns 250 OK. The metric does not include catch-all domains, greylisted addresses, or addresses behind aggressive spam filters that time out.
Why this distinction matters: a provider that tests accuracy only against clearly deliverable addresses (Gmail, Outlook, corporate domains with standard SMTP) will show higher numbers than one that tests against a representative sample including catch-alls, role-based addresses, and recently registered domains. When comparing providers, ask what the test set included.
The email-check.app API averages 25ms response time for a single verification call. This is the median (p50) measurement for a request that includes format validation, MX lookup, and SMTP verification. The p99 latency is higher — typically under 200ms — because SMTP connections to slow or rate-limiting mail servers take longer.
Response time varies by verification depth:
# Response time by verification depth (approximate)
# Format + MX only: 5-15ms
# Format + MX + SMTP: 15-50ms (typical)
# Format + MX + SMTP + extras: 20-80ms
# (extras = name detection, domain age, typo check)
# Real API call with all features enabled
curl -X GET "https://api.email-check.app/v1-get-email-details" \
-H "accept: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-G \
-d "email=sales@acme-corp.com" \
-d "verifyMx=true" \
-d "verifySmtp=true" \
-d "detectName=true" \
-d "suggestDomain=true" \
-d "checkDomainAge=true" \
-d "timeout=10000"
# Response structure
{
"email": "sales@acme-corp.com",
"validFormat": true,
"validMx": true,
"validSmtp": true,
"isDisposable": false,
"isFree": false,
"detectedName": {
"firstName": null,
"lastName": null,
"confidence": 0
},
"domainSuggestion": null,
"domainAge": {
"ageInDays": 1247,
"createdDate": "2022-09-15T00:00:00Z",
"isValid": true
},
"score": 92
}The score field (0-100) provides a composite quality rating. Scores above 80 indicate a high-confidence deliverable address. Scores between 40-80 suggest uncertainty — catch-all domains, greylisted addresses, or role-based accounts. Below 40 indicates likely undeliverable.
Catch-all domains accept all emails regardless of whether the mailbox exists. Common examples include large enterprise domains configured to accept everything, Google Workspace domains with catch-all routing, and some hosting providers. When an SMTP RCPT TO returns 250 OK for every address, the provider cannot determine if the specific mailbox exists.
Different providers handle this differently:
validSmtp: truebut the status is "accept_all" rather than "deliverable". Downstream systems can decide how to treat these — some teams send to accept_all addresses, others exclude them.For B2B lists, 15-30% of addresses may hit catch-all domains. How your provider handles them directly impacts how many contacts you can safely email. If you reject all catch-alls, you lose real contacts. If you accept them all, you add bounce risk. The right approach depends on your tolerance for false negatives versus false positives.
Greylisting is an anti-spam technique where the mail server temporarily rejects the first delivery attempt with a 450 response, then accepts retries from the same IP. Most email verification APIs, including email-check.app, handle this by retrying the SMTP connection after a short delay.
The practical impact: the first verification request to a greylisting server may return "unknown" or time out. A subsequent request to the same email may return "deliverable." This means verification results are not always deterministic on the first attempt. For bulk validation, this is handled with retry queues. For real-time signup validation, the result on the first attempt is what you get.
Email-check.app detects 5,000+ disposable email domains. Detection is based on a maintained domain list rather than heuristic analysis. The API returns isDisposable: true for any address on a known temporary or throwaway domain (Mailinator, Yopmail, Guerrilla Mail, and thousands more).
A limitation: new disposable services appear regularly. If a disposable domain was registered after the last list update, it may not be caught. Teams with high fraud exposure should combine disposable detection with other signals: the domainAge field (domains under 30 days old are higher risk), isFree flag, and the composite score.
The suggestDomainfeature detects common domain typos and returns a correction suggestion. When a user types "john@gmial.com", the API returns:
curl -X GET "https://api.email-check.app/v1-get-email-details" \
-H "accept: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-G -d "email=john@gmial.com" -d "suggestDomain=true"
# Response (abbreviated)
{
"email": "john@gmial.com",
"validMx": false,
"validSmtp": false,
"validFormat": true,
"domainSuggestion": {
"original": "gmial.com",
"suggested": "gmail.com",
"confidence": 0.95
},
"score": 5
}The confidence field (0-1) indicates how certain the suggestion is. Corrections with confidence above 0.8 are reliable enough to apply automatically in signup forms. Lower confidence suggestions should be presented to the user for confirmation.
When evaluating email verification APIs, test against a dataset that represents your actual traffic. Do not rely on the provider's self-reported benchmarks. Here is a testing framework:
| Test Category | What to Measure | Why It Matters |
|---|---|---|
| Known valid emails | % returned as deliverable | Baseline accuracy — should be near 100% |
| Known invalid emails | % returned as undeliverable | False negative rate — critical for fraud prevention |
| Catch-all domains | How the status is labeled | Impacts 15-30% of B2B lists |
| Disposable domains | % detected, including new services | Critical for signup screening |
| Role-based addresses | % correctly identified | Impacts B2B lead quality scoring |
| Domain typos | Suggestion accuracy and confidence | Recovers 10-15% of mistyped signups |
| Response time p50 | Median latency in ms | Determines suitability for real-time flows |
| Response time p99 | 99th percentile latency | Determines tail risk in signup forms |
| Consistency | Same result on repeated calls | Indicates deterministic verification logic |
Build a test set of 200-500 emails that represents your real traffic mix. Include known valid addresses from multiple providers (Gmail, Outlook, Yahoo, corporate domains), known invalid addresses, catch-all domain addresses, disposable addresses, role-based addresses, and addresses with common typos. Run this set through each provider you are evaluating and compare results.
Email-check.app pricing starts at $6.99/month for 6,000 credits — approximately $0.00117 per verification. The Business plan at $99.99/month includes 145,000 credits at $0.00069 per verification. Credits never expire on pay-as-you-go, and monthly plans reset each billing cycle.
The effective cost per verification depends on how you use the API. If you verify every email at signup (real-time) and also run bulk validation before campaigns (batch), your total volume determines the right plan. Compare providers by calculating: (monthly cost) / (total verifications needed per month). Include overage pricing in your calculation — some providers charge significantly more per verification once you exceed plan limits.
We recommend testing each provider against your own data set rather than relying on self-reported numbers. The email-check.app API returns structured results with validSmtp,validMx, validFormat, and a composite score that let you see the reasoning behind each result, making accuracy easier to audit.
The 25ms average response time is fast enough for synchronous signup flows. For best results, call the API on form submission (before creating the account) and use the isDisposable,score, and domainSuggestion fields to make immediate accept, reject, or correct decisions.
Catch-all addresses return validSmtp: truebut the overall status is "accept_all". In bulk workflows, you can segment these separately — send to confirmed deliverable addresses first, then decide on a case-by-case basis whether to include accept_all addresses in your campaign.
The API processes individual requests. For bulk validation, you can upload CSV files through the dashboard or build batch processing in your application using concurrent API calls with rate limiting (100+ requests per second supported).
Use this matrix to compare email-check.app against other providers you are evaluating. Each row represents a testable claim, not a marketing number.
| Capability | Email-Check.app | What to Test |
|---|---|---|
| SMTP Verification | Included | RCPT TO command with configurable timeout |
| MX Record Check | Included | DNS MX lookup, returns boolean |
| Disposable Detection | 5,000+ domains | Test new disposable services not in the list |
| Typo Correction | With confidence | Common domain typos (gmial, yaho, hotmal) |
| Name Extraction | With confidence | Test john.smith@ vs info@ addresses |
| Domain Age | Included | Days since registration, creation date |
| Risk Score | 0-100 composite | Consistency across repeated calls |
| Free Provider Detection | Included | Gmail, Yahoo, Outlook, etc. |
| Role-Based Detection | Implicit via name | info@, sales@, admin@ pattern matching |
| Response Time (p50) | 25ms | Test from your infrastructure, not the provider side |
Run your own accuracy benchmarks against email-check.app. Plans start at $6.99/month with 6,000 credits, or test individual emails on the live demo page before signing up.