Bêta privéeMailbeam est en bêta privée : l'API publique n'est pas encore ouverte.Rejoindre la liste d'attente

Migrer depuis NeverBounce

Ce guide montre comment remplacer NeverBounce par Mailbeam. La plupart des migrations prennent moins d'une heure.

Pourquoi les développeurs changent

  • Hébergement dans l'UE : NeverBounce est établi aux États-Unis (propriété de ZoomInfo) ; Mailbeam traite les données à Francfort, en Allemagne — aucune question de transfert transfrontalier au sens du RGPD
  • Pas de crédits qui expirent : les crédits NeverBounce expirent au bout de 6 mois ; Mailbeam fonctionne par abonnement mensuel, sans expiration
  • Offre gratuite en libre-service : Mailbeam donne 1 000 vérifications par mois sans carte bancaire ; NeverBounce exige un achat de crédits pour démarrer
  • Verdicts catch-all notés : NeverBounce renvoie un drapeau binaire ; Mailbeam note les adresses catch-all de 0 à 100 à partir de poids publiés, avec un plafond à 70 parce qu'aucune sonde ne peut les confirmer, et un champ de motif explicable

Correspondance des endpoints

NeverBounceMailbeamRemarques
POST /v4/single/checkPOST /v1/verifyVérification d'une adresse
POST /v4/jobs/createPOST /v1/verify/batchVérification d'une liste en masse
GET /v4/account/infoGET /v1/account/usageQuota et consommation

Authentification

NeverBounce utilise l'authentification HTTP Basic, avec la clé d'API en nom d'utilisateur et pas de mot de passe. Mailbeam utilise un jeton Bearer dans l'en-tête Authorization.

NeverBounce (avant) :

curl -X POST https://api.neverbounce.com/v4/single/check \
  -H "Authorization: Basic $(echo -n 'YOUR_KEY:' | base64)" \
  -d '{"email": "user@example.com"}'

Mailbeam (après) :

curl -X POST https://api.mailbeam.dev/v1/verify \
  -H "Authorization: Bearer $MAILBEAM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'

Correspondance des réponses

result de NeverBounceÉquivalent Mailbeam
"valid"valid: true, score >= 70
"invalid"valid: false
"catchall"catchAll: true — décidez avec le score
"disposable"disposable: true
"unknown"status: "unknown", score plus bas

Migration du code

NeverBounce (avant) :

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 (après) :

// Pas de SDK à installer — voyez /docs/quickstart pour ce wrapper de 12 lignes.
import { verifyEmail } from "./lib/mailbeam.js";

const { valid, score, reason } = await verifyEmail(email);
if (!valid || score < 60) return 422;

Traiter les adresses catch-all

NeverBounce renvoie result: "catchall" sans autre signal. Mailbeam renvoie catchAll: true, accompagné d'un score de 0 à 100 et d'un reason.

const result = await verifyEmail(email);

if (result.catchAll) {
  // NeverBounce rejetterait tout catch-all — Mailbeam vous laisse trier
  if (result.score >= 70) return 200; // adresse d'entreprise à forte confiance
  if (result.score >= 40) return 200; // acceptée, mais signalée pour relecture
  return 422; // confiance faible, rejet
}

Prochaines étapes