Email CheckerDashboard

Documentação da API

Valide e-mails via HTTP: formato + domínio descartável + MX do domínio. Cada e-mail consome 1 crédito.

O que a API entrega — e o que ela não entrega

Ela confirma que o e-mail tem formato válido, que o domínio não é descartável(mailinator, 10minutemail…) e que o domínio tem servidor de e-mail (MX). Isso pega e-mails malformados, domínios falsos/com typo e caixas temporárias.

Ela não confirma se a caixa específica existe. Provedores como Gmail/Outlook aceitam qualquer endereço no SMTP (anti-harvesting), então qualquercoisa@gmail.com aparece como válido. Para garantir que a pessoa existe, use double opt-in(envie um link de confirmação).

statusSignifica
validFormato ok + domínio recebe e-mail + não descartável
disposableDomínio descartável/temporário
no_mxDomínio não existe / não tem servidor de e-mail
invalid_formatNão é um e-mail bem-formado

Autenticação

Crie uma chave em Dashboard → API keys e envie no header Authorization: Bearer <sua_chave> (ou x-api-key).

Verificar um e-mail

POST /api/v1/verify

curl -X POST https://<host>/api/v1/verify \
  -H "Authorization: Bearer ek_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "email": "contato@mailinator.com" }'

Resposta

{
  "email": "contato@mailinator.com",
  "status": "disposable",
  "isValid": true,
  "isDisposable": true,
  "domain": "mailinator.com",
  "confidence": 100,
  "reason": "dominio_descartavel",
  "mxChecked": false,
  "hasMx": null,
  "creditsRemaining": 499
}

O MX é checado por padrão. Passe "mx": false para pular (mais rápido, mas não detecta domínio inexistente).

Verificar em batch

Envie um array em emails (até 1000 por requisição).

curl -X POST https://<host>/api/v1/verify \
  -H "Authorization: Bearer ek_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "emails": ["a@gmail.com", "b@10minutemail.com"], "mx": false }'

Resposta

{
  "results": [
    { "email": "a@gmail.com", "isValid": true, "isDisposable": false, "domain": "gmail.com", "reason": null },
    { "email": "b@10minutemail.com", "isValid": true, "isDisposable": true, "domain": "10minutemail.com", "reason": "dominio_descartavel" }
  ],
  "summary": { "total": 2, "valid": 2, "invalid": 0, "disposable": 1, "creditsCharged": 2, "creditsRemaining": 497 }
}

Checagem de MX

Ligada por padrão: domínios sem servidor de e-mail (inexistentes/typo) voltam com status: "no_mx" e hasMx: false. Envie "mx": false para desligar.

Saldo de créditos

GET /api/v1/me

curl https://<host>/api/v1/me -H "Authorization: Bearer ek_live_xxx"
# → { "email": "...", "credits": 497, "totalChecks": 3, "memberSince": "..." }

Erros

HTTPcodeQuando
401missing_api_key / invalid_api_keyChave ausente, inválida ou revogada
400invalid_body / invalid_jsonCorpo malformado ou sem email/emails
402insufficient_creditsCréditos insuficientes para a requisição
500internal_errorFalha inesperada ao validar