Skip to content
Docs

How-to

Verify one email address in the dashboard or with the API, choose between fast and full mode, and use verification to catch bad addresses at sign-up.

Updated Oct 1, 2026

This guide shows how to check one email address, either by hand in the dashboard or from your code with the API. It also covers using verification in a sign-up form to stop typos and throwaway addresses before they reach your list.

Before you begin

  • Each verification costs 5 credits. Check your balance in the sidebar or in WorkspaceBilling.
  • For the API, use an API key with Full Access. Sending-only keys can’t verify addresses.

Fast and full mode

Mode Checks Use it for
fast (default) Syntax, MX records, domain age, disposable, role, free-provider and random-looking addresses Sign-up forms and anything a person is waiting on.
full Everything in fast, plus a connection to the recipient’s mail server to check the mailbox: deliverable, disabled, inbox full and catch-all Cleaning addresses before an important send, when a few extra seconds don’t matter.

Both modes cost the same. full takes longer because it talks to the recipient’s mail server, which can be slow or refuse to answer. Some large providers block these checks, so full can’t always confirm a mailbox. See Verification results for what each check means.

Verify an address

  1. Open Email Verification. Go to Email VerificationEmails and select Verify Email.

  2. Enter the address. Type it into Email and select Verify Email. The dashboard uses fast mode.

  3. Open the result. The address appears in the list with its Status, Result, Risk, Score, Created date and days until it’s Expiring. Select it to see every individual check, such as Valid Syntax, Disposable, Role Account and Has MX Records.

To check many addresses at once, verify a list instead.

Verify addresses at sign-up

Checking an address when someone types it is the cheapest way to keep a list clean. A typo caught at sign-up never becomes a bounce.

  1. Call the API from your server. Never put your API key in browser code. Send the address from your sign-up handler, in fast mode.

  2. Set a timeout and fail open. If verification is slow or returns an error, let the sign-up through. Losing a real customer costs more than one bad address.

  3. Act on the result. Block what’s clearly wrong, suggest fixes for typos and let everything else through.

verify-signup.js
export async function checkSignupEmail(email) {
  const controller = new AbortController();
  const timer = setTimeout(() => controller.abort(), 5000);

  try {
    const res = await fetch('https://api.emailit.com/v2/email-verifications', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ email, mode: 'fast' }),
      signal: controller.signal,
    });
    if (!res.ok) return { ok: true }; // fail open

    const verification = await res.json();

    if (verification.result === 'invalid') {
      return {
        ok: false,
        message: verification.did_you_mean
          ? `Did you mean ${verification.did_you_mean}?`
          : 'Please check your email address.',
      };
    }
    if (verification.result === 'disposable') {
      return { ok: false, message: 'Please use a permanent email address.' };
    }

    // Accept the address, but offer a correction if one looks likely.
    return { ok: true, suggestion: verification.did_you_mean };
  } catch {
    return { ok: true }; // timeout or network error: fail open
  } finally {
    clearTimeout(timer);
  }
}

A few tips:

  • Use did_you_mean. For common domain typos, such as ada@gmial.com, it contains the likely address, ada@gmail.com. Show it as a suggestion the person can accept.
  • Don’t block role addresses outright. info@ or sales@ is often how small businesses sign up. Flag them instead.
  • Verify once per address. Each call costs credits, so verify when the form is submitted, not on every keystroke, and store the result.
What every result, risk and check means.
Check up to 10,000 addresses at once.

Was this page helpful?

Thanks for the feedback.

Thanks, we read every message.