Services like ZeroBounce do real SMTP-level deliverability scoring: they can tell you whether a mailbox actually exists, catch spam traps, and grade sender reputation. That's genuinely useful for cold-email senders protecting their domain reputation, and it's priced accordingly — published tiers run roughly $0.0195/credit at 2,000 credits down to $0.0032/credit at 1 million (check zerobounce.net/pricing for current numbers).
A lot of signup forms don't need that depth. They need: is this a real email format, does the domain have mail servers, and is it a disposable/temp-mail address someone's using to dodge your "verify your email" step. That's a much cheaper check to run, and it's what AxioAPI's email validation endpoint does — 1 credit (~$0.001) per validation, which is roughly 3–20x cheaper per check than the ZeroBounce tiers above. To be clear about the trade-off: this is syntax + MX + disposable-domain detection, not SMTP mailbox-existence verification — if you need to know whether a specific inbox actually accepts mail, a deliverability-focused service is still the right tool.
The endpoint
POST https://axioapi.com/api/v1/email/validate
Content-Type: application/json
{ "email": "someone@example.com" }
const res = await fetch('https://axioapi.com/api/v1/email/validate', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.AXIOAPI_KEY}`,
'Content-Type': 'application/json',
Accept: 'application/json',
},
body: JSON.stringify({ email: 'someone@example.com' }),
});
const { data } = await res.json();
console.log(data);
// { email, domain, is_disposable, is_valid_format, has_mx, ... }
Malformed addresses are rejected before any lookup happens — you get is_valid_format: false and the rest of the fields come back null instead of wasting a check.
Batch validation for signup lists
If you're cleaning an existing list rather than validating at signup time, there's a batch route:
const res = await fetch('https://axioapi.com/api/v1/email/validate-batch', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.AXIOAPI_KEY}`,
'Content-Type': 'application/json',
Accept: 'application/json',
},
body: JSON.stringify({ emails: ['a@example.com', 'b@tempmail.io', 'not-an-email'] }),
});
const { data } = await res.json();
data.items.forEach((item) => console.log(item));
Each failed lookup in a batch comes back as { email, error: 'service_unavailable' } instead of failing the whole batch — one bad upstream response doesn't block the rest of the list.
Where this fits
Use this at the signup form to block disposable addresses and catch typos before you send a confirmation email nobody receives. If you're running cold outreach at scale and protecting sender reputation is the actual goal, pair it with (or use instead) a deliverability-grade service — that's a different problem than "is this a real-looking, non-disposable address."
Try it without an account first on the free email validator tool.
Top comments (0)