API и разработчици

Интегрирай IP / DNS / домейн инструментите на IPT.BG директно в твоите приложения, мониторинг системи и вътрешни панели. По-долу е примерна структура на публично API, която можеш да адаптираш към финалната реализация.

1. Автентикация и API ключове

Достъпът до API на IPT.BG се осъществява чрез API ключ. Всеки регистриран потребител може да заяви един или повече ключове за продукционна и тестова среда.

  • Влез в акаунта си в IPT.BG;
  • Отиди в секция API / Developers в профила (планиран модул);
  • Генерирай нов API ключ и по желание го ограничи по IP / домейн.

Всички заявки трябва да включват ключа, например в HTTP хедър:

GET https://ipt.bg/api/v1/analytics/ip/8.8.8.8
X-Api-Key: YOUR_API_KEY_HERE

Забележка: замени URL адреса и имената на хедърите според финалната продукционна конфигурация.

2. Лимити и коректна употреба

За да остане платформата стабилна и честна за всички, е добре API-то да има лимити по ключ / план. Примерна логика:

  • Free / тестов план: напр. 1 000 заявки на ден;
  • Pro / платени планове: по-високи дневни / месечни квоти;
  • Enterprise: индивидуални лимити и отделна инфраструктура.

При превишен лимит, API-то може да връща HTTP 429 Too Many Requests с кратък JSON отговор, описващ ограничението.

3. Примерни ендпойнти

Няколко типични ендпойнта, които можеш да изложиш (примерни):

  • GET /api/v1/analytics/ip/{ip} – IP гео данни и risk флагове;
  • GET /api/v1/analytics/domain/{domain} – DNS, MX, NS, HTTP проверка;
  • GET /api/v1/scamdetect/{domain} – комбиниран репутационен / риск скор;
  • GET /api/v1/uptime/{monitor_id} – статус на uptime монитор.

Реалната JSON структура може да следва масивите, които вече използваш в analytics.php и reputation.php.

4. Примерна заявка (cURL)

Елементарен пример за IP analytics заявка чрез cURL:

curl -X GET \
  "https://ipt.bg/api/v1/analytics/ip/8.8.8.8" \
  -H "X-Api-Key: YOUR_API_KEY_HERE" \
  -H "Accept: application/json"

Примерен JSON отговор:

{
  "ip": "8.8.8.8",
  "geo": {
    "country": "United States",
    "city": "Mountain View",
    "isp": "Google LLC"
  },
  "risk": {
    "score": 15,
    "label": "Low risk"
  }
}

Точните полета зависят от това как мапваш данни от външни услуги и вътрешния risk скоринг.

5. Примерна интеграция (PHP)

Минимален пример за заявка към API от друг PHP проект:

<?php
$ip   = '8.8.8.8';
$key  = 'YOUR_API_KEY_HERE';

$url  = 'https://ipt.bg/api/v1/analytics/ip/' . urlencode($ip);

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL            => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        'X-Api-Key: ' . $key,
        'Accept: application/json',
    ],
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($code === 200 && $body !== false) {
    $data = json_decode($body, true);
    // работа с $data['ip'], $data['geo'], $data['risk'], ...
} else {
    // обработка на грешка / логване
}

6. Контакт и custom интеграции

За продукционен достъп до API, по-високи лимити, whitelisting или on-premise инсталации можеш да се свържеш с нас:

  • Чрез формата Контакт в IPT.BG;
  • Опиши use case-а (SaaS, ISP, хостинг, SOC, MSP и др.);
  • Добави очакван обем и кои ендпойнти планираш да използваш.

Възможни са и частни ендпойнти или отделна инфраструктура за големи партньори, по индивидуални търговски условия.