Mail Checker API

Fast, accurate email validation & deliverability checks.

What can you do?
Cut bounce rates

Validate before you hit “Send”.

Block disposable sign-ups

Stop throwaway in registrations & marketing lists.

Improve sender reputation

Better email hygiene = higher inbox placement.

Try Live
99.9 % Uptime
1930.5ms Response
20 req/s
0.005 Credits / request

Validate Email


POST https://api.yeb.to/v1/mailchecker
ParameterTypeReq.Description
api_key string yes Your API key
email string yes Email to validate

Example

curl -X POST https://api.yeb.to/v1/mailchecker \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "email":   "[email protected]"
}'

Response Example

{
  "email": "[email protected]",
  "trusted": "high",
  "score": 7,
  "risk": "low",
  "knownProvider": true,
  "recommend": []
}
{"error":"Missing \"email\" parameter","code":422}

Response Codes

CodeDescription
200 SuccessRequest processed OK.
400 Bad RequestInput validation failed.
401 UnauthorizedMissing / wrong API key.
403 ForbiddenKey inactive or not allowed.
429 Rate LimitToo many requests.
500 Server ErrorUnexpected failure.

Validate

mailchecker 0.0050 credits

Parameters

API Key
query · string · required
Email
query · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Mail Checker API — Practical Guide

A hands-on guide to validating emails with Mail Checker API: what the endpoint does, when to use it, the parameters that actually matter, and how to act on the results to reduce bounces, catch typos, and keep your lists clean.

#What Mailchecker solves

The endpoint helps you prevent bounces, typos, and low-quality signups. Use it at signup, checkout, or list imports to assess trust and risk, and optionally suggest corrections.

#Endpoint & when to use it

#POST /v1/mailchecker — Validate Email

  • Best for: Inline form validation, CRM/ESP imports, fraud screening.
  • How it works: You send an email string; we return a quality score, trust/risk labels, provider hints, and recommendations.
  • Typical use: Client calls your backend; backend calls this endpoint and decides allow/confirm/block.

#Quick start

curl -X POST "https://api.yeb.to/v1/mailchecker" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "email": "[email protected]" }'
// JS Fetch example
fetch('https://api.yeb.to/v1/mailchecker', {
  method: 'POST',
  headers: {
    'X-API-Key': '<YOUR_API_KEY>',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({ email: '[email protected]' })
})
.then(r => r.json())
.then(console.log)
.catch(console.error);

#Parameters that actually matter

ParamTypeRequiredPractical guidance
api_key string Yes Send via server or signed edge. Avoid exposing raw keys on the client.
email string Yes Trim spaces and lowercase the domain part. Validate that it’s a single address (no lists).

#Reading & acting on responses

{
  "email": "[email protected]",
  "trusted": "high",       // high | medium | low | unknown
  "score": 7,              // 0..10 (higher is better)
  "risk": "low",           // low | medium | high
  "knownProvider": true,   // e.g., Gmail, Outlook, iCloud, Yahoo, corporate domains, etc.
  "recommend": []          // suggestions (typo fixes or safer alternatives)
}
  • trusted — overall confidence bucket. Use this for quick allow/step-up decisions.
  • score — numeric quality (0–10). Great for thresholds (e.g., ≥6 allow, 3–5 require confirm, <3 block).
  • risk — conservative view of potential bounce/misuse.
  • knownProvidertrue for common mailbox providers; false could indicate typos or private MX.
  • recommend[] — suggested corrections (e.g., [email protected] if user typed gmal.com).

#Common scenarios

// Typo correction
{
  "email": "[email protected]",
  "trusted": "medium",
  "score": 5,
  "risk": "medium",
  "knownProvider": false,
  "recommend": ["[email protected]"]
}
// Disposable or risky domain
{
  "email": "[email protected]",
  "trusted": "low",
  "score": 2,
  "risk": "high",
  "knownProvider": false,
  "recommend": []
}

#Recommended actions

  • Allow immediately: trusted = high and risk = low, or score ≥ 7.
  • Step-up / confirm: score 3–6 → require email confirmation or show “Is this correct?” with recommend[].
  • Block or require alternate contact: score < 3 or risk = high → don’t send transactional mail to it.
  • Never silently “fix”: Offer suggested corrections; let the user choose.

#Practical recipes

  • Inline signup: On blur, validate; if recommend[] not empty, present a one-click replace.
  • Checkout fraud hardening: For new accounts with risk = high, add OTP or card 3DS challenge.
  • List import: Batch through your backend; quarantine score < 3 rows and auto-mail confirm for 3–5.

#Troubleshooting & field notes

  1. 422 “Missing email”: Send a non-empty email string.
  2. 401 Unauthorized: Check your X-API-Key header and account credits.
  3. Edge cases: Role accounts (e.g., info@) and private MX can be valid but lower trust; use the score threshold instead of hard-blocking.
  4. Rate limits: Debounce form inputs; validate on blur/submit, not every keystroke.

#API Changelog

2025-10-20
Normalized trust buckets (trusted: high/medium/low/unknown) and risk labels (risk: low/medium/high). Improved typo suggestions in recommend[] for common providers.
2025-10-11
Stabilized score scale to 0–10 and aligned thresholds for allow/confirm/block recipes.
2025-10-01
Initial public release of /mailchecker with provider detection and baseline recommendations.

Frequently Asked Questions

It uses multi-step DNS, MX and heuristics to approximate deliverability without SMTP banners, keeping it fast and safe.

No. We hash emails in flight for analytics; the plain address is never written to disk.

Yes. Every request, even those resulting in errors, consumes credits. This is because your credits are tied to the number of requests, regardless of success or failure. If the error is clearly due to a platform problem on our end, we will restore the affected credits (no cash refunds).

Contact us at [email protected]. We take feedback seriously—if your bug report or feature request is meaningful, we can fix or improve the API quickly and grant you 50 free credits as a thank you.

It depends on the API and sometimes even on the endpoint. Some endpoints use data from external sources, which may have stricter limits. We also enforce limits to prevent abuse and keep our platform stable. Check the docs for the specific rate limit for each endpoint.

We operate on a credit system. Credits are prepaid, non-refundable units you spend on API calls and tools. Credits are consumed FIFO (oldest first) and are valid for 12 months from the purchase date. The dashboard shows each purchase date and its expiry.

Yes. All purchased credits (including fractional balances) are valid for 12 months from purchase. Unused credits automatically expire and are permanently deleted at the end of the validity period. Expired credits cannot be restored or converted to cash or other value. Transitional rule: credits bought before 22 Sep 2025 are treated as purchased on 22 Sep 2025 and expire on 22 Sep 2026 (unless an earlier expiry was stated at purchase).

Yes—within their validity window. Unused credits remain available and roll over month-to-month until they expire 12 months after purchase.

Credits are non-refundable. Only buy what you need—you can always top up later. If a platform-side error causes a failed charge, we may restore the affected credits after investigation. No cash refunds.

Prices are set in credits, not dollars. Each endpoint lists its own cost—see the “Credits / request” badge above. You’ll always know exactly what you’re spending.
← Back to APIs