Aller au contenu principal

Corrections de la documentation

La documentation a été entièrement réécrite le 15 octobre 2026 à partir du code de l'API. L'API elle-même n'a pas changé à cette occasion : ce sont les descriptions qui étaient fausses. Si votre intégration a été écrite d'après l'ancienne version, vérifiez les points ci-dessous.

À vérifier en priorité​

Ancienne documentationComportement réel
Le verdict est dans statusLe verdict est dans result
Envoyer "smtp": true déclenche la vérification SMTPAvec une clé API, smtp dans le corps est ignoré : seule la configuration de la clé décide
Blocs syntax.valid, dns.hasMxRecords, disposable.isDisposable, typo.hasTypo, smtp.deliverable…Chaque contrôle est sous features, avec result / score / message / reasonCode / details. Dans features, result: "invalid" signifie « signal détecté ». Raccourcis à la racine : disposable, alias, freeProvider, businessEmail
metadata.creditsUsed, metadata.creditsRemaining, metadata.processingTimeMsmetadata.credits.used, metadata.credits.remaining (renseigné seulement après un SMTP), metadata.processingTime
Le widget s'intègre avec une clé API dans le JavaScript de la pageLe widget s'installe avec une balise <script> sans aucun secret (data-ywc-widget)
Batch, gestion des clés et solde de crédits sont appelables avec un JWT d'intégrationCes routes sont réservées au tableau de bord ; elles ne font pas partie de l'API publique

Autres corrections​

SujetAncienne documentationComportement réel
Erreurs de validation du corps422 Unprocessable Entity400 Bad Request, message sous forme de tableau
Corps de l'erreur 402Champs reason, required, balanceSeuls statusCode, message, code, timestamp, path sont renvoyés
429 par IPCorps JSONCorps en texte brut
RateLimit-ResetHorodatageNombre de secondes avant la réinitialisation
Limites par clé« Requêtes par minute, heure et jour configurables par clé »Aucune limite de débit par clé ; la limite est de 100 requêtes/min par IP. Une clé peut en revanche avoir un plafond de crédits journalier et mensuel (429 API_KEY_BUDGET_EXCEEDED)
Domaine accept-alldeliverable: true avec catchAllDetected: trueVerdict unknown, features.catchAll, avertissement CATCH_ALL_DOMAIN
Clés ywc_test_Clés de développement localMême comportement et même facturation que ywc_live_
Restriction allowedDomains sur une clé serveurRecommandéeBloque tous les appels serveur (pas d'en-tête Origin) ; restreignez par IP
Expiration des crédits« Les crédits n'expirent pas »L'allocation mensuelle expire au renouvellement ; les packs achetés n'expirent jamais
Traitement par lotsExcel accepté, 10 Mo, ~200 000 lignesCSV ou TXT, 15 Mo, 500 000 lignes
ExportsCSV, XLSX, PDFCSV, Excel, texte, JSON, NDJSON, plus le rapport PDF
ScoreBarème de points fixeBarème à plafonds et pénalités cumulées ; valid sous 70 devient risky
/v2/credits/balanceExemple avec clé API dans le démarrage rapideRéservé au tableau de bord

Ajouts​

Sujets qui n'étaient pas documentés : warnings[], finalDecision et les politiques de validation, la correction vérifiée typoCorrection, le signal typosquat, network et ses effets en appel serveur, les restrictions allowedIps, la rotation avec période de grâce, les plafonds de crédits par clé, le mode audit du traitement par lots, POST /v2/email/enrich et les endpoints d'autocomplétion de prénom, de nom et de partie locale.