Développeurs

Une API de vérification d'e-mails qui fonctionne, tout simplement

Vérifiez une adresse en temps réel ou envoyez une liste entière en batch. Toutes les requêtes utilisent HTTPS et renvoient du JSON. Créez vos clés API dans votre tableau de bord, rubrique Clés API.

  • REST et JSON
  • Callbacks batch
  • Mêmes crédits que le tableau de bord
La page Clés API de BounceBell avec les clés actives et un formulaire pour créer une nouvelle clé

Authentification

Envoyez votre clé API comme jeton bearer dans l'en-tête Authorization de chaque requête. Conservez les clés sur votre serveur. Ne les placez jamais dans du code exécuté dans le navigateur ni dans des applications mobiles.

Authorization: Bearer YOUR_API_KEY

L'URL de base de chaque endpoint est https://bouncebell.com/api/v1.

Vérifier une adresse

GET https://bouncebell.com/api/v1/verify

ParamètreObligatoireDescription
emailOuiL'adresse à vérifier. Encodez-la pour l'URL.
timeoutNonDélai d'attente du serveur de messagerie en secondes, de 3 à 30. 10 par défaut. Si le délai expire, le statut est unknown et aucun crédit n'est utilisé.

Exemple

curl "https://bouncebell.com/api/v1/verify?email=rini.elizabeth%40acme-foods.example" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "email": "rini.elizabeth@acme-foods.example",
  "status": "valid",
  "reason": "mailbox_exists",
  "domain": "acme-foods.example",
  "mx_record": "mx1.acme-foods.example",
  "disposable": false,
  "role": false,
  "free_provider": false,
  "catch_all": false,
  "did_you_mean": null,
  "checked_at": "2026-10-30T09:30:12Z",
  "credits_used": 1
}

Champs du résultat

ChampTypeDescription
emailstringL'adresse telle que vous l'avez envoyée.
statusstringLe verdict. Voir les statuts.
reasonstringLa raison du verdict, par exemple mailbox_not_found ou no_mail_server.
domainstringLa partie domaine, en minuscules.
mx_recordstring or nullLe serveur de messagerie ayant la priorité la plus élevée.
disposablebooleanVrai si le domaine est un service de boîte de réception temporaire.
rolebooleanVrai pour les boîtes partagées comme info@ ou support@.
free_providerbooleanVrai pour les fournisseurs de messagerie gratuits comme Gmail.
catch_allbooleanVrai lorsque le domaine accepte toutes les adresses.
did_you_meanstring or nullUne adresse corrigée lorsque le domaine semble contenir une faute de frappe.
checked_atstringDate et heure de la vérification, au format ISO 8601 UTC.
credits_usedinteger1, ou 0 lorsque le statut est unknown.

Statuts

StatutSignificationAction suggérée
validLa boîte aux lettres existe et accepte les e-mails.Envoyer
invalidL'adresse, le domaine ou la boîte aux lettres n'existe pas.Supprimer
disposableUn service de boîte de réception temporaire.Supprimer
catch_allLe domaine accepte toutes les adresses, la boîte aux lettres ne peut donc pas être confirmée.À examiner
roleUne boîte partagée qui existe.À examiner
unknownLe serveur de messagerie n'a pas répondu à temps. Non facturé.Réessayer plus tard

Batchs

Envoyez jusqu'à 100 000 adresses en une seule requête. Le batch s'exécute en arrière-plan : interrogez son statut ou indiquez une callback_url que nous appellerons lorsque le batch sera terminé.

Créer un batch

POST https://bouncebell.com/api/v1/batches

curl -X POST "https://bouncebell.com/api/v1/batches" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "October import", "emails": ["a@example.com", "b@example.com"],
       "callback_url": "https://yourapp.example/hooks/bouncebell"}'
{ "id": "bat_8f2k1q3m9x7w4p", "status": "queued", "total": 2, "done": 0 }

Les crédits de chaque adresse unique sont réservés à la création du batch, et les résultats inconnus sont remboursés à la fin. Le callback reçoit un POST avec {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}}. Les URL de callback doivent utiliser HTTPS.

Suivre la progression

GET https://bouncebell.com/api/v1/batches/{id}

{ "id": "bat_8f2k1q3m9x7w4p", "status": "running", "total": 2, "done": 1 }

Le statut est queued, running ou done. Lorsqu'il est done, la réponse contient aussi les counts par statut.

Télécharger les résultats

GET https://bouncebell.com/api/v1/batches/{id}/results

Renvoie du JSON par défaut. Ajoutez ?format=csv pour obtenir un fichier CSV. Chaque ligne contient les mêmes champs qu'une vérification unitaire.

Crédits

GET https://bouncebell.com/api/v1/credits

{ "credits_remaining": 33420 }

Erreurs et limites

Les erreurs renvoient un corps JSON avec un code error et un message lisible.

Code HTTPErreurQue faire
400bad_requestUn paramètre est manquant ou incorrect. Lisez le message.
401invalid_keyVérifiez que la clé est correcte et n'a pas été révoquée.
402no_creditsAchetez plus de crédits.
403email_not_confirmedOuvrez le lien de confirmation que nous vous avons envoyé par e-mail lors de votre inscription.
404not_foundLe batch n'existe pas ou a été supprimé après 30 jours.
429rate_limitedRalentissez. Attendez le nombre de secondes indiqué dans l'en-tête Retry-After.
500server_errorRéessayez après un court délai. Si le problème persiste, contactez le support.

Les vérifications unitaires sont limitées à 20 requêtes par seconde et par clé. Contactez-nous si vous avez besoin de plus.