Sugerencia de Email - API Estándar
El endpoint emailsuggest sugiere direcciones de correo electrónico probables a medida que el usuario escribe, combinando su nombre, apellido y los caracteres ya introducidos para devolver sugerencias ordenadas.
Cuándo usar este endpoint - Llame a
emailsuggest mientras el usuario todavía está escribiendo su dirección de correo, para ofrecer sugerencias de autocompletado basadas en su nombre. Para validar una dirección de correo completa, consulte API de Email — Validar una dirección de correo electrónico (REST) →
emailsuggest
Solicitud
Se admiten tanto GET como POST.
{SERVER_ADDRESS} y {LICENCE_CODE} son proporcionados por DQE al crear la cuenta. Contacte con su gestor de cuenta DQE para obtener estas credenciales.
GEThttps://{SERVER_ADDRESS}/v1/emailsuggest/?FirstName={FIRST_NAME}&LastName={LAST_NAME}&Email={EMAIL}&Country={COUNTRY_CODE}&Licence={LICENCE_CODE}
Ejemplos de código
Francia - John Lim, parcial "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/
Envíe todos los parámetros en el cuerpo de la solicitud usando Content-Type: application/x-www-form-urlencoded. La dirección del servidor permanece en la URL.
Ejemplos de código
Francia - John Lim, parcial "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))
}
Parámetros
| Parámetro | Descripción | Obl / Opc |
|---|---|---|
| FirstName | Nombre introducido por el usuario. | Obligatorio |
| LastName | Apellido introducido por el usuario. | Obligatorio |
| Parte de la dirección de correo ya introducida por el usuario. | Obligatorio | |
| Country | Código de país ISO 3166-1 alpha-3. Por defecto:
FRA
|
Opcional |
| Licence | Su clave de licencia DQE o token OAuth2. Contacte con soporte si aún no dispone de una. | Obligatorio |
Respuesta
En caso de éxito, la API devuelve un objeto JSON que contiene el número de resultados y un array de sugerencias de email.
Lectura de negocio:
List contiene las sugerencias listas para mostrar en su menú de autocompletado, ordenadas de más a menos probable. Syntaxe indica si la parte del correo ya introducida tiene una sintaxis correcta.| Clave | Descripción | Tipo |
|---|---|---|
| Found | Número de resultados de sugerencia devueltos. | Integer |
| Suggestion | Array de resultados de sugerencia, una entrada por combinación de datos enviada. | Array |
| Instance | Valor personalizado devuelto tal cual en la respuesta. | String |
| InputEmail | Valor del correo tal como se envió en la solicitud. | String |
| Syntaxe |
ok o ko, según la sintaxis del correo ya introducido. |
String |
| List | Lista de direcciones de correo sugeridas. | Array |
| ListCount | Número de direcciones de correo sugeridas en List. |
Integer |
Ejemplo de respuesta
Francia - John Lim, parcial "jlim@gma"
{
"Found": 1,
"Suggestion": [
{
"Instance": "0",
"InputEmail": "jlim@gma",
"Syntaxe": "ok",
"List": [
"jlim@gmail.com",
"jlim@gmx.fr"
],
"ListCount": 2
}
]
}
Errores
| HTTP | Tipo de error | Cuerpo de la respuesta |
|---|---|---|
| 400 | Parámetro obligatorio ausente o vacío (ej. FirstName) |
{"status": 400, "message": "Missing parameters", "details": "FirstName", "error": "bad request"} |
| 401 | Clave de licencia inválida o no autorizada | {"status": 401, "message": "Your licence is not allowed to cover this functionnality", "details": "{WRONG LICENSE}", "error": "unauthorized_client"} |
Probar la API
Haga clic en el botón de abajo para probar este endpoint en vivo en su navegador.