Validation d'email - API Standard
L'endpoint lookupemail valide une adresse email complète et indique sa syntaxe, son domaine et son statut de boîte mail, avec une suggestion de correction optionnelle.
Quand utiliser cet endpoint - Appelez
lookupemail une fois que l'utilisateur a saisi (ou quitté) une adresse email complète, afin de confirmer qu'elle est valide et délivrable avant de l'enregistrer. Pour proposer des complétions pendant que l'utilisateur tape encore, consultez plutôt API Email — Suggérer une adresse email (REST) →
lookupemail
Requête
Les méthodes GET et POST sont toutes deux prises en charge.
{SERVER_ADDRESS} et {LICENCE_CODE} sont fournis par DQE à la création du compte. Contactez votre chargé de compte DQE pour obtenir ces identifiants.
GEThttps://{SERVER_ADDRESS}/v1/lookupemail/?Email={EMAIL}&Licence={LICENCE_CODE}&Rectify={RECTIFY}&CheckUser={CHECK_USER}&TimeOut={TIME_OUT}
Exemples de code
Adresse valide, syntaxe et domaine OK
curl "https://{SERVER_ADDRESS}/v1/lookupemail/?Email=toto%40gmail.com&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/lookupemail/?" + new URLSearchParams({
Email: "toto@gmail.com",
Licence: "{LICENCE_CODE}"
}))
.then(r => r.json())
.then(data => console.log(data));
import requests
response = requests.get(
"https://{SERVER_ADDRESS}/v1/lookupemail/",
params={
"Email": "toto@gmail.com",
"Licence": "{LICENCE_CODE}",
},
)
print(response.json())
<?php
$params = http_build_query([
'Email' => 'toto@gmail.com',
'Licence' => '{LICENCE_CODE}',
]);
$ch = curl_init("https://{SERVER_ADDRESS}/v1/lookupemail/?{$params}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const axios = require('axios');
axios.get('https://{SERVER_ADDRESS}/v1/lookupemail/', {
params: {
Email: 'toto@gmail.com',
Licence: '{LICENCE_CODE}'
}
})
.then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient();
String url = "https://{SERVER_ADDRESS}/v1/lookupemail/"
+ "?Email=toto%40gmail.com&Licence={LICENCE_CODE}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using var client = new HttpClient();
var url = "https://{SERVER_ADDRESS}/v1/lookupemail/" +
"?Email=toto%40gmail.com&Licence={LICENCE_CODE}";
var response = await client.GetAsync(url);
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://{SERVER_ADDRESS}/v1/lookupemail/" +
"?Email=toto%40gmail.com&Licence={LICENCE_CODE}"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
POSThttps://{SERVER_ADDRESS}/v1/lookupemail/
Envoyez tous les paramètres dans le corps de la requête au format Content-Type: application/x-www-form-urlencoded. L'adresse du serveur reste dans l'URL.
Exemples de code
Adresse valide, syntaxe et domaine OK
curl -X POST "https://{SERVER_ADDRESS}/v1/lookupemail/" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "Email=toto@gmail.com" \
-d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/lookupemail/", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
Email: "toto@gmail.com",
Licence: "{LICENCE_CODE}"
})
})
.then(r => r.json())
.then(data => console.log(data));
import requests
response = requests.post(
"https://{SERVER_ADDRESS}/v1/lookupemail/",
data={
"Email": "toto@gmail.com",
"Licence": "{LICENCE_CODE}",
},
)
print(response.json())
<?php
$ch = curl_init("https://{SERVER_ADDRESS}/v1/lookupemail/");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'Email' => 'toto@gmail.com',
'Licence' => '{LICENCE_CODE}',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
const axios = require('axios');
const qs = require('querystring');
axios.post('https://{SERVER_ADDRESS}/v1/lookupemail/', qs.stringify({
Email: 'toto@gmail.com',
Licence: '{LICENCE_CODE}'
}))
.then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient();
String form = "Email=toto%40gmail.com&Licence={LICENCE_CODE}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://{SERVER_ADDRESS}/v1/lookupemail/"))
.header("Content-Type", "application/x-www-form-urlencoded")
.POST(HttpRequest.BodyPublishers.ofString(form))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using var client = new HttpClient();
var form = new Dictionary<string, string> {
["Email"] = "toto@gmail.com",
["Licence"] = "{LICENCE_CODE}"
};
var response = await client.PostAsync(
"https://{SERVER_ADDRESS}/v1/lookupemail/",
new FormUrlEncodedContent(form));
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
form := url.Values{}
form.Set("Email", "toto@gmail.com")
form.Set("Licence", "{LICENCE_CODE}")
resp, err := http.PostForm("https://{SERVER_ADDRESS}/v1/lookupemail/", form)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
Paramètres
| Paramètre | Description | Obl / Fac |
|---|---|---|
| L'adresse email à valider. | Obligatoire | |
| Licence | Votre clé de licence DQE ou jeton OAuth2. Contactez le support si vous n'en avez pas encore. | Obligatoire |
| Rectify |
Y pour recevoir une suggestion de correction lorsque la syntaxe est invalide ou le domaine inconnu.Par défaut :
N (aucune correction suggérée) |
Facultatif |
| CheckUser |
N si vous ne souhaitez pas vérifier la partie avant le signe @ (nom d'utilisateur).Par défaut :
Y (le nom d'utilisateur est vérifié) |
Facultatif |
| TimeOut | Temps de requête maximum pour la vérification, en secondes. Exemple : 0.5 pour 500 ms.Par défaut :
6
|
Facultatif |
Réponse
En cas de succès, l'API renvoie un objet JSON contenant le nombre de résultats et un tableau des adresses email validées.
Lecture métier :
IdError et ActivityCode portent le résultat détaillé de la validation - voir la liste complète dans la référence des codes de réponse de l'API. SuggestedEmail n'est renseigné que lorsque Rectify=Y et qu'une correction a été trouvée.| Clé | Description | Type |
|---|---|---|
| Found | Nombre d'adresses email retournées. | Integer |
| Emails | Tableau des résultats de validation, une entrée par adresse email soumise. | Array |
| ActivityCode | Statut d'activité de l'adresse email. Voir la référence des codes de réponse de l'API. | String |
| IdError | Code retour de validation. Voir la référence des codes de réponse de l'API. | String |
| Corrected |
1 si une correction a été appliquée ; 0 sinon. |
Integer |
| SuggestedEmail | Adresse email corrigée, renvoyée quand Rectify=Y et qu'une correction a été trouvée. |
String |
| InputEmail | Adresse email telle que soumise dans la requête. | String |
Exemple de réponse
Adresse valide, aucune correction appliquée
{
"Found": 1,
"Emails": [
{
"ActivityCode": "",
"IdError": "02",
"Corrected": 0,
"SuggestedEmail": "toto@gmail.com",
"InputEmail": "toto@gmail.com"
}
]
}
Codes de réponse
Codes IdError
| Code | Description | Message UI suggéré |
|---|---|---|
00 |
Email valide. | Email valide |
01 |
Email correct mais le nom n'a pas pu être vérifié. | Email valide |
02 |
Adresse email introuvable pour ce domaine. | Veuillez vérifier votre adresse email |
03 |
Boîte de réception pleine (soft bounce). | Veuillez vérifier votre adresse email |
04 |
Email vide. | Veuillez vérifier votre adresse email |
91 |
Erreur de syntaxe. | Veuillez vérifier votre adresse email |
92 |
Domaine inconnu. | Veuillez vérifier votre adresse email |
93 |
Email ou domaine sur liste noire. | Veuillez vérifier votre adresse email |
94 |
Nom d'utilisateur non autorisé. | Veuillez vérifier votre adresse email |
95 |
Adresse email temporaire jetable. | Veuillez vérifier votre adresse email |
99 |
Service indisponible. | Email valide |
Codes ActivityCode
Considérez M comme le mois en cours.
| Code | Description |
|---|---|
100 |
L'email a été délivré une fois. |
200 |
L'email est valide. |
201 |
L'email était actif le mois dernier. |
202 |
L'email était actif entre M-1 et M-2. |
203 |
L'email était actif entre M-2 et M-3. |
204 |
L'email était actif entre M-3 et M-4. |
206 |
L'email était actif entre M-4 et M-6. |
209 |
L'email était actif entre M-6 et M-9. |
212 |
L'email était actif entre M-9 et M-12. |
300 |
Email inactif. |
Erreurs
| HTTP | Type d'erreur | Corps de la réponse |
|---|---|---|
| 400 | Paramètre obligatoire manquant ou vide (ex. Email) |
{"status": 400, "message": "Missing parameters", "details": "Email", "error": "bad request"} |
| 401 | Clé de licence invalide ou non autorisée | {"status": 401, "message": "Your licence is not allowed to cover this functionnality", "details": "{WRONG LICENSE}", "error": "unauthorized_client"} |
Tester l'API
Cliquez sur le bouton ci-dessous pour tester cet endpoint en direct dans votre navigateur.
Ouvrir la console
Voir aussi
Associé à