API di verifica
Una chiamata e sapete cosa succede se inviate.
Controlla gli indirizzi alla registrazione e prima di ogni invio, così i dati sbagliati non raggiungono mai la tua lista né la tua reputazione da mittente. Entra un token, esce un verdetto, con il punteggio e i codici di motivo che lo spiegano.
Richiesta e risposta
L'intera integrazione, su una schermata.
Nessun SDK, nessun client da costruire, nessun wrapper da imparare. Un token bearer, un POST e un oggetto i cui nomi di campo il tuo codice può leggere.
curl -X POST https://api.bounceintel.com/v1/check_email \
-H "Authorization: Bearer $BOUNCEINTEL_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'{
"input": "[email protected]",
"is_reachable": "safe",
"syntax": {
"domain": "stripe.com",
"username": "ada",
"is_valid_syntax": true
},
"mx": {
"accepts_mail": true,
"records": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"]
},
"smtp": {
"can_connect_smtp": true,
"is_deliverable": true,
"is_catch_all": false,
"is_disabled": false,
"has_full_inbox": false
},
"misc": {
"is_disposable": false,
"is_role_account": false,
"is_b2c": false
},
"provider": "google_workspace",
"provider_rules_applied": true,
"score": {
"score": 100,
"category": "valid",
"sub_reason": "deliverable",
"safe_to_send": true,
"confidence": 0.97,
"confidence_level": "high",
"reason_codes": ["deliverable", "tenant_history_positive"]
},
"bounce_risk": {
"score": 3,
"category": "low",
"confidence": 0.94,
"action": "send",
"model_version": "br-2026.06",
"risk_factors": [
{
"signal": "smtp_is_deliverable",
"direction": "decreases_risk",
"contribution": -0.41,
"description": "Mailbox accepted the recipient at RCPT TO."
}
]
}
}- 01
Un solo endpoint
POST /v1/check_email con un indirizzo. Nessuna sessione da aprire.
- 02
Codici di motivo
Codici documentati su cui costruire la logica, non testo libero.
- 03
Un punteggio vostro
Un numero da 0 a 100: la soglia diventa una configurazione, non una nostra decisione.
- 04
Sconosciuti dichiarati
Un controllo non concludente restituisce 200 con verdetto sconosciuto, mai uno inventato.
- 05
Il lotto come job
POST /v1/bulk accetta una lista e restituisce un id di job da interrogare.
- 06
Chiavi revocabili
Più chiavi attive, revocabili singolarmente, senza interruzioni.
Per iniziare
Da nessun account a un verdetto dentro il tuo codice.
- 01
Creare una chiave
Le chiavi si emettono dalla dashboard. Puoi tenerne più di una attiva e revocarle in modo indipendente, quindi una rotazione non costa alcun fermo.
- 02
Inviare l'indirizzo
Un POST con un header Authorization e un corpo JSON. Non c'è sessione da aprire né negoziazione preliminare.
- 03
Ramificare sulla risposta
Leggi il verdetto, o il punteggio rispetto alla tua soglia, o i codici di motivo. Tutti e tre stanno nello stesso oggetto: non serve una seconda chiamata per sapere perché.
- 04
Passare alle liste
La stessa chiave invia un lotto come job e lo interroga. I verdetti sono identici a quelli dell'endpoint singolo, perché è la stessa pipeline.
Riferimento
La superficie contro cui integri.
Quattro endpoint e due header. Il riferimento completo, con un banco di prova dal vivo, è nella documentazione.
| Endpoint o header | Tipo | Che cosa fa |
|---|---|---|
| POST /v1/check_email | synchronous | Verifica un indirizzo e ricevi il report con punteggio nella stessa risposta. È la chiamata che fa quasi ogni integrazione. |
| POST /v1/bulk | job | Invia una lista e ricevi un id di job. Accetta molti più indirizzi di quanti ne vorresti tenere con una connessione aperta. |
| GET /v1/bulk/{job_id} | job | Interroga un job per stato e avanzamento, così la tua interfaccia mostra un progresso invece di un indicatore che gira. |
| GET /v1/bulk/{job_id}/results | json | csv | Recupera le righe di un job finito, paginate, in JSON o nello stesso CSV che scarica la dashboard. |
| Authorization: Bearer | header | Come si autentica ogni richiesta. Tieni la chiave sul tuo server: una chiave che arriva al browser è un saldo di crediti pubblico. |
| 429 / Retry-After | header | Che cosa ricevi se superi il limite di frequenza del tuo piano. Aspetta i secondi indicati nell'header e riprova; una richiesta respinta non viene addebitata. |
FAQ
Le prime domande di chi integra
Come si autentica?
Un header Authorization con un token. Tenete la chiave sul vostro server: una chiave che arriva al browser è un saldo crediti pubblico.
Cosa faccio con un verdetto sconosciuto?
Lasciate passare l’utente, segnate il record e ricontrollate più tardi. Quasi sempre è il server destinatario che rifiuta di rispondere.
Quali piani includono le chiavi API?
Qualsiasi piano a pagamento, mensile o a consumo. Gli account gratuiti verificano dal pannello, che basta per vedere il formato della risposta.
Posso chiamarla dal browser?
No. Fatela passare dal vostro server. Una chiave nel browser è un saldo crediti pubblico.
Quali sono i limiti di frequenza?
Sono fissati per piano invece di essere pubblicati come un unico numero globale, perché un'integrazione su un modulo di iscrizione e una passata notturna di liste hanno forme molto diverse. Quando superi il tuo, l'API risponde 429 con un header Retry-After e non addebita la richiesta.
Esiste un SDK?
No, ed è il punto. Un endpoint con corpo JSON non ha bisogno di alcuna libreria client, e un wrapper sottile è una dipendenza da tenere aggiornata senza guadagno. Ogni linguaggio negli esempi qui sopra usa il proprio client HTTP standard.
Leggete la risposta prima di scriverci contro.
100 crediti alla registrazione, senza carta. Provate indirizzi reali e vedete l’oggetto esatto che riceverà il vostro codice.