Beta privataMailbeam è in beta privata: l'API pubblica non è ancora aperta.Iscriviti alla lista d'attesa

Migrare da Snov.io

Snov.io è una piattaforma commerciale tutto in uno: ricerca di indirizzi, verifica, campagne a goccia e CRM. Questa guida copre lo spostamento del solo passaggio di verifica su Mailbeam, che di solito è la parte che una squadra di sviluppo vuole come API dedicata e veloce. Puoi continuare a usare Snov.io per la prospezione e la raccolta di contatti, se ti appoggi a quelle.

Perché si sposta il passaggio di verifica

  • Sincrono e veloce: la verifica di Snov.io passa da una coda asincrona; Mailbeam restituisce l'esito in una sola chiamata, sotto i 100 ms (p95)
  • Prezzo dedicato: i crediti di Snov.io sono condivisi con la ricerca di indirizzi; Mailbeam addebita un'unità per verifica con un piano gratuito di 1000 al mese
  • Esiti catch-all a punteggio: Mailbeam restituisce un punteggio da 0 a 100 e un reason spiegabile per i domini catch-all
  • Esperienza di sviluppo: SDK ufficiali per 6 linguaggi, autenticazione con chiave Bearer, specifica OpenAPI e una modalità di prova
  • Residenza del dato nell'UE: tutto è trattato a Francoforte, con un DPA incluso in tutti i piani

Autenticazione

Snov.io usa un flusso OAuth di credenziali client per ottenere un token di accesso, che poi passi in ogni richiesta. Mailbeam usa un'unica chiave API Bearer.

Snov.io (prima):

// 1. Scambia le credenziali client con un token di accesso
const tokenRes = await fetch("https://api.snov.io/v1/oauth/access_token", {
  method: "POST",
  body: new URLSearchParams({
    grant_type: "client_credentials",
    client_id: process.env.SNOV_CLIENT_ID,
    client_secret: process.env.SNOV_CLIENT_SECRET,
  }),
});
const { access_token } = await tokenRes.json();

Mailbeam (adesso):

# Nessuno scambio di token: manda la tua chiave API come intestazione Bearer
curl -X POST https://api.mailbeam.dev/v1/verify \
  -H "Authorization: Bearer $MAILBEAM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'

Corrispondenza fra endpoint

Snov.ioMailbeamNote
POST /v1/get-emails-verification-statusPOST /v1/verifyVerifica di un'email (sincrona)
Mettere in coda e interrogare lo statoUna risposta sincronaNon serve interrogare
POST /v1/oauth/access_tokenIn Mailbeam non c'è scambio di token

Corrispondenza fra risposte

Risultato di Snov.ioEquivalente in Mailbeam
result: "valid"valid: true, score >= 60
result: "not valid"valid: false
result: "unknown" / "greylisted"status: "unknown"
result: "catch-all"catchAll: true + score
is_disposable: truedisposable: true
is_role_account: truerole: true

Migrazione del codice

Il flusso di Snov.io è asincrono: invii un indirizzo e poi chiedi il suo stato. Mailbeam restituisce l'esito in una sola chiamata.

Snov.io (prima):

// Dopo aver ottenuto l'access_token qui sopra:
const res = await fetch(
  "https://api.snov.io/v1/get-emails-verification-status",
  {
    method: "POST",
    body: new URLSearchParams({ access_token, email }),
  }
);
const { data } = await res.json();
// data.result può essere ancora in sospeso: Snov.io richiede spesso di interrogare in ciclo
if (data?.result !== "valid") return res.status(422).end();

Mailbeam (adesso):

// Nessun SDK da installare: vedi /docs/quickstart per questo wrapper di 12 righe.
import { verifyEmail } from "./lib/mailbeam.js";

const { valid, score, reason } = await verifyEmail(email);
if (!valid || score < 60) {
  return res.status(422).json({ error: "Email non valida", code: reason });
}

Usare i campi score e reason

Snov.io restituisce una stringa di stato. Mailbeam aggiunge uno score numerico e un reason leggibile dalla macchina, così puoi trattare gli indirizzi catch-all e quelli di bassa qualità con una soglia invece che con una decisione tutto o niente:

const result = await verifyEmail(email);

if (result.catchAll && result.score >= 75) {
  // Catch-all aziendale ad alta fiducia: accettalo
} else if (!result.valid || result.score < 60) {
  const messages = {
    invalid_syntax:    "Controlla il formato della tua email.",
    no_mx_records:     "Quel dominio email non esiste.",
    smtp_rejected:     "Questo indirizzo email non esiste.",
    disposable_domain: "Gli indirizzi email temporanei non sono ammessi.",
  };
  return res.status(422).json({ error: messages[result.reason] ?? "Non è stato possibile verificare l'email." });
}

Che cosa conviene lasciare in Snov.io

Mailbeam sostituisce solo la verifica. Se usi la ricerca di indirizzi, le campagne a goccia o il CRM di Snov.io, tienili: punta su Mailbeam soltanto le tue chiamate di verifica.

Prossimi passi