Quick start
Validate your first email in under a minute. Get an API key, copy a snippet, and see results.
1. Get your API key
Sign up at mailsentry.dev/signup — free, no credit card. Then go to API Keys in your dashboard and create a new key.
Your key starts with ms_live_. Copy it immediately — you won't see the full key again.
2. Make your first call
Send a POST request to the verify endpoint with your email and key:
curl -X POST https://mailsentry.dev/api/v1/verify \
-H "Content-Type: application/json" \
-H "X-API-Key: ms_live_your_key_here" \
-d '{"email": "test@gmail.com"}'
Or if you prefer Node.js:
import MailSentry from "@mailsentry/node"
const client = new MailSentry({ apiKey: "ms_live_your_key_here" })
const result = await client.verify("test@gmail.com")
console.log(result.score, result.verdict)
We have SDKs for Node.js, Python, Go, PHP, and Ruby.
3. Read the response
You'll get back a JSON object with everything you need. Try a typo — it's the fastest way to see the API in action:
curl -X POST https://mailsentry.dev/api/v1/verify \
-H "Content-Type: application/json" \
-H "X-API-Key: ms_live_your_key_here" \
-d '{"email": "john@gmial.com"}'
{
"email": "john@gmial.com",
"score": 15,
"verdict": "invalid",
"recommendation": "Do not send",
"verification_level": "confirmed",
"verification_depth": "standard",
"warning": "Possible typo detected",
"checks": {
"syntax": { "valid": true, "normalized": "john@gmial.com", "plus_alias": null },
"mx_records": { "valid": false, "records": [] },
"disposable": { "is_disposable": false, "list_updated": null },
"role_based": { "is_role_based": false, "role_type": null },
"free_provider": { "is_free": false, "name": null, "is_business": null, "mx_provider": null },
"typo": { "has_typo": true, "suggestion": "john@gmail.com" },
"smtp": { "valid": false, "catch_all": false, "mx_host": null, "greylisted": false, "catch_all_confidence": null },
"gibberish": { "is_gibberish": false, "score": 100, "pattern": null },
"spam_trap": { "is_potential_trap": false, "type": null, "confidence": null },
"domain_age": { "domain_created": null, "age_days": null, "risk_flag": null },
"abuse": { "is_toxic": false, "type": null }
},
"response_time_ms": 38
}
The typo check caught it — gmial.com → gmail.com. You can use this to build a "Did you mean?" prompt in your signup form with a single API call.
- score — 0 to 100. Higher is safer. See Quality scores & verdicts.
- verdict —
valid,caution,risky, orinvalid. - checks — detailed results from all 11 validation layers. Every layer runs on every call.
4. Test without burning credits
Use Sandbox mode to test your integration with mock responses. Add the X-Sandbox: true header and use addresses ending in @test.mailsentry.dev. No credits consumed.