API de Verificação de E-mail

Verifique endereços de e-mail em tempo real, 50 por requisição ou listas inteiras em massa. Cada chamada confere sintaxe, domínio, MX e a própria caixa postal, e sinaliza endereços descartáveis, de função e catch-all. Nenhum e-mail é enviado ao destinatário.

  • 50 verificações grátis por dia
  • Sem cartão de crédito
  • Chave sandbox pública
  • Créditos que não expiram
Pegar uma chave de API grátisLer a referência da API (em inglês)
curl --get "https://api.easyemailverification.com/v1/verify" \
  -H "X-API-Key: eev_sandbox_key" \
  --data-urlencode "email=valid@sandbox.easyemailverification.com"
import requests

r = requests.get(
    "https://api.easyemailverification.com/v1/verify",
    headers={"X-API-Key": "eev_sandbox_key"},
    params={"email": "valid@sandbox.easyemailverification.com"},
    timeout=30,
)
data = r.json()
print(data["result"], data["reason"], data["safe_to_send"])
const url = new URL("https://api.easyemailverification.com/v1/verify");
url.searchParams.set("email", "valid@sandbox.easyemailverification.com");

const res = await fetch(url, {
  headers: { "X-API-Key": "eev_sandbox_key" },
  signal: AbortSignal.timeout(30000),
});
const data = await res.json();
console.log(data.result, data.reason, data.safe_to_send);
$query = http_build_query(["email" => "valid@sandbox.easyemailverification.com"]);
$ch = curl_init("https://api.easyemailverification.com/v1/verify?" . $query);
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ["X-API-Key: eev_sandbox_key"],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 30,
]);
$data = json_decode(curl_exec($ch), true);
echo $data["result"], " ", $data["reason"];

Funciona do jeito que está: a chave eev_sandbox_key não precisa de conta e não usa créditos.

Uma chamada, uma resposta clara

Leia primeiro result e depois safe_to_send. Os outros campos explicam o motivo, para sua aplicação decidir o que aceitar.

CampoO que ele informa
resultvalid, invalid ou unknown. Um resultado desconhecido nunca é informado como válido.
reasonO detalhe, por exemplo accepted_email, rejected_email, invalid_domain, no_mx_record ou timeout.
safe_to_sendtrue só para endereços válidos sem sinais de risco.
did_you_meanUma correção quando um erro de digitação é detectado, como gmial.com → gmail.com.
disposable, role, free, accept_allSinais de risco: caixas temporárias, endereços compartilhados como contato@, provedores gratuitos e domínios catch-all.
mx_record, domain, userOnde o domínio recebe e-mails e como o endereço se divide.
200 OK · application/json
{
  "email": "valid@sandbox.easyemailverification.com",
  "result": "valid",
  "reason": "accepted_email",
  "disposable": false,
  "accept_all": false,
  "role": false,
  "free": false,
  "user": "valid",
  "domain": "sandbox.easyemailverification.com",
  "mx_record": "mx.sandbox.easyemailverification.com",
  "mx_domain": "easyemailverification.com",
  "safe_to_send": true,
  "did_you_mean": "",
  "success": true,
  "message": "Sandbox response: no credits used",
  "http_code": "200"
}

Tempo real, lote ou em massa

As mesmas verificações e os mesmos campos em todos os casos. Escolha a chamada que combina com a forma como os endereços chegam até você.

Tempo real

GET /v1/verify?email=

Um endereço por vez, para formulários de cadastro, checkout e registros no CRM. Mostre did_you_mean ao usuário em vez de recusar sem explicar.

Referência do GET /verify

Lote

POST /v1/verify

Até 50 endereços por requisição em um array JSON, para importações e limpezas periódicas de segmentos pequenos.

Referência do POST /verify

Listas em massa

POST /v1/bulk/upload

Envie um arquivo TXT ou CSV de até 16 MB, acompanhe o processamento e baixe os resultados em CSV. Os resultados ficam guardados por 30 dias.

Referência dos endpoints em massa

Pague por verificação, não por mês

Comece grátis com 50 verificações por dia. Quando precisar de mais, compre créditos uma vez e use quando quiser: os créditos do plano Pague conforme o uso não expiram. Cada endereço verificado usa um crédito, e consultar o saldo com GET /credits é grátis. Também há assinaturas mensais.

Começar grátisTodos os planos e preços
CréditosPreçoPor 1.000
1,000$8$8.00
10,000$60$6.00
100,000$320$3.20
1,000,000$1,350$1.35

Compra única em dólares (USD). Pacotes menores e maiores, e preços em reais, na página de preços. Comparando APIs? Veja Easy Email Verification vs Abstract API (em inglês).

Transparente sobre o que não dá para confirmar

Alguns servidores de e-mail atrasam remetentes desconhecidos (greylisting), demoram demais ou recusam a verificação. Em vez de chutar, a API retorna unknown, e você decide se tenta de novo mais tarde ou trata como risco. Resultados desconhecidos não usam crédito.

Domínios catch-all aceitam qualquer endereço, então uma resposta "valid" ali não prova que a caixa existe. A API os sinaliza com accept_all: true e mantém safe_to_send como false.

Dados e segurança

  • Nenhum e-mail é enviado ao endereço verificado.
  • Endereços verificados um a um não são guardados.
  • Os arquivos de resultado em massa são apagados 30 dias após o envio.
  • Somente HTTPS; as chaves de API vão no cabeçalho X-API-Key e podem ser criadas e revogadas por aplicação no seu painel.

Perguntas frequentes sobre a API de verificação de e-mail

Existe uma API de verificação de e-mail grátis?

Sim. O plano grátis inclui 50 verificações por dia, sem cartão de crédito. Para desenvolver e testar sem conta nem créditos, use a chave sandbox pública eev_sandbox_key: ela retorna respostas fixas para endereços em sandbox.easyemailverification.com.

A API envia um e-mail para o endereço?

Não. Ela confere a sintaxe, o domínio e os registros MX, depois pergunta ao servidor de e-mail do destinatário se a caixa aceita mensagens e desconecta antes de qualquer envio. A pessoa nunca recebe nada.

Qual a diferença entre validação e verificação de e-mail?

A validação confere se o endereço está bem formado e se o domínio pode receber e-mails. A verificação vai além e pergunta ao servidor de e-mail se aquela caixa específica existe. Toda chamada à API faz as duas coisas e ainda detecta endereços descartáveis, de função e catch-all.

Por que alguns endereços retornam "unknown"?

Alguns servidores de e-mail atrasam remetentes desconhecidos (greylisting), demoram demais ou bloqueiam a verificação. Nesses casos a API retorna unknown em vez de chutar. Não trate unknown como válido nem como inválido: decida pela sua própria regra ou tente de novo mais tarde (por que os resultados ficam desconhecidos, em inglês). Resultados desconhecidos não usam crédito. Domínios catch-all, que aceitam qualquer endereço, são sinalizados com accept_all: true e safe_to_send: false.

Qual a velocidade, e há limite de requisições?

Uma verificação conversa com o servidor de e-mail do destinatário, então costuma levar de menos de um segundo a alguns segundos; use um timeout de cerca de 30 segundos. As contas não têm limite por minuto. Uma requisição em lote aceita até 50 endereços, e a chave sandbox é limitada a 60 requisições por minuto.

Como verifico uma lista inteira?

Envie um arquivo TXT ou CSV (até 16 MB) ao endpoint em massa, acompanhe o processamento e baixe os resultados em CSV. A conta precisa ter créditos suficientes para todos os endereços do arquivo antes de começar. Sem programar, envie a lista pelo painel.

Vocês guardam os endereços que eu verifico?

Endereços verificados um a um, pela API ou pelo verificador de e-mail, não são guardados. Os arquivos de resultado em massa ficam disponíveis por 30 dias para download e depois são apagados.

Assistentes de IA e agentes de programação podem usar a API?

Sim. Claude, ChatGPT e outros clientes MCP podem se conectar ao servidor MCP hospedado, e assistentes de programação podem ler o agents.md e a especificação OpenAPI para escrever a integração por você.

Pegar uma chave de API grátisLer a referência da API (em inglês)