Suggestion d'email - API Standard
L'endpoint emailsuggest suggère des adresses email probables à mesure que l'utilisateur tape, en combinant son prénom, son nom et les caractères déjà saisis, pour renvoyer des complétions classées.
Quand utiliser cet endpoint - Appelez
emailsuggest pendant que l'utilisateur est encore en train de saisir son adresse email, afin de proposer des suggestions de saisie automatique basées sur son nom. Pour valider une adresse email complète, consultez plutôt API Email — Valider une adresse email (REST) →
emailsuggest
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/emailsuggest/?FirstName={FIRST_NAME}&LastName={LAST_NAME}&Email={EMAIL}&Country={COUNTRY_CODE}&Licence={LICENCE_CODE}
Exemples de code
France - John Lim, partie "jlim@gma"
curl "https://{SERVER_ADDRESS}/v1/emailsuggest/?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/emailsuggest/?" + new URLSearchParams({
FirstName: "John",
LastName: "Lim",
Email: "jlim@gma",
Country: "FRA",
Licence: "{LICENCE_CODE}"
}))
.then(r => r.json())
.then(data => console.log(data));
import requests
response = requests.get(
"https://{SERVER_ADDRESS}/v1/emailsuggest/",
params={
"FirstName": "John",
"LastName": "Lim",
"Email": "jlim@gma",
"Country": "FRA",
"Licence": "{LICENCE_CODE}",
},
)
print(response.json())
<?php
$params = http_build_query([
'FirstName' => 'John',
'LastName' => 'Lim',
'Email' => 'jlim@gma',
'Country' => 'FRA',
'Licence' => '{LICENCE_CODE}',
]);
$ch = curl_init("https://{SERVER_ADDRESS}/v1/emailsuggest/?{$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/emailsuggest/', {
params: {
FirstName: 'John',
LastName: 'Lim',
Email: 'jlim@gma',
Country: 'FRA',
Licence: '{LICENCE_CODE}'
}
})
.then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient();
String url = "https://{SERVER_ADDRESS}/v1/emailsuggest/"
+ "?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&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/emailsuggest/" +
"?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&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/emailsuggest/" +
"?FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&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/emailsuggest/
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
France - John Lim, partie "jlim@gma"
curl -X POST "https://{SERVER_ADDRESS}/v1/emailsuggest/" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "FirstName=John" \
-d "LastName=Lim" \
-d "Email=jlim@gma" \
-d "Country=FRA" \
-d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/emailsuggest/", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
FirstName: "John",
LastName: "Lim",
Email: "jlim@gma",
Country: "FRA",
Licence: "{LICENCE_CODE}"
})
})
.then(r => r.json())
.then(data => console.log(data));
import requests
response = requests.post(
"https://{SERVER_ADDRESS}/v1/emailsuggest/",
data={
"FirstName": "John",
"LastName": "Lim",
"Email": "jlim@gma",
"Country": "FRA",
"Licence": "{LICENCE_CODE}",
},
)
print(response.json())
<?php
$ch = curl_init("https://{SERVER_ADDRESS}/v1/emailsuggest/");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'FirstName' => 'John',
'LastName' => 'Lim',
'Email' => 'jlim@gma',
'Country' => 'FRA',
'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/emailsuggest/', qs.stringify({
FirstName: 'John',
LastName: 'Lim',
Email: 'jlim@gma',
Country: 'FRA',
Licence: '{LICENCE_CODE}'
}))
.then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient();
String form = "FirstName=John&LastName=Lim&Email=jlim%40gma&Country=FRA&Licence={LICENCE_CODE}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://{SERVER_ADDRESS}/v1/emailsuggest/"))
.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> {
["FirstName"] = "John",
["LastName"] = "Lim",
["Email"] = "jlim@gma",
["Country"] = "FRA",
["Licence"] = "{LICENCE_CODE}"
};
var response = await client.PostAsync(
"https://{SERVER_ADDRESS}/v1/emailsuggest/",
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("FirstName", "John")
form.Set("LastName", "Lim")
form.Set("Email", "jlim@gma")
form.Set("Country", "FRA")
form.Set("Licence", "{LICENCE_CODE}")
resp, err := http.PostForm("https://{SERVER_ADDRESS}/v1/emailsuggest/", 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 |
|---|---|---|
| FirstName | Prénom saisi par l'utilisateur. | Obligatoire |
| LastName | Nom saisi par l'utilisateur. | Obligatoire |
| Partie de l'adresse email déjà saisie par l'utilisateur. | Obligatoire | |
| Country | Code pays ISO 3166-1 alpha-3. Par défaut :
FRA
|
Facultatif |
| Licence | Votre clé de licence DQE ou jeton OAuth2. Contactez le support si vous n'en avez pas encore. | Obligatoire |
Réponse
En cas de succès, l'API renvoie un objet JSON contenant le nombre de résultats et un tableau de suggestions d'email.
Lecture métier :
List contient les suggestions prêtes à afficher dans votre liste déroulante de saisie automatique, classées de la plus probable à la moins probable. Syntaxe indique si la partie de l'adresse déjà saisie est elle-même bien formée.| Clé | Description | Type |
|---|---|---|
| Found | Nombre de résultats de suggestion retournés. | Integer |
| Suggestion | Tableau des résultats de suggestion, une entrée par combinaison de saisie soumise. | Array |
| Instance | Valeur personnalisée renvoyée telle quelle dans la réponse. | String |
| InputEmail | Valeur de l'email telle que soumise dans la requête. | String |
| Syntaxe |
ok ou ko, selon la syntaxe de l'email déjà saisi. |
String |
| List | Liste des adresses email suggérées. | Array |
| ListCount | Nombre d'adresses email suggérées dans List. |
Integer |
Exemple de réponse
France - John Lim, partie "jlim@gma"
{
"Found": 1,
"Suggestion": [
{
"Instance": "0",
"InputEmail": "jlim@gma",
"Syntaxe": "ok",
"List": [
"jlim@gmail.com",
"jlim@gmx.fr"
],
"ListCount": 2
}
]
}
Erreurs
| HTTP | Type d'erreur | Corps de la réponse |
|---|---|---|
| 400 | Paramètre obligatoire manquant ou vide (ex. FirstName) |
{"status": 400, "message": "Missing parameters", "details": "FirstName", "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.