Docs/Vérification unitaire

Vérification unitaire d'e-mail

Vérifiez une adresse e-mail en temps réel. La réponse inclut des informations de durée, et la latence dépend des serveurs de messagerie distants et des conditions réseau.

Voir le Markdown OpenAPI JSON

Point de terminaison

POST https://verimails.com/api/verify/single

Requête

En-têtes

En-têteObligatoireValeur
AuthorizationOuiBearer YOUR_API_KEY
Content-TypeOuiapplication/json

Corps

ChampTypeObligatoireDescription
emailstringOuiL'adresse e-mail à vérifier
json
{
  "email": "user@example.com"
}

Réponse

Champs de la réponse

ChampTypeDescription
emailstringL'adresse e-mail vérifiée
statusstringRésultat de la vérification : valid, invalid, risky, unknown, ou à la disposable
safe_to_sendbooleanIndique si VeriMails recommande l'envoi à cette adresse. True uniquement lorsque status vaut valid.
confidence_scorenumberNiveau de confiance global du résultat de vérification.
domainstringLe domaine extrait de l'adresse e-mail.
is_catch_allbooleanIndique si le domaine accepte les e-mails de manière large, ce qui rend la boîte individuelle plus difficile à confirmer.
is_disposablebooleanIndique si l'adresse utilise un fournisseur d'e-mails jetables ou temporaires.
is_role_basedbooleanIndique si l'adresse est une boîte générique comme info@ ou support@.
is_freebooleanIndique si le domaine est un fournisseur de messagerie gratuit.
verification_time_msintegerDurée de traitement en millisecondes.

Exemple de réponse — e-mail valide

json
{
  "email": "john@company.com",
  "status": "valid",
  "safe_to_send": true,
  "confidence_score": 0.95,
  "reason": "Verification completed",
  "domain": "company.com",
  "is_disposable": false,
  "is_role_based": false,
  "is_free": false,
  "is_catch_all": false,
  "mx_records": ["mx1.company.com"],
  "smtp_response": null,
  "verification_time_ms": 642,
  "api_version": "1.0"
}

Exemple de réponse — domaine catch-all

json
{
  "email": "sarah@enterprise.io",
  "status": "catchall",
  "safe_to_send": false,
  "confidence_score": 0.52,
  "reason": "Catch-all domain detected",
  "domain": "enterprise.io",
  "is_disposable": false,
  "is_role_based": false,
  "is_free": false,
  "is_catch_all": true,
  "mx_records": ["mx1.enterprise.io"],
  "smtp_response": null,
  "verification_time_ms": 918,
  "api_version": "1.0"
}

Exemples de code

bash
curl -X POST https://verimails.com/api/verify/single \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'
python
import requests

def verify_email(email, api_key):
    response = requests.post(
        "https://verimails.com/api/verify/single",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        },
        json={"email": email}
    )
    response.raise_for_status()
    return response.json()

result = verify_email("user@example.com", "YOUR_API_KEY")
if result["safe_to_send"]:
    print("Safe to contact!")
javascript
async function verifyEmail(email, apiKey) {
  const res = await fetch("https://verimails.com/api/verify/single", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ email })
  });

  if (!res.ok) throw new Error(`API error: ${res.status}`);
  return res.json();
}

const result = await verifyEmail("user@example.com", "YOUR_API_KEY");
console.log(result.status);       // "valid"
console.log(result.safe_to_send); // true
php
function verifyEmail($email, $apiKey) {
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => "https://verimails.com/api/verify/single",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_HTTPHEADER => [
            "Authorization: Bearer {$apiKey}",
            "Content-Type: application/json"
        ],
        CURLOPT_POSTFIELDS => json_encode(["email" => $email])
    ]);

    $result = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $result;
}

$result = verifyEmail("user@example.com", "YOUR_API_KEY");
if ($result["safe_to_send"]) {
    echo "Safe to contact!";
}

Codes de statut

Statut HTTPSignification
200Succès — résultat renvoyé
401Non autorisé — clé API manquante ou invalide
422Erreur de validation — format d'e-mail invalide ou champ manquant
429Limite de requêtes dépassée — ralentissez vos requêtes
500Erreur serveur — réessayez dans un instant