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.comgmail.com. You can use this to build a "Did you mean?" prompt in your signup form with a single API 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.