Documentation de l’API

Créez des intégrations sécurisées avec LeakData

Vérifiez l’exposition aux fuites de données, protégez les utilisateurs et recevez des alertes de sécurité via l’API LeakData.

Avant votre première requête

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.
Points de départ

Que souhaitez-vous faire ?

Choisissez un objectif et accédez directement au point de terminaison, aux conseils de sécurité et à l’exemple d’implémentation correspondants.

Démarrage rapideVotre première requête en 3 étapes

Le chemin d’implémentation le plus court, de l’authentification à une requête valide.

  1. 1

    Authentifiez-vous

    Envoyez votre clé API dans l’en-tête d’authentification Bearer à chaque requête.

    Authorization: Bearer YOUR_API_KEY
  2. 2

    Envoyez un exemple de requête

    Définissez LEAKDATA_API_KEY avec votre clé API, puis envoyez une requête POST au point de terminaison de recherche d’exposition.

  3. 3

    Traitez la réponse

    Intégrez les signaux d’exposition et les sources renvoyés dans le processus de votre application.

Index des points de terminaison

Référence de l’API

Consultez en un coup d’œil les points de terminaison v1 publiés et ouvrez la section détaillée.

Spécification OpenAPI

Introduction

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.

URL de base: https://leakdata.io/api/v1

Fonctionnalités

  • Rechercher des signaux d’exposition dans les données de fuites indexées
  • Utiliser un point de terminaison de recherche unifié pour vérifier les adresses e-mail, les numéros de téléphone, les noms d’utilisateur et les domaines
  • Créer des clés API depuis le tableau de bord
  • Utiliser l’accès entreprise à l’API et aux webhooks pour des intégrations gérées
  • Envoyer des charges utiles SIEM/SOAR signées à Splunk, Elastic, Sentinel et aux middlewares CEF/Syslog

Authentification

Les requêtes API utilisent une clé API. Vous pouvez créer et gérer vos clés depuis le tableau de bord.

En-têtes de la requête
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Avertissement de sécurité : N’exposez jamais vos clés API dans du code côté client ou dans des dépôts publics.

Limites de requêtes

L’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.

OffrePar minutePar jourPar mois
Free——Non inclus
Pro / Elite——Non inclus
EnterpriseContratContratContrat

Domaines surveillés

Listez les enregistrements de surveillance des domaines accessibles au propriétaire de la clé API utilisée pour l’authentification.

GET/domains

Réponse

JSON
{
  "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"
}

Sécurité des mots de passe par k-anonymat

Vérifiez un préfixe d’empreinte de hachage de mot de passe sans envoyer le mot de passe ni son empreinte complète.

Envoyez uniquement les cinq premiers caractères de l’empreinte SHA-1 en majuscules. LeakData ne reçoit jamais le mot de passe d’origine ni son empreinte complète.
GET/password/check/5BAA6

Réponse

{
  "hashes": {
    "1E4C9B93F3F0682250B6CF8331B7EE68FD8": 12345,
    "ABCDEF0123456789ABCDEF0123456789ABC": 6789
  }
}

Alertes

Listez les alertes de sécurité de l’utilisateur authentifié.

GET/alerts

Paramètres de requête

  • limit - 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)

Exemples de code

JavaScript (Node.js)
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');

Codes d’erreur

CodeDescription
400Requête incorrecte - Paramètres de requête invalides
401Non autorisé - Clé API invalide ou manquante
403Interdit - Accès refusé
429Trop de requêtes - Limite de requêtes dépassée
500Erreur interne du serveur - Erreur du serveur

Webhooks

Recevez des notifications automatiques lorsque de nouveaux signaux de violation de données sont détectés.

Configurez l’URL du webhook et le modèle prédéfini de charge utile depuis le tableau de bord. LeakData envoie des requêtes POST signées et conserve les échecs d’envoi pouvant faire l’objet d’une nouvelle tentative pour le suivi opérationnel.

En-têtes d’envoi

X-Webhook-Signature
Signature HMAC-SHA256 générée à partir du corps JSON brut avec le secret du webhook.
X-LeakData-Signature
Variante de signature sha256= compatible avec les outils SIEM/SOAR.
X-LeakData-Event-Id
Identifiant d’événement stable pour la corrélation et le suivi des nouvelles tentatives.
X-LeakData-Payload-Preset
Format de charge utile sélectionné, tel que splunk_hec, elastic_ecs ou microsoft_sentinel.
X-Webhook-Attempt
Numéro de tentative de livraison pour les récepteurs qui gèrent les nouvelles tentatives.

Charge utile générique

{
  "id": "evt_9f3a7c2e6b1d4a80",
  "type": "domain.alert",
  "created": 1770000000000,
  "data": {
    "domain": "example.com",
    "severity": "high",
    "breachCount": 2
  }
}

SIEM/SOAR

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é.

JSON LeakData

generic

Charge 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

Splunk HEC

splunk_hec

Envoyée avec les champs time, source, sourcetype, event et fields pour Splunk HTTP Event Collector.

Cible
Splunk HTTP Event Collector
En-tête
X-Splunk-Request-Channel

Elastic ECS

elastic_ecs

Utilise des champs event, observer, threat, rule et leakdata de type ECS pour l’ingestion dans Elastic.

Cible
Ingestion Elastic ECS
En-tête
X-Elastic-Event-Dataset

Microsoft Sentinel

microsoft_sentinel

Utilise TimeGenerated, EventId, EventType, Severity et RawData pour les tables personnalisées de Log Analytics.

Cible
Journal personnalisé Microsoft Sentinel
En-tête
Log-Type

CEF / Syslog

cef_syslog

Contient un message compatible CEF dans une charge utile JSON pour un middleware syslog ou SOAR.

Cible
Middleware CEF, Syslog ou SOAR
En-tête
X-CEF-Product

Splunk HEC

{
  "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"
  }
}

Microsoft Sentinel

{
  "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"
    }
  }
}

Événements des webhooks

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.