Документация API

Создавайте безопасные интеграции с LeakData

Проверяйте, попали ли данные в утечки, защищайте пользователей и получайте оповещения безопасности через API LeakData.

Перед первым запросом

Для доступа к API необходим тариф Enterprise с включённым доступом к API. Создайте ключ в панели управления и выберите только те разрешения, которые нужны вашей интеграции.

Нужна помощь с продуктом? Узнайте, как работает LeakData.
С чего начать

Что вы хотите сделать?

Выберите цель и перейдите прямо к нужной конечной точке, рекомендациям по безопасности и примеру реализации.

Быстрый стартВаш первый запрос за 3 шага

Кратчайший путь от аутентификации до корректного запроса.

  1. 1

    Пройдите аутентификацию

    Передавайте свой API-ключ в заголовке с типом Bearer в каждом запросе.

    Authorization: Bearer YOUR_API_KEY
  2. 2

    Отправьте запрос из примера

    Задайте свой API-ключ в LEAKDATA_API_KEY, затем отправьте POST-запрос для поиска признаков утечки данных.

  3. 3

    Обработайте ответ

    Используйте полученные признаки утечки данных и источники в рабочем процессе вашего приложения.

Список конечных точек

Справочник API

Просмотрите опубликованные конечные точки v1 и откройте раздел с подробным описанием.

Спецификация OpenAPI

Введение

API LeakData.io позволяет добавить проверку данных на наличие в утечках и мониторинг безопасности в ваши рабочие процессы через интерфейс REST.

Базовый URL: https://leakdata.io/api/v1

Возможности

  • Поиск признаков утечки данных в проиндексированных утечках
  • Единая конечная точка поиска для проверки адресов электронной почты, номеров телефонов, имён пользователей и доменов
  • Создание API-ключей на панели управления
  • Корпоративный доступ к API и вебхукам для управляемых интеграций
  • Отправка сообщений SIEM/SOAR с подписью в Splunk, Elastic, Sentinel и промежуточное ПО CEF/Syslog

Аутентификация

Для запросов к API используется API-ключ. Вы можете создавать ключи и управлять ими на панели управления.

Заголовки запроса
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Предупреждение о безопасности: Никогда не размещайте API-ключи в клиентском коде или публичных репозиториях.

Лимиты запросов

В настоящее время доступ к API предоставляется в рамках корпоративных интеграций. Тарифы с самостоятельным подключением не включают квоту публичного API.

ТарифВ минутуВ деньВ месяц
Free——Не включено
Pro / Elite——Не включено
EnterpriseПо договоруПо договоруПо договору

Отслеживаемые домены

Получите список записей мониторинга доменов, доступных владельцу API-ключа, прошедшему аутентификацию.

GET/domains

Ответ

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

Безопасность паролей с использованием k-анонимности

Проверьте префикс хеша пароля, не отправляя пароль или его полный хеш.

Отправляйте только первые пять символов хеша SHA-1 в верхнем регистре. LeakData никогда не получает исходный пароль или полный хеш.
GET/password/check/5BAA6

Ответ

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

Оповещения

Получите список оповещений безопасности пользователя, прошедшего аутентификацию.

GET/alerts

Параметры запроса

  • limit - Максимальное количество возвращаемых записей (по умолчанию: 10, максимум: 100)
  • status - Фильтр по статусу (read, unread, all)
  • severity - Фильтр по критичности (low, medium, high, critical)

Примеры кода

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');

Коды ошибок

КодОписание
400Некорректный запрос — недопустимые параметры запроса
401Ошибка аутентификации — API-ключ недействителен или отсутствует
403Доступ запрещён — отказ в доступе
429Слишком много запросов — превышен лимит запросов
500Внутренняя ошибка сервера — ошибка на стороне сервера

Webhooks

Получайте автоматические уведомления при обнаружении новых признаков утечки данных.

Настройте URL вебхука и предустановленный формат тела запроса в панели управления. LeakData отправляет подписанные POST-запросы и сохраняет сведения о сбоях, допускающих повторную отправку, для дальнейшей обработки.

Заголовки запросов

X-Webhook-Signature
Подпись HMAC-SHA256, вычисленная по исходному телу JSON с использованием секретного ключа вебхука.
X-LeakData-Signature
Совместимый вариант подписи sha256= для инструментов SIEM/SOAR.
X-LeakData-Event-Id
Стабильный идентификатор события для корреляции и отслеживания повторных попыток.
X-LeakData-Payload-Preset
Выбранный формат тела сообщения, например splunk_hec, elastic_ecs или microsoft_sentinel.
X-Webhook-Attempt
Номер попытки доставки для обработчиков, учитывающих повторные попытки.

Универсальное тело запроса

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

SIEM/SOAR

Вебхуки Enterprise могут отправляться в формате, который поддерживают ваши инструменты безопасности. Выбранный предустановленный формат изменяет передаваемое тело JSON и добавляет заголовки для совместимости.

LeakData JSON

generic

По умолчанию используется тело сообщения в формате JSON с подписью. Все поля события соответствуют схеме LeakData.

Получатель
Пользовательские обработчики вебхуков, сценарии SOAR
Заголовок
X-LeakData-Payload-Preset

Splunk HEC

splunk_hec

Отправляется с полями time, source, sourcetype, event и fields для Splunk HTTP Event Collector.

Получатель
Splunk HTTP Event Collector
Заголовок
X-Splunk-Request-Channel

Elastic ECS

elastic_ecs

Использует поля event, observer, threat, rule и leakdata по образцу ECS для загрузки в Elastic.

Получатель
Загрузка в Elastic ECS
Заголовок
X-Elastic-Event-Dataset

Microsoft Sentinel

microsoft_sentinel

Использует поля TimeGenerated, EventId, EventType, Severity и RawData для пользовательских таблиц Log Analytics.

Получатель
Пользовательский журнал Microsoft Sentinel
Заголовок
Log-Type

CEF / Syslog

cef_syslog

Передаёт CEF-совместимое сообщение внутри JSON для промежуточного ПО syslog или SOAR.

Получатель
Промежуточное ПО CEF, Syslog или SOAR
Заголовок
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"
    }
  }
}

События вебхука

При создании вебхука выберите один или несколько типов событий. Для тестовых отправок используется webhook.test, а для реальных — выбранные названия событий из списка ниже.

breach.detectedОбнаружено совпадение в данных утечкиОтслеживаемый идентификатор найден в данных утечки.
breach.newНовая запись об утечкеВ набор данных LeakData добавлена новая утечка.
domain.alertОповещение о доменеДля отслеживаемого домена компании обнаружен признак риска.
search.foundНайден результат поискаПоиск через API или процесс мониторинга возвращает совпадение.
monitoring.alertОповещение мониторингаМониторинг электронной почты, домена или учётной записи формирует оповещение.
account.suspiciousПодозрительное событие учётной записиОбнаружено необычное событие безопасности учётной записи.
api.limit.warningПредупреждение о лимите APIИспользование корпоративного API приближается к важному пороговому значению.
easm.inventory.changedИзменился состав активов EASMНа подтверждённом домене обнаружены изменения состава активов: новые, исчезнувшие и изменённые активы. Уровень критичности не передаётся.
easm.finding.openedОткрыта проблема безопасности EASMНовая или повторно открытая проблема безопасности, подкреплённая свидетельствами, с данными о домене, имени хоста, IP, порте, средстве контроля, критичности, категории и источнике. Для проблемы, требующей действий, поля priority (urgent, high, normal, low) и priorityReasons (knownExploitation, exploitLikelihood, criticalAsset, highSeverity) соответствуют данным на панели управления. Поле kev имеет значение true, если CVE подтверждённой проблемы входит в каталог CISA KEV, и false, если ни одна из её CVE в него не входит; поле не передаётся, если проверка KEV проводилась более 48 часов назад или проблема не подтверждена. События EASM отправляются независимо от личной настройки уведомлений только о критических событиях.
easm.finding.resolvedПроблема безопасности EASM устраненаПроблема безопасности, устранение которой подтверждено новым наблюдением. Поле kev передаётся по тому же правилу, без priority.