Skip to main content

ValidationResult

emailstring
statusstring
  • valid — Email valide et dĂ©livrable
  • invalid — Email invalide (syntaxe, domaine inexistant, SMTP rejetĂ©)
  • risky — Email risquĂ© (jetable, role account, alĂ©atoire)
  • unknown — Impossible de vĂ©rifier (timeout SMTP, greylisting)

Possible values: [valid, invalid, risky, unknown]

scoreinteger

Score de qualité (0 = invalide, 100 = parfait)

Possible values: >= 0 and <= 100

syntax object
validboolean
normalizedstring
localPartstring
Example: john.doe
domainstring
Example: gmail.com
dns object
hasMxRecordsboolean
mxRecordsstring[]
Example: ["gmail-smtp-in.l.google.com"]
hasARecordboolean
disposable object
isDisposableboolean
providerstringnullable
Example: 10minutemail.com
roleAccount object
isRoleAccountboolean
reasonstringnullable
Example: Generic prefix: info
typo object
hasTypoboolean
suggestionsstring[]
Example: ["[email protected]"]
randomDetection object
isRandomboolean
confidencenumber<float>
Example: 0.05
smtp object
performedboolean
deliverablebooleannullable
responseCodeintegernullable
Example: 250
responseMessagestringnullable
Example: OK
greylistedDetectedbooleannullable
catchAllDetectedbooleannullable
enrichment objectnullable

Enrichissement prénom/nom/genre/âge présumé, déduit du local-part. L'âge dépend du pays de référence (cf. paramètre country).

resultstring

Possible values: [valid, unknown]

scoreinteger
Example: 95
messagestring
Example: First name detected: Jean
details object
firstNamestringnullable
Example: Jean
firstNameScoreintegernullable
Example: 95
lastNamestringnullable
Example: Dupont
lastNameScoreintegernullable
genderstringnullable

Possible values: [male, female]

Example: male
genderScoreintegernullable
Example: 98
presumedAgeintegernullable

Âge présumé (médiane de la population vivante estimée). Omis si le pays de référence n'est pas couvert par des données d'âge.

Example: 74
presumedAgeRangestringnullable
Example: 65+
presumedAgeScoreintegernullable

Confiance de l'estimation d'âge (0-100).

Example: 90
ageBasis objectnullable

Base ayant servi à l'estimation d'âge.

countrystring

Pays de référence retenu (ISO 3166-1 alpha-2).

Example: FR
resolvedFromstring

Origine du pays : param (fourni), tld (ccTLD du domaine), default (France par défaut sur domaine ambigu).

Possible values: [param, tld, default]

sourcestringnullable

Source des données d'âge (insee, ssa-mirror, ons, ine) ou null si le pays n'est pas couvert (âge omis).

Example: insee
network object

Intelligence réseau de la connexion cliente (géo, ASN, Tor, datacenter). Informationnel/risque uniquement — n'entre PAS dans le score email. Présent quand une IP cliente est disponible et la feature activée.

resultstring

Possible values: [valid, risky, unknown]

details object
ipstringnullable
Example: 83.50.226.71
ipCountrystringnullable

ISO 3166-1 alpha-2

Example: FR
asnstringnullable
Example: AS3215
ispstringnullable
Example: Orange
connectionTypestring

Possible values: [residential, datacenter, mobile, unknown]

isTorboolean
isDatacenterboolean
isVpnboolean
isProxyboolean
isAnonymousboolean

Tor/VPN/proxy. Le datacenter seul en est exclu (signal plus faible).

warnings object[]

Résumé advisory des signaux de risque détectés (réseau + qualité). Descriptif uniquement : un warning n'implique PAS un rejet — voir finalDecision / policy pour le verdict appliqué. Absent si aucun signal.

  • Array [
  • codestring

    Possible values: [TOR_EXIT_NODE, ANONYMOUS_NETWORK, DATACENTER_IP, DISPOSABLE_EMAIL, MALICIOUS_DOMAIN, ROLE_ACCOUNT, CATCH_ALL_DOMAIN, RANDOM_LOCALPART, PROFANITY, DUPLICATED_SUBMITTER]

    severitystring

    Possible values: [info, warning, error]

    messagestring
    data objectnullable
    property name*anynullable
  • ]
  • metadata object
    creditsUsedinteger
    Example: 1
    creditsRemaininginteger
    Example: 499
    processingTimeMsinteger
    Example: 2341
    smtpEnabledboolean
    apiVersionstring
    Example: v2
    ValidationResult
    {
    "email": "string",
    "status": "valid",
    "score": 0,
    "syntax": {
    "valid": true,
    "normalized": "[email protected]",
    "localPart": "john.doe",
    "domain": "gmail.com"
    },
    "dns": {
    "hasMxRecords": true,
    "mxRecords": [
    "gmail-smtp-in.l.google.com"
    ],
    "hasARecord": true
    },
    "disposable": {
    "isDisposable": true,
    "provider": "10minutemail.com"
    },
    "roleAccount": {
    "isRoleAccount": true,
    "reason": "Generic prefix: info"
    },
    "typo": {
    "hasTypo": true,
    "suggestions": [
    "[email protected]"
    ]
    },
    "randomDetection": {
    "isRandom": true,
    "confidence": 0.05
    },
    "smtp": {
    "performed": true,
    "deliverable": true,
    "responseCode": 250,
    "responseMessage": "OK",
    "greylistedDetected": true,
    "catchAllDetected": true
    },
    "enrichment": {
    "result": "valid",
    "score": 95,
    "message": "First name detected: Jean",
    "details": {
    "firstName": "Jean",
    "firstNameScore": 95,
    "lastName": "Dupont",
    "lastNameScore": 0,
    "gender": "male",
    "genderScore": 98,
    "presumedAge": 74,
    "presumedAgeRange": "65+",
    "presumedAgeScore": 90,
    "ageBasis": {
    "country": "FR",
    "resolvedFrom": "param",
    "source": "insee"
    }
    }
    },
    "network": {
    "result": "valid",
    "details": {
    "ip": "83.50.226.71",
    "ipCountry": "FR",
    "asn": "AS3215",
    "isp": "Orange",
    "connectionType": "residential",
    "isTor": true,
    "isDatacenter": true,
    "isVpn": true,
    "isProxy": true,
    "isAnonymous": true
    }
    },
    "warnings": [
    {
    "code": "TOR_EXIT_NODE",
    "severity": "info",
    "message": "string",
    "data": {}
    }
    ],
    "metadata": {
    "creditsUsed": 1,
    "creditsRemaining": 499,
    "processingTimeMs": 2341,
    "smtpEnabled": true,
    "apiVersion": "v2"
    }
    }