Migrar desde NeverBounce
Esta guía explica cómo sustituir NeverBounce por Mailbeam. La mayoría de las migraciones llevan menos de una hora.
Por qué se cambia la gente
- Alojamiento en la UE: NeverBounce está en EE. UU. (es de ZoomInfo); Mailbeam trata los datos en Fráncfort, Alemania, sin transferencias transfronterizas que resolver bajo el RGPD
- Créditos que no caducan: los créditos de NeverBounce caducan a los 6 meses; Mailbeam es una suscripción mensual sin caducidad
- Plan gratuito de autoservicio: Mailbeam da 1000 verificaciones al mes sin tarjeta; NeverBounce exige comprar créditos para empezar
- Veredictos catch-all puntuados: NeverBounce devuelve una marca binaria; Mailbeam puntúa las direcciones catch-all de 0 a 100 con pesos publicados, con un tope de 70 porque ningún sondeo puede confirmarlas, y un campo de motivo explicable
Equivalencia de endpoints
| NeverBounce | Mailbeam | Notas |
|---|---|---|
POST /v4/single/check | POST /v1/verify | Verificación de un email |
POST /v4/jobs/create | POST /v1/verify/batch | Verificación de listas en volumen |
GET /v4/account/info | GET /v1/account/usage | Información de cuota y consumo |
Autenticación
NeverBounce usa autenticación HTTP Basic con la clave de API como usuario y sin
contraseña. Mailbeam usa tokens Bearer en la cabecera Authorization.
NeverBounce (antes):
curl -X POST https://api.neverbounce.com/v4/single/check \
-H "Authorization: Basic $(echo -n 'YOUR_KEY:' | base64)" \
-d '{"email": "user@example.com"}'Mailbeam (ahora):
curl -X POST https://api.mailbeam.dev/v1/verify \
-H "Authorization: Bearer $MAILBEAM_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'Equivalencia de respuestas
result de NeverBounce | Equivalente en Mailbeam |
|---|---|
"valid" | valid: true, score >= 70 |
"invalid" | valid: false |
"catchall" | catchAll: true — decide con el score |
"disposable" | disposable: true |
"unknown" | status: "unknown", con score más bajo |
Migración del código
NeverBounce (antes):
const res = await fetch("https://api.neverbounce.com/v4/single/check", {
method: "POST",
headers: { Authorization: `Basic ${btoa(apiKey + ":")}` },
body: JSON.stringify({ email }),
});
const { result } = await res.json();
if (result !== "valid") return 422;Mailbeam (ahora):
// No hay SDK que instalar: mira /docs/quickstart para este envoltorio de 12 líneas.
import { verifyEmail } from "./lib/mailbeam.js";
const { valid, score, reason } = await verifyEmail(email);
if (!valid || score < 60) return 422;Tratar las direcciones catch-all
NeverBounce devuelve result: "catchall" y nada más.
Mailbeam devuelve catchAll: true junto a un score de 0 a 100 y un reason.
const result = await verifyEmail(email);
if (result.catchAll) {
// NeverBounce rechazaría todas las catch-all; Mailbeam te deja ser selectivo
if (result.score >= 70) return 200; // dirección corporativa de confianza alta
if (result.score >= 40) return 200; // acepta, pero márcala para revisión
return 422; // confianza baja, rechaza
}