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 Clearout

Ce guide montre comment remplacer les appels de vérification de Clearout par Mailbeam. La forme de l'intégration ne change pas : vous envoyez toujours une adresse et vous branchez sur ce qui revient, donc le point d'appel reste en général exactement là où il est.

Pourquoi les développeurs changent

  • Résidence des données dans l'UE : Clearout traite hors de l'UE, ce qui laisse une question de transfert international à régler ; Mailbeam traite à Francfort, avec un DPA sur chaque forfait
  • Conçu pour les formulaires : la latence temps réel de Clearout dépend de la région et tourne souvent autour de 300 ms, ce qui est lent pour une validation en ligne à l'inscription
  • Catch-all gradué : Clearout signale les domaines accept-all sans indice de confiance ; Mailbeam renvoie un score de 0 à 100 et un reason sur lequel poser un seuil
  • Mode bac à sable : Clearout n'en a pas, donc l'intégration continue doit appeler l'API de production payante ; Mailbeam livre un mode test déterministe
  • Concentration : chez Clearout, la vérification est une ligne de produit parmi d'autres, à côté d'un moteur de recherche d'adresses et de la validation de numéros

Deux points jouent réellement en faveur de Clearout, et il vaut la peine de les vérifier avant de bouger : ses crédits à la consommation n'expirent pas, ce qui convient mieux qu'un abonnement mensuel à un usage irrégulier ou par à-coups, et il propose une recherche d'adresses et une validation de numéros que Mailbeam n'a pas.

Correspondance des endpoints

ClearoutMailbeamRemarques
POST /v2/email_verify/instantPOST /v1/verifyVérification d'une adresse
Import en masse via le tableau de bordPOST /v1/verify/batchJusqu'à 500 000 adresses par tâche

Authentification

Clearout envoie le jeton sous la forme Bearer:<token> — avec un deux-points et sans espace. Mailbeam utilise la forme standard Bearer <token> : c'est l'un des rares endroits où un copier-coller échoue silencieusement si vous ne le cherchez pas.

Clearout (avant) :

curl -X POST https://api.clearout.io/v2/email_verify/instant \
  -H "Authorization: Bearer:$CLEAROUT_TOKEN" \
  -H "Content-Type: application/json" \
  -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

Clearout imbrique son résultat sous un objet data. Mailbeam renvoie le résultat directement, sans enveloppe.

Champ ClearoutÉquivalent Mailbeam
data.status: "valid"valid: true
data.status: "invalid"valid: false
data.status: "catch_all"catchAll: true, avec un score gradué
data.status: "unknown"status: "unknown"
data.sub_statusreason (code lisible par la machine)
data.disposabledisposable
data.rolerole

Migrer l'appel

Clearout (avant) :

const res = await fetch("https://api.clearout.io/v2/email_verify/instant", {
  method: "POST",
  headers: { Authorization: `Bearer:${apiToken}`, "Content-Type": "application/json" },
  body: JSON.stringify({ email }),
});
const { data } = await res.json();
if (data.status !== "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;

À regarder en premier : les domaines catch-all

C'est là que les deux produits divergent le plus, et c'est la valeur à comparer avant de basculer. Clearout renvoie catch_all comme statut et vous laisse l'interpréter, si bien que la plupart des intégrations finissent par le traiter comme un rejet. Mailbeam signale le comportement accept-all et un indice de confiance, ce qui vous permet d'accepter les catch-all d'entreprise de bonne qualité au lieu de les jeter :

const { valid, catchAll, score, reason } = await verifyEmail(email);

if (catchAll) {
  // Une part importante du trafic B2B se trouve derrière des domaines accept-all.
  // Posez un seuil plutôt que de rejeter d'emblée.
  if (score >= 70) return accept();
  return challenge({ reason });
}

Faites tourner les deux prestataires côte à côte sur un échantillon d'inscriptions réelles avant de basculer cette branche : c'est le seul endroit où la migration change un comportement, et pas seulement des noms de champs.

Prochaines étapes