Listes de vérification
Vérifiez jusqu’à 10 000 adresses d’un coup et exportez les résultats.
Créer une liste
Crée une liste de vérification et lance la vérification de ses adresses en arrière-plan. Chaque adresse est vérifiée en mode full, y compris le contrôle de la boîte aux lettres décrit dans Vérifier une adresse. Nécessite une clé API avec la portée full.
/email-verification-listsCorps de la requête
namestringObligatoireNom de la liste, de 1 à 255 caractères.
emailsstring[]ObligatoireAdresses à vérifier, de 1 à 10 000. Chaque élément doit être une adresse e-mail valide. Emailit supprime leurs espaces de début et de fin, les convertit en minuscules et supprime les doublons.
Réponse
Renvoie 201 Created avec la liste. Emailit débite 5 crédits par adresse unique avant le début de la vérification. La réponse indique combien d’adresses ont été acceptées (valid_emails_count, unique_emails_count) et combien de tâches de vérification ont été mises en file d’attente (dispatched_jobs). La nouvelle liste a le statut processing.
stats conserve ses valeurs initiales jusqu’à ce que toutes les adresses soient traitées ; la liste passe alors à completed avec ses totaux définitifs. Interrogez régulièrement Récupérer une liste ou écoutez les événements webhook :
email_verification_list.createdà la création de la liste.email_verification.updatedpour chaque adresse, dès qu’elle est traitée.email_verification_list.updatedquand la liste est terminée.
| Statut | Cas |
|---|---|
400 |
name ou emails est absent ou vide, emails contient plus de 10 000 éléments, ou un élément n’est pas une adresse valide (erreur de validation standard). |
402 |
L’espace de travail n’a pas assez de crédits pour toutes les adresses uniques. |
Statistiques
| Champ | Description |
|---|---|
total_emails |
Adresses uniques de la liste. |
processed_emails |
Adresses traitées, avec ou sans succès. |
successful_verifications |
Adresses vérifiées avec succès. |
failed_verifications |
Adresses dont la vérification a échoué avec une erreur. |
pending_emails |
Adresses pas encore traitées. |
{
"id": "evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a",
"name": "October newsletter import",
"valid_emails_count": 2,
"unique_emails_count": 2,
"invalid_emails_count": 0,
"status": "processing",
"dispatched_jobs": 2,
"stats": {
"total_emails": 2,
"processed_emails": 0,
"successful_verifications": 0,
"failed_verifications": 0,
"pending_emails": 2
},
"created_at": "2026-10-01T10:30:02.441000+00:00"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Insufficient credits for email verification list."
}Lister les listes
Renvoie vos listes de vérification d’e-mails, de la plus récente à la plus ancienne. Nécessite une clé API avec la portée full.
/email-verification-listsParamètres de requête
pageintegerNuméro de page, à partir de 1. Par défaut : 1.
limitintegerListes par page, de 1 à 100. Par défaut : 10.
statusstringUniquement les listes ayant ce statut : pending, processing, completed, failed ou canceled.
searchstringCorrespondance insensible à la casse sur le nom de la liste.
matchstringall (par défaut) exige que tous les filtres correspondent. Avec or, il suffit qu’un filtre corresponde. Consultez Filtrage et tri.
orderstringClé de tri de cette liste. Consultez les clés de tri ci-dessous.
directionstringasc ou desc.
Filtres et tri
Les filtres de liste sont des paramètres de requête key.condition=value sur un seul niveau. Consultez Filtrage et tri pour match, order, direction et la liste des conditions par type.
Clés de filtre
| Clé | Type | Conditions | Remarques |
|---|---|---|---|
name | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
status | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
created_at | date | exact, before, after, empty, not_empty |
Clés de tri
Passez dans order l’une de ces clés et dans direction la valeur asc ou desc : name, status, created_at
Réponse
Renvoie 200 OK avec les listes dans data, ainsi que next_page_url et previous_page_url (null aux extrémités). Chaque liste contient id, name, status, stats, created_at et updated_at ; pour les champs de stats, consultez Créer une liste.
{
"data": [
{
"id": "evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a",
"name": "October newsletter import",
"status": "completed",
"stats": {
"total_emails": 1000,
"processed_emails": 1000,
"successful_verifications": 996,
"failed_verifications": 4,
"pending_emails": 0
},
"created_at": "2026-10-01T10:30:02.441000+00:00",
"updated_at": "2026-10-01T10:41:57.020000+00:00"
}
],
"next_page_url": "/v2/email-verification-lists?page=2&limit=10",
"previous_page_url": null
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Invalid API key"
}Récupérer une liste
Renvoie une liste de vérification d’e-mails. Interrogez-la régulièrement pour savoir quand elle passe à completed, ou écoutez plutôt l’événement webhook email_verification_list.updated. Nécessite une clé API avec la portée full.
/email-verification-lists/:idParamètres de chemin
idstringObligatoireID de la liste, par exemple evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a.
Réponse
Renvoie 200 OK avec les champs id, name, status, stats, created_at et updated_at de la liste. Tant qu’une liste est au statut processing, stats affiche ses valeurs initiales ; les totaux définitifs sont enregistrés à la fin du traitement. Pour les champs de stats, consultez Créer une liste.
Renvoie 404 si la liste n’existe pas dans votre espace de travail.
{
"id": "evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a",
"name": "October newsletter import",
"status": "completed",
"stats": {
"total_emails": 1000,
"processed_emails": 1000,
"successful_verifications": 996,
"failed_verifications": 4,
"pending_emails": 0
},
"created_at": "2026-10-01T10:30:02.441000+00:00",
"updated_at": "2026-10-01T10:41:57.020000+00:00"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Email verification list not found"
}Lister les résultats
Renvoie un résultat par adresse d’une liste de vérification, du plus récemment mis à jour au plus ancien. Les résultats apparaissent au fur et à mesure que les adresses sont traitées : vous pouvez donc les lire avant la fin de la liste entière. Nécessite une clé API avec la portée full.
/email-verification-lists/:id/resultsParamètres de chemin
idstringObligatoireID de la liste, par exemple evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a.
Paramètres de requête
pageintegerNuméro de page, à partir de 1. Par défaut : 1.
limitintegerRésultats par page, de 1 à 100. Par défaut : 50.
statusstringUniquement les résultats ayant ce statut : pending, processing, completed, failed ou canceled.
resultstringUniquement les résultats ayant cette issue : safe, invalid, disposable, disabled, inbox_full ou unknown. Pour trouver les adresses génériques, utilisez result.exact=role.
matchstringall (par défaut) exige que tous les filtres correspondent. Avec or, il suffit qu’un filtre corresponde. Consultez Filtrage et tri.
orderstringClé de tri de cette liste. Consultez les clés de tri ci-dessous.
directionstringasc ou desc.
Filtres et tri
Les filtres de liste sont des paramètres de requête key.condition=value sur un seul niveau. Consultez Filtrage et tri pour match, order, direction et la liste des conditions par type.
Clés de filtre
| Clé | Type | Conditions | Remarques |
|---|---|---|---|
email | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
status | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
result | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
risk | string | exact, not_exact, contains, not_contains, starts_with, ends_with, empty, not_empty | |
created_at | date | exact, before, after, empty, not_empty |
Clés de tri
Passez dans order l’une de ces clés et dans direction la valeur asc ou desc : email, status, result, risk, created_at
Réponse
Renvoie 200 OK avec les résultats dans data, ainsi que next_page_url et previous_page_url (null aux extrémités). Chaque résultat contient l’id de l’adresse (ev_…), email, status, result, score, risk, mx_records, error_message (renseigné si la vérification a échoué) et les horodatages. result, score et risk ont la même signification que dans Vérifier une adresse. Pour obtenir le détail de chaque contrôle, exportez les résultats.
Renvoie 404 si la liste n’existe pas dans votre espace de travail.
{
"data": [
{
"id": "ev_2xLeA1Pn6Rw3Ks8Vb0Ht5Mq2Fd9c",
"email": "ada@example.com",
"status": "completed",
"result": "safe",
"score": 100,
"risk": "low",
"mx_records": [
{ "priority": 10, "exchange": "mx1.example.com" }
],
"error_message": null,
"created_at": "2026-10-01T10:30:02.441000+00:00",
"updated_at": "2026-10-01T10:30:09.876000+00:00"
},
{
"id": "ev_2xLeA2Qm7Sx4Lt9Wc1Ju6Nr3Ge0d",
"email": "info@acme-typo.example",
"status": "completed",
"result": "invalid",
"score": 25,
"risk": "high",
"mx_records": [],
"error_message": null,
"created_at": "2026-10-01T10:30:02.441000+00:00",
"updated_at": "2026-10-01T10:30:08.112000+00:00"
}
],
"next_page_url": "/v2/email-verification-lists/evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a/results?page=2&limit=50",
"previous_page_url": null
}{
"statusCode": 404,
"error": "Not Found",
"message": "Email verification list not found"
}Exporter les résultats
Télécharge les résultats d’une liste de vérification sous forme de feuille de calcul XLSX. La liste doit d’abord être au statut completed. Nécessite une clé API avec la portée full.
/email-verification-lists/:id/exportParamètres de chemin
idstringObligatoireID de la liste, par exemple evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a.
Réponse
Renvoie 200 OK avec le fichier comme corps de la réponse, l’en-tête Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet et un en-tête Content-Disposition: attachment. Le fichier porte le nom de l’ID de la liste, par exemple evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a.xlsx.
| Statut | Cas |
|---|---|
400 |
La liste n’est pas encore au statut completed. |
404 |
La liste n’existe pas dans votre espace de travail, ou elle n’a aucun résultat à exporter. |
HTTP/1.1 200 OK
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename="evl_2xLe7Hc2Vq9Nb4Wt1Ys6Kd3Rf8a.xlsx"
<binary XLSX data>{
"statusCode": 400,
"error": "Bad Request",
"message": "Cannot export incomplete list. List must be completed first."
}{
"statusCode": 404,
"error": "Not Found",
"message": "Email verification list not found"
}