Has an @? Has a dot? Passes. fake@tempmail.com passes. typo@gmial.com passes. Dead addresses pass.
Confirms the mail server is real, the mailbox accepts mail, the domain isn’t disposable, and suggests typo corrections.
| Check | API Field | Action | Message |
|---|---|---|---|
| Disposable | disposable: "true" | Block | “Please use a permanent email address.” |
| Invalid | result: "invalid" | Block | “This email address doesn’t seem to exist.” |
| Typo | did_you_mean | Suggest | “Did you mean sarah@gmail.com?” |
| Role-based | role: "true" | Warn | “This is a shared inbox. Use a personal email?” |
| Valid | safe_to_send: "true" | Allow | Proceed normally |
How many fake emails are entering YOUR forms?
Test QEV’s API on your staging environment — 3,000 free verifications/month.
⚠ Developer review required. This code is illustrative. Validate against QEV’s actual API documentation before deploying. Never expose API keys in client-side code — use QEV’s JavaScript widget or route through your backend.
// Verify on blur — check when user leaves the field emailInput.addEventListener('blur', async () => { const email = emailInput.value; const res = await fetch( `/api/verify-email?email=${email}` // Your backend proxy ); const data = await res.json(); if (data.disposable === 'true') { showError('Please use a permanent email address.'); } else if (data.result === 'invalid') { showError('This email doesn\'t seem to exist. Check for typos?'); } else if (data.did_you_mean) { showSuggestion(`Did you mean ${data.did_you_mean}?`); } else if (data.role === 'true') { showWarning('Looks like a shared inbox. Personal email?'); } });
| Practice | Why |
|---|---|
| Check the email when the user clicks away from the field (not when they hit submit) | User can correct without losing form progress |
| Show inline messages | Next to the field, not in alerts or modals |
| Never expose API keys | Route through backend or use QEV JS widget |
| Be helpful, not hostile | “Check for typos?” converts better than “Invalid email” |
| Handle API failures gracefully | If verification times out, allow submission (don’t block) |
QEV API responds in under 1.2 sec. Fast enough for real-time form validation. 3,000 free verifications per month — enough to test on staging and cover low-traffic production forms.
3,000 free API verifications/month. Sub-1.2 sec. No credit card.
Get Your API Key →