Validate email addresses at sign-up (and catch typos like gmial.com)

A regex tells you an address looks like an email. It can't tell you the domain has no mail server, that the user typed gmial.com, or that it's a throwaway inbox. Those are the addresses that bounce your receipts and pollute your list.

The Email Address Validator runs those checks in one call and gives you a risk score you can act on: accept, ask the user to confirm, or reject.

Prefer video? · 1:21

Validate emails: typos, fake domains, disposable inboxes

Check syntax, MX records, disposable domains and typo suggestions like gmial.com → gmail.com, with a risk score.

Make the request

Send your API key in the x-api-key header. Free accounts include 1,000 calls a month.

curl -X POST https://apistack.online/api/utilities/email-address-validator/v1 \
  -H "x-api-key: $APISTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"jane.doe@gmial.com"}'
200 OK · response
{
  "success": true,
  "data": {
    "email": "jane.doe@gmial.com",
    "syntax": {
      "valid": true,
      "issues": []
    },
    "mx": {
      "valid": false,
      "error": "queryMx ENODATA gmial.com",
      "mxRecords": [],
      "count": 0
    },
    "disposable": {
      "isDisposable": false,
      "provider": null
    },
    "roleAccount": {
      "isRoleAccount": false,
      "detectedRole": null
    },
    "typoSuggestion": {
      "hasSuggestion": true,
      "suggestion": "gmail.com",
      "confidence": "high"
    },
    "riskScore": {
      "score": 60,
      "level": "high",
      "factors": [
        "No MX records",
        "Possible typo in domain",
        "Free email provider"
      ]
    },
    "isValid": false
  }
}

Response abridged: some fields (timestamps, metadata) omitted.

Use it in a sign-up form

Call the API from your server when the form is submitted (never from the browser, which would expose your key). If typoSuggestion.hasSuggestion is true, show "Did you mean jane.doe@gmail.com?" instead of rejecting outright; most typos are honest mistakes.

Decide with the risk score

A simple policy: accept low risk, ask for confirmation on medium, and block high risk or disposable addresses on free trials. Keep the thresholds in your own code so you can tune them.

Give it to your AI agent

The same API is available as an MCP tool. Add APIStack to Claude, Cursor, VS Code or any MCP client:

{
  "mcpServers": {
    "apistack": {
      "url": "https://apistack.online/api/mcp/connect",
      "headers": { "x-api-key": "YOUR_API_KEY" }
    }
  }
}

Then ask: “Is jane.doe@gmial.com a valid email address to send a receipt to?” See MCP setup for every client.

Related guides