Бесплатный API для проверки утечек данных
Проверяйте миллиарды раскрытых записей с помощью нашего бесплатного RESTful API. Ключ API не требуется.
Аутентификация
Большинство эндпоинтов общедоступны. Эндпоинты для доменов требуют ключ API.
Ограничение частоты
2 запроса в секунду с одного IP, плюс почасовые и суточные лимиты по каждому эндпоинту. Смотреть лимиты.
Формат ответа
Все ответы возвращаются в формате JSON со стандартными HTTP-кодами.
Базовый URL
api.xposedornot.com
Официальные SDK
Используйте наши официальные библиотеки, чтобы интегрировать XposedOrNot в свои приложения всего несколькими строками кода.
Установка через npm:
npm install xposedornot
Краткий пример:
const { XposedOrNot } = require('xposedornot');
const xon = new XposedOrNot();
// Проверка email на наличие в утечках
const result = await xon.checkEmail('test@example.com');
console.log(result);
Установка через pip:
pip install xposedornot
Краткий пример:
from xposedornot import XposedOrNot
xon = XposedOrNot()
# Проверка email на наличие в утечках
result = xon.check_email('test@example.com')
print(result)
Также доступно для
Нажмите на любую карточку, чтобы перейти в реестр пакетов, или на значок GitHub — для исходного кода.
Благодарим вас за интерес к XposedOrNot. Наша цель — сделать API максимально доступным и быстрым, чтобы он стал полезным инструментом для каждого. Размещённый непосредственно в инфраструктуре Google и надёжно кэшируемый Cloudflare, API XposedOrNot обеспечивает быстрые ответы на любые запросы независимо от их источника.
API XposedOrNot следует принципам архитектуры REST. Он возвращает ответы в формате JSON и использует стандартные коды ответов HTTP. Для большинства маршрутов нашего API аутентификация не требуется, что обеспечивает простоту доступа и удобство использования. Однако обратите внимание, что наш отдельный маршрут API, предназначенный для запроса данных, связанных с доменом, требует авторизации с помощью ключа API. Эта мера принята для того, чтобы доступ к этой конфиденциальной информации имели только проверенные владельцы или уполномоченные лица указанных доменов.
Чтобы поэкспериментировать с эндпоинтами, воспользуйтесь Песочницей API, где вы можете в интерактивном режиме изучить API XposedOrNot.
Как читать примеры: значения, показанные в
{фигурных скобках}, являются заполнителями.
Замените каждое из них (вместе со скобками) своим значением.
Например, {email} превращается в
test@example.com.
Лимиты запросов
Лимиты бесплатного уровня на IP-адрес по эндпоинтам:
| Эндпоинт | В секунду | В час | В сутки |
|---|---|---|---|
/v1/check-email/{email} | 2 | 25 | 100 |
/v1/breach-analytics | 2 | 25 | 100 |
/v1/breaches | 2 | 50 | 100 |
/v1/domain-breaches | 2 | 25 | 50 |
/v1/metrics | 5/min | 50 | 100 |
/api/v1/pass/anon/{prefix} | Отдельный высоконагруженный сервис; фиксированный лимит не публикуется. | ||
HTTP 429 означает, что вы достигли почасового или суточного лимита: дождитесь сброса окна перед повтором. Ответ содержит ссылку на тарифы с повышенными лимитами.
Нужны более высокие лимиты?
Бесплатный API предназначен для личного использования и небольших объёмов, и он останется бесплатным. Если вы создаёте продукт на данных об утечках или вам нужна большая пропускная способность, xonAPI+ предлагает платные тарифы от 5 $/месяц с лимитами до 25 000 запросов/минуту, доступом по API-ключу и коммерческой поддержкой. Это те же данные об утечках, и именно это позволяет бесплатному уровню оставаться бесплатным.
GET 1. Вызов API: проверка email-адреса на наличие в утечках данных
Этот API проверяет, фигурировал ли email-адрес в каких-либо известных утечках данных. Он выполняет поиск по обширной базе данных утечек и оповещает вас, если email находится под угрозой.
Эндпоинт API:
https://api.xposedornot.com/v1/check-email/{email}
Параметры:
| Параметр | Где | Обязательный | Тип | Описание |
|---|---|---|---|---|
email |
путь | Да | string | Email-адрес для проверки на наличие в утечках. |
details |
запрос | Нет | boolean | Включить подробную информацию об утечках в ответ. По умолчанию false (принимает true/false, yes/no, 1/0). |
{
"breaches": [
[
"Tesco",
"KiwiFarms",
"Vermillion",
"Verified",
"LizardSquad",
"2fast4u",
"Autotrader",
"MyRepoSpace",
"SweClockers"
]
],
"email": "test@example.com",
"status": "success"
}
Ответ возвращается в формате JSON, что позволяет легко
разобрать его на любом скриптовом языке. Это даёт вам
возможность без труда интегрировать данные в свои приложения.
Ответ, когда утечка не найдена:
Если email-адрес не найден ни в одной базе данных утечек, вы получите следующий ответ в формате JSON:
{"Error":"Not found","email":null}
GET 2. Вызов API: аналитика утечек данных для email-адресов
Наш API предлагает углублённый анализ истории утечек данных для email-адреса. Он показывает, когда и где произошли утечки, предоставляя важную аналитику для оценки масштаба и серьёзности этих инцидентов. Этот инструмент незаменим для понимания степени раскрытия данных и совершенствования стратегий безопасности.
Эндпоинт API:
https://api.xposedornot.com/v1/breach-analytics?email={email}
Параметры:
| Параметр | Где | Обязательный | Тип | Описание |
|---|---|---|---|---|
email |
запрос | Да | string | Email-адрес для анализа. |
API возвращает один из двух возможных результатов: успех или неудачу. Ниже перечислены ключевые компоненты успешного ответа:
- BreachesSummary: краткий обзор всех утечек, связанных с email-адресом, включая список затронутых сайтов. Идеально подходит для быстрой проверки истории утечек.
- ExposedBreaches: подробная информация о каждой утечке, включая название организации, описание, домен, отрасль, уровень риска, ссылки, типы раскрытых данных, а также год и количество раскрытых записей. Это помогает оценить особенности и серьёзность каждой утечки.
- BreachMetrics: этот компонент предоставляет аналитику об утечках, такую как затронутые отрасли, надёжность паролей, оценку риска, типы раскрытых данных и разбивку по годам. Эти данные крайне важны для понимания полного масштаба последствий утечек.
- xposed_data: позволяет понять, какие именно типы данных были раскрыты в утечках, например имена, фотографии, гражданство и т. д. Это помогает понять характер и масштаб раскрытия персональных данных.
- PastesSummary: предоставляет обзор утечек типа «paste» (раскрытие данных на публичных сервисах, подобных pastebin), включая количество и самый недавний случай. Это быстрый способ оценить раскрытие данных на таких платформах.
- ExposedPastes и PasteMetrics: эти компоненты предоставляют подробную информацию и ежегодный анализ утечек типа paste, позволяя глубже понять тенденции раскрытия данных с течением времени.
Этот комплексный набор аналитических инструментов позволяет детально изучить историю утечек данных любого email, предоставляя сведения, необходимые для более эффективного управления цифровой безопасностью.
Пример вывода JSON при успешном нахождении совпадающей записи:
{
"BreachMetrics": {
"get_details": [],
"industry": [
[
[ "elec", 1 ],
[ "misc", 0 ],
[ "mini", 0 ],
[ "musi", 0 ],
[ "manu", 0 ],
[ "ener", 0 ],
[ "news", 0 ],
[ "ente", 0 ],
[ "hosp", 0 ],
[ "heal", 0 ],
[ "food", 0 ],
[ "phar", 0 ],
[ "educ", 0 ],
[ "cons", 0 ],
[ "agri", 0 ],
[ "tele", 0 ],
[ "info", 0 ],
[ "tran", 0 ],
[ "aero", 0 ],
[ "fina", 0 ],
[ "reta", 0 ],
[ "nonp", 0 ],
[ "govt", 0 ],
[ "spor", 0 ],
[ "envi", 0 ]
]
],
"passwords_strength": [
{
"EasyToCrack": 0,
"PlainText": 0,
"StrongHash": 1,
"Unknown": 0
}
],
"risk": [
{
"risk_label": "Low",
"risk_score": 3
}
],
"xposed_data": [
{
"children": [
{
"children": [
{
"colname": "level3",
"group": "A",
"name": "data_Usernames",
"value": 1
}
],
"colname": "level2",
"name": "👤 Personal Identification"
},
{
"children": [
{
"colname": "level3",
"group": "D",
"name": "data_Passwords",
"value": 1
}
],
"colname": "level2",
"name": "🔒 Security Practices"
},
{
"children": [
{
"colname": "level3",
"group": "F",
"name": "data_Email addresses",
"value": 1
}
],
"colname": "level2",
"name": "📞 Communication and Social Interactions"
}
]
}
],
"yearwise_details": [
{
"y2007": 0,
"y2008": 0,
"y2009": 0,
"y2010": 0,
"y2011": 0,
"y2012": 0,
"y2013": 0,
"y2014": 0,
"y2015": 1,
"y2016": 0,
"y2017": 0,
"y2018": 0,
"y2019": 0,
"y2020": 0,
"y2021": 0,
"y2022": 0,
"y2023": 0
}
]
},
"BreachesSummary": {
"site": "SweClockers"
},
"ExposedBreaches": {
"breaches_details": [
{
"breach": "SweClockers",
"details": "SweClockers experienced a data breach in early 2015, where 255k accounts were exposed. As a result, usernames, email addresses, and salted hashes of passwords, which were stored using a combination of MD5 and SHA512, were disclosed. Exposed data: Usernames, Email addresses, Passwords.",
"domain": "sweclockers.com",
"industry": "Electronics",
"logo": "Sweclockers.png",
"password_risk": "hardtocrack",
"references": "",
"searchable": "Yes",
"verified": "Yes",
"xposed_data": "Usernames;Email addresses;Passwords",
"xposed_date": "2015",
"xposed_records": 254967
}
]
},
"ExposedPastes": null,
"PasteMetrics": null,
"PastesSummary": {
"cnt": 0,
"domain": "",
"tmpstmp": ""
}
}
Ниже приведены некоторые из показателей, используемых в
BreachMetrics:
- Классификация по отраслям Даёт количество утечек, раскрытых в 19 крупнейших отраслях.
- Надёжность паролей Даёт количество утечек, в которых были пароли: 1. легко взламываемые, 2. в открытом виде и 3. с использованием надёжных и безопасных хешей паролей.
- Разбивка по годам Даёт исторические данные об утечках начиная с 2010 года и по настоящее время.
Пример вывода, когда совпадающий email-адрес не найден:
{
"BreachMetrics": null,
"BreachesSummary": {
"site": ""
},
"ExposedBreaches": null,
"ExposedPastes": null,
"PasteMetrics": null,
"PastesSummary": {
"cnt": 0,
"domain": "",
"tmpstmp": ""
}
}
Полностью «нулевой» ответ, как приведённый выше (возвращается с HTTP 200), означает, что email не был найден ни в одной из утечек данных, загруженных в XposedOrNot.
GET 3. Вызов API для анонимной проверки скомпрометированных паролей
Этот эндпоинт проверяет, появлялся ли пароль в известных утечках, не раскрывая сам пароль. Вы вычисляете хеш SHA3 Keccak-512 пароля локально и отправляете только его первые 10 символов, поэтому ни пароль, ни полный хеш не покидают ваше устройство. Ответ указывает на наличие или отсутствие совпадения.
https://passwords.xposedornot.com/api/v1/pass/anon/{hash_prefix}
Здесь {hash_prefix} — это первые 10 символов
хеша SHA3 Keccak-512 пароля, который вы хотите проверить.
Параметры:
| Параметр | Где | Обязательный | Тип | Описание |
|---|---|---|---|---|
hash_prefix |
путь | Да | string | Первые 10 символов хеша SHA3 Keccak-512 проверяемого пароля. |
{
"SearchPassAnon": {
"anon": "808d63ba47",
"char": "D:6;A:0;S:0;L:6",
"count": "11999477",
"wordlist": 0
}
}
API выдаёт результаты в формате JSON, который более информативен, чем простое «да/нет». Этот подробный вывод позволяет проводить дальнейший анализ и пополнять обширный список скомпрометированных паролей в реальном времени.
Описание структуры вывода:
-
anon: префикс хеша, который вы запросили, возвращённый обратно. Ничего, что могло бы раскрыть ваш пароль, не сохраняется и не передаётся. -
char: разбивка состава пароля в форматеD:<digits>;A:<alphabets>;S:<special>;L:<length>(см. таблицу ниже). -
count: количество раз, когда этот пароль встречался в собранных данных утечек. -
wordlist: был ли пароль найден в известном словаре (1= да,0= нет).
Этот API полезен не только для выявления скомпрометированных паролей, но и помогает разрабатывать более строгие и безопасные политики паролей.
В следующей таблице простыми словами поясняются эти характеристики:
| Код | Характеристика | Описание |
|---|---|---|
D |
Цифры | Количество цифр |
A |
Буквы | Количество букв |
S |
Спецсимволы | Количество спецсимволов |
L |
Длина | Длина пароля |
Также стоит отметить использование SHA3 Keccak-512 для поиска и хранения данных в XON. Традиционные алгоритмы хеширования, такие как MD5 и SHA1, на данный момент устарели, и, учитывая огромное количество раскрытых записей, я выбрал алгоритм SHA3 Keccak-512. Хеши Keccak-512 имеют длину 128 символов.
Ознакомьтесь с простым и удобным примером экрана входа, использующим этот API.
Для удобства приведены два примера хешей Keccak-512:
Keccak-512("test")
1e2e9fc2002b002d75198b7503210c05a1baac4560916a3c6d93bcce3a50d7f00fd395bf1647b9abb8d1afcc9c76c289b0c9383ba386a956da4b38934417789e
Keccak-512("pass")
adf34f3e63a8e0bd2938f3e09ddc161125a031c3c86d06ec59574a5c723e7fdbe04c2c15d9171e05e90a9c822936185f12b9d7384b2bedb02e75c4c5fe89e4d4
Пример вывода, когда совпадающий хеш пароля не найден:
{ "Error": "Not found"}
GET 4. Вызов API для проверки всех утечек данных, загруженных в XposedOrNot
Параметры: все необязательные. Без параметров эндпоинт возвращает все загруженные утечки.https://api.xposedornot.com/v1/breaches
| Параметр | Где | Обязательный | Тип | Описание |
|---|---|---|---|---|
domain |
запрос | Нет | string | Ограничить результаты одним доменом. |
breach_id |
запрос | Нет | string | Ограничить результаты одной утечкой по её ID. |
Этот JSON легко разбирается всеми скриптовыми языками для удобной интерпретации и извлечения элементов данных, которые можно использовать в ваших приложениях.
{
"exposedBreaches": [
{
"breachID": "APK.TW",
"breachedDate": "2022-09-01T00:00:00+00:00",
"addedDate": "2023-11-08T06:30:35+00:00",
"domain": "apk.tw",
"exposedData": [
"Email addresses",
"Usernames",
"Passwords",
"IP addresses"
],
"exposedRecords": 2457094,
"exposureDescription": "APK.TW, a Taiwanese Android forum, experienced a data breach in September 2022, affecting 3.7 million members. This incident exposed usernames, email addresses, IP addresses, and passwords encrypted with salted MD5 hashes.",
"industry": "Information Technology",
"logo": "https://xposedornot.com/static/logos/APKTW.png",
"passwordRisk": "easytocrack",
"referenceURL": "",
"searchable": true,
"sensitive": false,
"verified": true
},
{
"breachID": "Habibs",
"breachedDate": "2021-08-01T00:00:00+00:00",
"addedDate": "2023-11-08T06:30:35+00:00",
"domain": "habibs.com.br",
"exposedData": [
"Email addresses",
"Names",
"Phone numbers",
"Dates of birth",
"IP addresses"
],
"exposedRecords": 3519666,
"exposureDescription": "Habib's, a Brazilian fast food restaurant, experienced a significant data breach in August 2021, that impacted 3.5 million users, revealing personal information like email addresses, IP addresses, names, phone numbers, and dates of birth, along with CPF numbers and social media profile links. ",
"industry": "Food",
"logo": "https://xposedornot.com/static/logos/Habibs.png",
"passwordRisk": "unknown",
"referenceURL": "",
"searchable": true,
"sensitive": false,
"verified": true
},
{
"breachID": "GreenGaming",
"breachedDate": "2024-03-01T00:00:00+00:00",
"addedDate": "2024-04-15T10:22:18+00:00",
"domain": "mrgreengaming.com",
"exposedData": [
"Email addresses",
"IP addresses",
"Geographic locations",
"Usernames",
"Dates of birth"
],
"exposedRecords": 27142,
"exposureDescription": "MrGreenGaming announced on their community forum reported a security breach due to unauthorized access via an inactive administrator account leading to a data breach on 01-Mar-2024. The intrusion led to vandalism and the potential exposure of user data, including usernames, email addresses, IP addresses at account creation, and birthdays.",
"industry": "Entertainment",
"logo": "https://xposedornot.com/static/logos/GreenGaming.png",
"passwordRisk": "unknown",
"referenceURL": "https://forums.mrgreengaming.com/topic/30151-%E2%9A%A0%EF%B8%8Fdata-breach%E2%9A%A0%EF%B8%8F/#comment-536079",
"searchable": true,
"sensitive": false,
"verified": true
},
{
"breachID": "CutoutPro",
"breachedDate": "2024-02-01T00:00:00+00:00",
"addedDate": "2024-03-10T08:15:42+00:00",
"domain": "cutout.pro",
"exposedData": [
"Names",
"Passwords",
"Email addresses",
"IP addresses"
],
"exposedRecords": 20021813,
"exposureDescription": "Cutout.Pro, an AI-powered photo editing platform, experienced a data breach affecting 20 million users. Information exposed includes email addresses, hashed passwords, IP addresses, and names. A cybercriminal posted 5.93 GB of data on hacker forum, including a 41.4 million record database dump with unique email addresses.",
"industry": "Information Technology",
"logo": "https://xposedornot.com/static/logos/Cutout.pro.png",
"passwordRisk": "easytocrack",
"referenceURL": "https://www.bleepingcomputer.com/news/security/20-million-cutoutpro-user-records-leaked-on-data-breach-forum/",
"searchable": true,
"sensitive": false,
"verified": true
}
… ответ сокращён для краткости; полный список продолжается.
Кроме того, вы можете передать параметр, например домен, и ограничить результаты, чтобы отобразить содержимое, относящееся к этой утечке.
https://api.xposedornot.com/v1/breaches?domain={domain}
{
"exposedBreaches": [
{
"breachID": "Twitter-Scraped",
"breachedDate": "2021-01-01T00:00:00+00:00",
"addedDate": "2023-11-08T06:30:35+00:00",
"domain": "twitter.com",
"industry": "Information Technology",
"logo": "https://xposedornot.com/static/logos/Twitter.png",
"passwordRisk": "unknown",
"searchable": true,
"sensitive": false,
"verified": true,
"exposedData": [
"Usernames",
"Names",
"Email addresses",
"Phone numbers",
"Geographic locations"
],
"exposedRecords": 208918735,
"exposureDescription": "The Twitter Email Addresses Leak involves a data leak of over 200 million Twitter user profiles around 2021. The leak includes email addresses, names, screen names, follow counts, and account creation dates. The data was obtained through a Twitter API vulnerability that allowed the input of email addresses and phone numbers to confirm their association with Twitter IDs.",
"referenceURL": ""
}
],
"status": "success"
}
API возвращает успешный ответ только в формате JSON.POST 5. Вызов API для проверки всех утечек данных для подтверждённых доменов
Параметры:https://api.xposedornot.com/v1/domain-breaches/
| Параметр | Где | Обязательный | Тип | Описание |
|---|---|---|---|---|
x-api-key |
заголовок | Да | string | Ваш ключ API для домена. Домен определяется по ключу. |
Content-Length |
заголовок | Да | 0 |
Этот эндпоинт не принимает тело запроса, поэтому установите длину содержимого равной 0. |
** Ещё нет ключа? Узнайте, как получить ключ API для данных об утечках по домену. Там описаны подтверждение домена и получение ключа из вашей панели управления.
Пример запроса к API с помощью curl. Храните ключ в переменной окружения, а не прописывайте его напрямую в коде, чтобы он не попадал в историю команд и систему контроля версий:
Ответ API возвращается в формате JSON. Основной ключ «metrics» содержит сведения об утечке. Ниже приведено описание каждого вложенного ключа в «metrics»:export XON_API_KEY="your_api_key_here" curl -L -X POST \ -H "x-api-key: $XON_API_KEY" \ -H "Content-Length: 0" \ https://api.xposedornot.com/v1/domain-breaches/
1.Breach_Summary: это поле предоставляет сводку по количеству утечек на каждую организацию.
2.Breaches_Details: это массив, содержащий подробную информацию о каждой отдельной утечке, включая название пострадавшей организации, домен и email-адрес, связанный с утечкой.
3.Detailed_Breach_Info: это поле содержит подробную сводку об утечках, включая дату утечки, логотип организации, был ли пароль под угрозой, доступна ли утечка для поиска, тип раскрытых данных, общее количество раскрытых записей и описание утечки.
4.Domain_Summary: предоставляет сводку по количеству утечек на каждый домен.
5.Top10_Breaches: это поле предоставляет список 10 крупнейших утечек.
6.Yearly_Metrics: это поле предоставляет разбивку количества утечек по годам с 2010 года по текущий год.
Для удобства приведён пример вывода.
{
"metrics": {
"Breach_Summary": {
"AerServ": 1
},
"Breaches_Details": [
{
"breach": "AerServ",
"domain": "xposedornot.com",
"email": "deva@xposedornot.com"
}
],
"Detailed_Breach_Info": {
"AerServ": {
"breached_date": "Tue, 01 Apr 2014 00:00:00 GMT",
"logo": "Aerserv.png",
"password_risk": "plaintext",
"searchable": "Yes",
"xposed_data": "Email Addresses",
"xposed_records": 64777,
"xposure_desc": "AerServ, an ad management platform, experienced a data breach in April 2018. This incident occurred after its acquisition by InMobi and affected more than 64,000 unique email addresses. The exposed data included contact information and passwords, which were stored as salted SHA-512 hashes. Later in 2018, the breached data was publicly posted on Twitter, prompting InMobi to acknowledge the incident "
}
},
"Domain_Summary": {
"xposedornot.com": 1
},
"Top10_Breaches": {
"AerServ": 1
},
"Yearly_Metrics": {
"2010": 0,
"2011": 0,
"2012": 0,
"2013": 0,
"2014": 1,
"2015": 0,
"2016": 0,
"2017": 0,
"2018": 0,
"2019": 0,
"2020": 0,
"2021": 0,
"2022": 0,
"2023": 0
}
},
"status": "success"
}
Обработка ошибок: если ключ API
недействителен, эндпоинт отвечает с HTTP 401 и следующим JSON:
{
"detail": "Invalid or missing API key"
}
Поле detail содержит описание ошибки.
Не забудьте установить в
XON_API_KEY ваш
настоящий ключ API перед обращением к эндпоинту.
6. Коды ответов API
Иными словами, коды в диапазоне 4xx указывают на ошибку на стороне клиента (ваш запрос), а коды 5xx — на ошибку на стороне сервера (с нашей стороны).
| Код | Описание |
|---|---|
| 200 | Успех — будет выведен ответ в формате JSON |
| 401 | Недействительный/неавторизованный ключ API |
| 404 | Ошибка во входных данных (данные не найдены) |
| 429 | Достигнут предел частоты — пора снизить скорость |
| 502/503 | Ошибка на стороне сервера. Пожалуйста, сообщите нам, если столкнётесь с этим. |
Для каждого запроса к API действует ограничение в 2 запроса в секунду. Просим вас учитывать это и при необходимости повторять запросы в замедленном режиме или с паузами.
Повторное неправомерное использование или злоупотребление этим API автоматически блокируется xGuardian. Пожалуйста, используйте API ответственно.
Нашли ошибку? Сообщите о ней через Twitter или email, и она будет устранена.