78trust / 100

Email Verify

by Factline in Email & messaging

x402 APIPassing, checked 30 min ago

Use when you need to know if an email address is real and deliverable before signup, outreach or onboarding: syntax, live MX routing, 9,000+ disposable domains, role addresses, free providers, typo suggestions (gmial.com to gmail.com) and SPF/DMARC. One verdict: deliverable, risky or undeliverable.

GET https://factline.dev/v1/email/verify

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
360 ms typical, 726 ms slowest 5%
Last check
30 min ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://factline.dev/v1/email/verify?email=jan.jansen%40gmial.com"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ffactline.dev%2Fv1%2Femail%2Fverify
const res = await pay("https://factline.dev/v1/email/verify?email=jan.jansen%40gmial.com");
console.log(await res.json());

Example input

{
  "email": "[email protected]"
}

Example output

{
  "disposable": true,
  "domain": "gmial.com",
  "domain_security": {
    "dmarc_policy": null,
    "spf": false
  },
  "email": "[email protected]",
  "explain": {
    "disposable_list": "disposable-email-domains blocklist (CC0), 2026-10-07",
    "limits": "No SMTP mailbox probe: this confirms the domain can receive mail, not that this exact mailbox exists.",
    "verdict": "deliverable: domain receives mail and nothing suspicious; deliverable_role: same but a shared inbox; risky: disposable domain or likely typo; undeliverable: bad syntax or the domain cannot receive mail."
  },
  "free_provider": false,
  "mail_routing": {
    "accepts_mail": true,
    "domain_exists": true,
    "implicit_mx": true,
    "mx": [],
    "null_mx": false
  },
  "reasons": [
    "disposable (throwaway) email domain",
    "possible typo of gmail.com"
  ],
  "role_account": false,
  "source": "DNS via Cloudflare 1.1.1.1 (DNS-over-HTTPS); disposable-email-domains (CC0)",
  "suggestion": "[email protected]",
  "syntax_valid": true,
  "verdict": "risky"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
30 min agoPassed402228 ms$0.002
5 h agoPassed402812 ms$0.002
8 h agoPassed402211 ms$0.002
12 h agoPassed402322 ms$0.002
15 h agoPassed402360 ms$0.002
18 h agoPassed402726 ms$0.002
24 h agoPassed402479 ms$0.002