JSON LeakData
genericCharge utile JSON signée par défaut. Tous les champs de l’événement conservent le schéma LeakData.
- Cible
- Récepteurs de webhooks personnalisés, procédures SOAR
- En-tête
X-LeakData-Payload-Preset
Vérifiez l’exposition aux fuites de données, protégez les utilisateurs et recevez des alertes de sécurité via l’API LeakData.
L’accès à l’API nécessite un abonnement Enterprise avec l’accès à l’API activé. Créez une clé dans votre tableau de bord et sélectionnez uniquement les périmètres d’autorisation nécessaires à votre intégration.
Besoin d’aide sur le produit ? Découvrez comment fonctionne LeakData.Choisissez un objectif et accédez directement au point de terminaison, aux conseils de sécurité et à l’exemple d’implémentation correspondants.
Le chemin d’implémentation le plus court, de l’authentification à une requête valide.
Envoyez votre clé API dans l’en-tête d’authentification Bearer à chaque requête.
Authorization: Bearer YOUR_API_KEYDéfinissez LEAKDATA_API_KEY avec votre clé API, puis envoyez une requête POST au point de terminaison de recherche d’exposition.
Intégrez les signaux d’exposition et les sources renvoyés dans le processus de votre application.
Consultez en un coup d’œil les points de terminaison v1 publiés et ouvrez la section détaillée.
L’API LeakData.io vous permet d’ajouter des vérifications d’exposition aux fuites de données et une surveillance de sécurité à vos propres processus via une interface REST.
https://leakdata.io/api/v1Les requêtes API utilisent une clé API. Vous pouvez créer et gérer vos clés depuis le tableau de bord.
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonL’accès à l’API est actuellement proposé dans le cadre des intégrations d’entreprise. Les offres en libre-service n’incluent pas de quota pour l’API publique.
| Offre | Par minute | Par jour | Par mois |
|---|---|---|---|
| Free | — | — | Non inclus |
| Pro / Elite | — | — | Non inclus |
| Enterprise | Contrat | Contrat | Contrat |
Recherchez des signaux d’exposition indexés via un point de terminaison unique avec authentification.
/searchTypes de recherche pris en charge : email, phone, username et domain.
{
"type": "email",
"query": "user@example.com"
}{
"success": true,
"found": true,
"query": "user@example.com",
"type": "email",
"breaches": 3,
"data": []
}Listez les enregistrements de surveillance des domaines accessibles au propriétaire de la clé API utilisée pour l’authentification.
/domains{
"success": true,
"count": 1,
"domains": [{
"id": "domain_123",
"domain": "example.com",
"verified": true,
"status": "active",
"vulnerabilities": 0,
"alerts": 0
}],
"timestamp": "2026-08-08T00:00:00.000Z"
}Vérifiez un préfixe d’empreinte de hachage de mot de passe sans envoyer le mot de passe ni son empreinte complète.
/password/check/5BAA6{
"hashes": {
"1E4C9B93F3F0682250B6CF8331B7EE68FD8": 12345,
"ABCDEF0123456789ABCDEF0123456789ABC": 6789
}
}Listez les alertes de sécurité de l’utilisateur authentifié.
/alertslimit - Nombre maximal d’enregistrements renvoyés (par défaut : 10, maximum : 100)status - Filtre de statut (read, unread, all)severity - Filtre de gravité (low, medium, high, critical)const axios = require('axios');
async function checkEmail(email) {
try {
const response = await axios.post(
'https://leakdata.io/api/v1/search',
{ type: 'email', query: email },
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
} catch (error) {
console.error('Error:', error.response.data);
}
}
checkEmail('user@example.com');| Code | Description |
|---|---|
400 | Requête incorrecte - Paramètres de requête invalides |
401 | Non autorisé - Clé API invalide ou manquante |
403 | Interdit - Accès refusé |
429 | Trop de requêtes - Limite de requêtes dépassée |
500 | Erreur interne du serveur - Erreur du serveur |
Recevez des notifications automatiques lorsque de nouveaux signaux de violation de données sont détectés.
X-Webhook-SignatureX-LeakData-SignatureX-LeakData-Event-IdX-LeakData-Payload-PresetX-Webhook-Attempt{
"id": "evt_9f3a7c2e6b1d4a80",
"type": "domain.alert",
"created": 1770000000000,
"data": {
"domain": "example.com",
"severity": "high",
"breachCount": 2
}
}Les webhooks Enterprise peuvent être envoyés dans le format attendu par vos outils de sécurité. Le modèle prédéfini sélectionné modifie le corps JSON transmis et ajoute des en-têtes de compatibilité.
genericCharge utile JSON signée par défaut. Tous les champs de l’événement conservent le schéma LeakData.
X-LeakData-Payload-Presetsplunk_hecEnvoyée avec les champs time, source, sourcetype, event et fields pour Splunk HTTP Event Collector.
X-Splunk-Request-Channelelastic_ecsUtilise des champs event, observer, threat, rule et leakdata de type ECS pour l’ingestion dans Elastic.
X-Elastic-Event-Datasetmicrosoft_sentinelUtilise TimeGenerated, EventId, EventType, Severity et RawData pour les tables personnalisées de Log Analytics.
Log-Typecef_syslogContient un message compatible CEF dans une charge utile JSON pour un middleware syslog ou SOAR.
X-CEF-Product{
"time": 1770000000,
"source": "leakdata",
"sourcetype": "leakdata:webhook",
"event": {
"id": "evt_splunk",
"type": "webhook.test",
"created": 1770000000000,
"data": {
"message": "LeakData webhook test notification"
}
},
"fields": {
"leakdata_event_id": "evt_splunk",
"leakdata_event_type": "webhook.test",
"leakdata_preset": "splunk_hec"
}
}{
"TimeGenerated": "2026-02-02T02:40:00.000Z",
"EventId": "evt_sentinel",
"EventType": "webhook.test",
"SourceSystem": "LeakData",
"Severity": 3,
"RawData": {
"id": "evt_sentinel",
"type": "webhook.test",
"created": 1770000000000,
"data": {
"message": "LeakData webhook test notification"
}
}
}Choisissez un ou plusieurs types d’événements lors de la création d’un webhook. Les envois de test utilisent webhook.test et les envois réels utilisent les noms d’événements sélectionnés ci-dessous.
breach.detectedCorrespondance détectée dans une fuite de donnéesUn identifiant surveillé apparaît dans des données issues d’une fuite.breach.newNouvelle fuite de données enregistréeUne nouvelle fuite de données est ajoutée au jeu de données LeakData.domain.alertAlerte de domaineUn domaine d’entreprise surveillé génère un signal de risque.search.foundRésultat de recherche trouvéUne recherche via l’API ou un processus de surveillance renvoie une correspondance.monitoring.alertAlerte de surveillanceLa surveillance d’une adresse e-mail, d’un domaine ou d’un compte génère une alerte.account.suspiciousÉvénement suspect sur un compteUn événement de sécurité inhabituel est détecté sur un compte.api.limit.warningAvertissement concernant la limite de l’APIL’utilisation de l’API entreprise approche d’un seuil important.easm.inventory.changedInventaire EASM modifiéModifications de l’inventaire observées sur un domaine vérifié : actifs nouveaux, disparus et modifiés. Ne contient aucun niveau de gravité.easm.finding.openedConstat de sécurité EASM ouvertUn constat de sécurité nouveau ou rouvert, étayé par des preuves, avec le domaine, le nom d’hôte, l’IP, le port, le contrôle, la gravité, la catégorie et l’origine. Pour un constat nécessitant une action, priority (urgent, high, normal, low) et priorityReasons (knownExploitation, exploitLikelihood, criticalAsset, highSeverity) correspondent au tableau de bord. kev vaut true lorsqu’une CVE d’un constat confirmé figure dans le catalogue CISA KEV et false lorsqu’aucune de ses CVE n’y figure ; ce champ est omis lorsque la vérification KEV date de plus de 48 heures ou que le constat n’est pas confirmé. Les événements EASM sont envoyés indépendamment de la préférence personnelle limitant les notifications aux événements critiques.easm.finding.resolvedConstat de sécurité EASM résoluUn constat de sécurité dont la résolution est prouvée par une nouvelle observation. Contient kev selon la même règle, sans priority.