Validación de Email - API Estándar
El endpoint lookupemail valida una dirección de correo electrónico completa y devuelve su sintaxis, dominio y estado de buzón, con una sugerencia de corrección opcional.
Cuándo usar este endpoint - Llame a
lookupemail una vez que el usuario haya introducido (o abandonado) una dirección de correo completa, para confirmar que es válida y entregable antes de almacenarla. Para sugerir direcciones mientras el usuario todavía está escribiendo, consulte API de Email — Sugerir una dirección de correo electrónico (REST) →
lookupemail
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/lookupemail/?Email={EMAIL}&Licence={LICENCE_CODE}&Rectify={RECTIFY}&CheckUser={CHECK_USER}&TimeOut={TIME_OUT}
Ejemplos de código
Dirección válida, sintaxis y dominio 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/
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
Dirección válida, sintaxis y dominio 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))
}
Parámetros
| Parámetro | Descripción | Obl / Opc |
|---|---|---|
| Dirección de correo electrónico a validar. | Obligatorio | |
| Licence | Su clave de licencia DQE o token OAuth2. Contacte con soporte si aún no dispone de una. | Obligatorio |
| Rectify |
Y para recibir una sugerencia de corrección cuando la sintaxis no sea válida o el dominio sea desconocido.Por defecto:
N (no se sugiere ninguna corrección) |
Opcional |
| CheckUser |
N si no desea verificar la parte antes del signo @ (nombre de usuario).Por defecto:
Y (se verifica el nombre de usuario) |
Opcional |
| TimeOut | Tiempo máximo de consulta para la verificación, en segundos. Ejemplo: 0.5 para 500 ms.Por defecto:
6
|
Opcional |
Respuesta
En caso de éxito, la API devuelve un objeto JSON que contiene el número de resultados y un array de las direcciones de correo validadas.
Lectura de negocio:
IdError y ActivityCode contienen el resultado detallado de la validación — vea la lista completa en la referencia de códigos de respuesta de la API. SuggestedEmail solo se completa cuando Rectify=Y y se encontró una corrección.| Clave | Descripción | Tipo |
|---|---|---|
| Found | Número de direcciones de correo devueltas. | Integer |
| Emails | Array de resultados de validación, una entrada por cada dirección de correo enviada. | Array |
| ActivityCode | Estado de actividad de la dirección de correo. Vea la referencia de códigos de respuesta de la API. | String |
| IdError | Código de retorno de validación. Vea la referencia de códigos de respuesta de la API. | String |
| Corrected |
1 si se aplicó una corrección; 0 en caso contrario. |
Integer |
| SuggestedEmail | Dirección de correo corregida, devuelta cuando Rectify=Y y se encontró una corrección. |
String |
| InputEmail | Dirección de correo tal como se envió en la solicitud. | String |
Ejemplo de respuesta
Dirección válida, sin corrección aplicada
{
"Found": 1,
"Emails": [
{
"ActivityCode": "",
"IdError": "02",
"Corrected": 0,
"SuggestedEmail": "toto@gmail.com",
"InputEmail": "toto@gmail.com"
}
]
}
Códigos de respuesta
Códigos IdError
| Código | Descripción | Mensaje de interfaz sugerido |
|---|---|---|
00 |
Correo válido. | Correo válido |
01 |
Correo correcto pero no se pudo verificar el nombre. | Correo válido |
02 |
No se encontró la dirección de correo para este dominio. | Revise su dirección de correo |
03 |
Buzón lleno (rebote suave). | Revise su dirección de correo |
04 |
Correo vacío. | Revise su dirección de correo |
91 |
Error de sintaxis. | Revise su dirección de correo |
92 |
Dominio desconocido. | Revise su dirección de correo |
93 |
Correo o dominio en lista negra. | Revise su dirección de correo |
94 |
Nombre de usuario no autorizado. | Revise su dirección de correo |
95 |
Dirección de correo temporal desechable. | Revise su dirección de correo |
99 |
Servicio no disponible. | Correo válido |
Códigos ActivityCode
Considere M como el mes actual.
| Código | Descripción |
|---|---|
100 |
El correo se entregó una vez. |
200 |
El correo es válido. |
201 |
El correo estuvo activo el mes pasado. |
202 |
El correo estuvo activo entre M-1 y M-2. |
203 |
El correo estuvo activo entre M-2 y M-3. |
204 |
El correo estuvo activo entre M-3 y M-4. |
206 |
El correo estuvo activo entre M-4 y M-6. |
209 |
El correo estuvo activo entre M-6 y M-9. |
212 |
El correo estuvo activo entre M-9 y M-12. |
300 |
Correo inactivo. |
Errores
| HTTP | Tipo de error | Cuerpo de la respuesta |
|---|---|---|
| 400 | Parámetro obligatorio ausente o vacío (ej. Email) |
{"status": 400, "message": "Missing parameters", "details": "Email", "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.
Abrir consola
Ver también
Relacionada con