I was building a signup form for a side project. I needed to validate emails. Not just check if there is an @ symbol — actually check if the email can receive mail.
Most free validators only check format. That is not enough. Someone can type fake@notarealdomain.xyz and pass a format check easily.
So I built MailGuard API. It does real checks.
What it does for each email:
Checks the format
Does a DNS lookup to see if the domain exists
Checks MX records to see if the domain can actually receive email
Detects disposable/temporary email domains (I have a list of 500+ of them)
Detects role-based emails like admin@, info@, support@ — useful if you are building a mailing list
Returns a quality score from 0 to 100
Returns a risk level: low, medium, or high
There is also a bulk endpoint. You send up to 50 emails in one request and get back a summary with deliverability rate.
Example response for a real email:
json{
"email": "test@gmail.com",
"is_valid": true,
"quality_score": 100,
"risk_level": "low",
"suggestion": "Safe to use"
}
Example response for a disposable email:
json{
"email": "fake@mailinator.com",
"is_valid": false,
"quality_score": 60,
"risk_level": "medium",
"risk_reasons": ["Disposable/temporary email domain"],
"suggestion": "Use with caution"
}
I built it with FastAPI and Python. No external API — just DNS lookups and logic. Hosted on Render free tier. Total cost is zero.
Free tier is 100 requests per month, no credit card needed.
Link: https://rapidapi.com/adhikariparzival/api/mailguard-api
If something is wrong or you need a feature, tell me in the comments. I am still learning and I will try to fix or add it.
Top comments (0)