# Verificar um único endereço

> Verifique um endereço de e-mail no painel ou com a API, escolha entre os modos fast e full e use a verificação para barrar endereços ruins no cadastro.

Este guia mostra como conferir um endereço de e-mail, manualmente no painel ou pelo seu código com a API. Ele também mostra como usar a verificação em um formulário de inscrição para barrar erros de digitação e endereços descartáveis antes que cheguem à sua lista.

## Antes de começar

- Cada verificação custa 5 créditos. Confira o seu saldo na barra lateral ou em **Workspace → Billing**.
- Para a API, use uma chave de API com **Full Access**. As chaves só de envio não podem verificar endereços.

## Modos fast e full

| Modo | Verificações | Use para |
| --- | --- | --- |
| `fast` (padrão) | Sintaxe, registros MX, idade do domínio, endereços descartáveis, genéricos, de provedor gratuito e com aparência aleatória | Formulários de inscrição e qualquer situação em que uma pessoa esteja esperando. |
| `full` | Tudo o que o `fast` verifica, mais uma conexão com o servidor de e-mail do destinatário para verificar a caixa de e-mail: se aceita entregas, se está desativada, se está cheia e se o domínio é catch-all | Limpar endereços antes de um envio importante, quando alguns segundos a mais não fazem diferença. |

Os dois modos custam o mesmo. O `full` demora mais porque conversa com o servidor de e-mail do destinatário, que pode ser lento ou se recusar a responder. Alguns grandes provedores bloqueiam essas verificações, então o `full` nem sempre consegue confirmar uma caixa de e-mail. Consulte [Resultados da verificação](/pt/docs/email-verification/results/) para saber o que cada verificação significa.

## Verificar um endereço

**Painel**

  1. **Abra Email Verification.** Acesse **Email Verification → Emails** e selecione **Verify Email**.

  2. **Digite o endereço.** Digite-o em **Email** e selecione **Verify Email**. O painel usa o modo `fast`.

  3. **Abra o resultado.** O endereço aparece na lista com **Status**, **Result**, **Risk**, **Score**, a data em **Created** e os dias que faltam em **Expiring**. Selecione-o para ver cada verificação individual, como **Valid Syntax**, **Disposable**, **Role Account** e **Has MX Records**.

  Para conferir muitos endereços de uma vez, [verifique uma lista](/pt/docs/email-verification/lists/).

**API**

  Chame [Verificar um endereço](/pt/docs/api-reference/email-verifications/verify/) com o endereço e, opcionalmente, o modo:

```bash
curl https://api.emailit.com/v2/email-verifications \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "ada@example.com", "mode": "full" }'
```

  O resultado vem na resposta:

```json
{
  "id": "ev_6Hq2Lm9Tx4Pz",
  "object": "email_verification",
  "email": "ada@example.com",
  "status": "completed",
  "score": 100,
  "risk": "low",
  "result": "safe",
  "mode": "full",
  "checks": {
    "valid_syntax": true,
    "disposable": false,
    "role_account": false,
    "inbox_full": false,
    "deliverable": true,
    "disabled": false,
    "free_email": false,
    "gibberish": false,
    "catch_all": false,
    "smtp_connect": true,
    "has_mx_records": true,
    "domain_age": 10957
  },
  "address": {
    "mailbox": "ada",
    "domain": "example.com",
    "suffix": null,
    "root": "ada@example.com"
  },
  "did_you_mean": null,
  "mx_records": [
    { "priority": 10, "exchange": "mx1.example.com" }
  ],
  "created_at": "2026-10-01T10:24:11Z",
  "updated_at": "2026-10-01T10:24:11Z"
}
```

  No modo `fast`, as verificações da caixa de e-mail (`deliverable`, `disabled`, `inbox_full`, `catch_all` e `smtp_connect`) são `null` porque não foram testadas.

  | Status | Quando |
  | --- | --- |
  | `200` | O endereço foi verificado. Isso inclui endereços malformados, que voltam com `result: "invalid"`. |
  | `400` | `email` está ausente, ou `mode` não é `fast` nem `full`. |
  | `402` | O workspace tem menos de 5 créditos. |

  Cada verificação bem-sucedida também dispara um evento `email_verification.created`. Consulte [Tipos de evento de webhook](/pt/docs/webhooks/event-types/).

## Verificar endereços no cadastro

Conferir um endereço quando alguém o digita é a forma mais barata de manter uma lista limpa. Um erro de digitação barrado no cadastro nunca vira um bounce.

1. **Chame a API a partir do seu servidor.** Nunca coloque a sua chave de API em código do navegador. Envie o endereço a partir do handler de cadastro, no modo `fast`.

2. **Defina um timeout e deixe passar em caso de falha.** Se a verificação estiver lenta ou retornar um erro, deixe o cadastro seguir. Perder um cliente real custa mais do que um endereço ruim.

3. **Aja conforme o resultado.** Bloqueie o que está claramente errado, sugira correções para erros de digitação e deixe todo o resto passar.

```javascript title="verify-signup.js"
  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);
  }
}
```

Algumas dicas:

- **Use `did_you_mean`.** Para erros de digitação comuns no domínio, como `ada@gmial.com`, ele contém o endereço provável, `ada@gmail.com`. Mostre-o como uma sugestão que a pessoa pode aceitar.
- **Não bloqueie endereços genéricos de cara.** `info@` ou `sales@` costumam ser a forma como pequenas empresas se cadastram. Sinalize-os em vez disso.
- **Verifique cada endereço uma vez.** Cada chamada custa créditos, então verifique quando o formulário for enviado, não a cada tecla digitada, e guarde o resultado.

## Veja também

  - [Resultados da verificação](/pt/docs/email-verification/results/): O que cada resultado, risco e verificação significa.
  - [Verificar uma lista](/pt/docs/email-verification/lists/): Confira até 10.000 endereços de uma vez.

---
Fonte: https://emailit.com/pt/docs/email-verification/single/
