Comparativo técnico · o que muda na migração
O EmailChecker usa os mesmos nomes de campo que a mails.so no envio do lote e na resposta — result, score, isv_* — então o código que lê o resultado continua igual. O que muda é o caminho do endpoint e o fato de não haver webhook de conclusão: aqui você consulta o lote pelo id. Em troca, você tem preço em BRL, free tier 5x maior e suporte em PT-BR.
Mesmos campos de resposta. Muda o caminho do endpoint e o modo de consulta.
Sem cartão. mails.so dá 100/mês recurring; nós damos 500 no signup pra você testar de verdade.
Time brasileiro responde em até 24h em dias úteis. Não é tradução automática.
Comparativo feature a feature
| Feature | mails.so | EmailChecker |
|---|---|---|
| API REST | Própria, REST padrão | REST, envio em lote (plano Gold) |
| Envio em lote | Sim | Sim — POST /api/v1/batch |
| Consulta do resultado | Polling pelo id do lote | Polling pelo id do lote |
| Webhook de conclusão | Sim | Não — só polling |
| Campos de resposta | result, score, isv_* | Mesmos nomes de campo |
| Origem da empresa | Internacional | Brasil |
| Pricing em BRL | USD | BRL |
| Free tier | 100 créditos / mês (recurring) | 500 créditos no signup, sem cartão |
| Mensalidade obrigatória | Sim (alguns planos) | Não — pré-pago puro |
| Suporte | Email em inglês | Email + chat em PT-BR |
| Integrações documentadas (PT) | Não | n8n, Zapier, Make, Mautic, Brevo, Mailchimp |
| Conformidade LGPD | Limitada | Sim, página dedicada |
| Rate limit padrão | Por plano | 300 req/min, 10.000 req/h |
| Validação SMTP real | Sim | Sim, mesma base técnica |
| Sonda SMTP bloqueada pelo provedor | Marca como não entregável | Marca como arriscado — não descarta contato bom |
| Cobrança de resultado indefinido | Conforme o plano | Não cobra por unknown |
Migração
Signup grátis com 500 créditos. Sem cartão pra começar.
Vá em /api-keys no dashboard, "Nova chave", copie. Mesmo formato que a key do mails.so.
Troque o base URL para https://app.emailchecker.email/api/v1 e o caminho para /batch. A autenticação continua Bearer e os campos da resposta são os mesmos.
Envie um lote com um email de teste e consulte o resultado pelo id. Os campos vêm no mesmo formato que você já lê hoje.
Diff típico no seu código
- const BASE = 'https://api.mails.so/v1';
+ const BASE = 'https://app.emailchecker.email/api/v1';
// 1. envia o lote
const r = await fetch(`${BASE}/batch`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ emails }),
});
const { data } = await r.json();
// 2. consulta pelo id até status === 'completed'
const s = await fetch(`${BASE}/batch/${data.id}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` },
});
// os campos de cada item (result, score, isv_*) seguem o mesmo padrãoHonestidade técnica
EmailChecker faz sentido
Não vale a pena trocar
Comece grátis com 500 créditos. Sem cartão, sem compromisso.