для разработчиков
API PhishDet
Та же проверка, что на сайте: базы фишинга, признаки подделки и нейросеть - одним POST-запросом из вашего бота, почты или приложения. Доступно на тарифах «Про» и «Корпоративный».
1. Получите ключ
В личном кабинете, раздел «Ключи API» - «Создать ключ». Ключ показывается один раз, сохраните его. Ключ умеет только проверять ссылки и читать историю - оплатой и аккаунтом он не управляет.
2. Проверьте ссылку
curl -X POST https://phishdet.ru/api/check-url \
-H "X-API-Key: pd_live_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{"url": "https://sberbank-online.ru.login-verify.xyz"}'
Python:
import requests
r = requests.post(
"https://phishdet.ru/api/check-url",
headers={"X-API-Key": "pd_live_ваш_ключ"},
json={"url": "https://bit.ly/3abcdef"},
timeout=15,
)
r.raise_for_status()
result = r.json()
if result["verdict"] != "Безопасно":
print("Осторожно:", result["details"])
Вместо заголовка X-API-Key можно передать Authorization: Bearer pd_live_....
3. Ответ
{
"url": "https://sberbank-online.ru.login-verify.xyz",
"is_phishing": true,
"risk_score": 0.97,
"verdict": "Фишинг",
"details": [
"В адресе есть имя «Сбербанк», но сайт не принадлежит sberbank.ru - настоящий домен здесь login-verify.xyz",
"Вероятность фишинга по оценке нейросети: 94.6%",
"Доменная зона часто используется для фишинга"
],
"source": "ml",
"final_url": null,
"stages": [...],
"checks_remaining": 187
}
verdict- «Фишинг», «Подозрительно» или «Безопасно»;risk_score- риск от 0 до 1;details- причины простыми словами, их можно показать пользователю как есть;source- кто вынес решение:blocklist(ссылка в базе фишинга),allowlist(популярный сайт),ml(нейросеть),heuristics(нейросеть была недоступна - решение по признакам подделки);final_url- куда на самом деле ведёт короткая ссылка или переадресация (илиnull);checks_remaining- сколько проверок осталось в этом месяце (null- без лимита).
4. История проверок
curl https://phishdet.ru/api/checks/history?limit=50 -H "X-API-Key: pd_live_ваш_ключ"
5. Ошибки и лимиты
401- ключ неверный или отозван;403- тариф без API или почта аккаунта не подтверждена;422- вurlнет ссылки на сайт (можно передать и сообщение целиком - ссылку сервер найдёт сам) или она длиннее 2048 символов, проверка не списана;429- закончились проверки по тарифу (в ответеchecks_limit) или слишком частые запросы: до 30 в минуту, на «Корпоративном» - до 120. Повторите через время из заголовкаRetry-After;503- модуль анализа перезапускается, проверка не списана - повторите через минуту.
Вопросы по интеграции - support@phishdet.ru.