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

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

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

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

  • Log in to your WebCount.BG account;
  • Go to the API / Developers section in the profile (planned module);
  • Generate a new API key and optionally restrict it by IP / domain.

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

GET https://webcount.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 geo data and risk flags;
  • GET /api/v1/analytics/domain/{domain} – DNS, MX, NS, HTTP check;
  • GET /api/v1/scamdetect/{domain} – combined reputation / risk score;
  • GET /api/v1/uptime/{monitor_id} – статус на uptime монитор.

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

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

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

curl -X GET \
  "https://webcount.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://webcount.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 инсталации можеш да се свържеш с нас:

  • Through the Contact form in WebCount.BG;
  • Describe the use case (SaaS, ISP, hosting, SOC, MSP, etc.);
  • Add the expected volume and which endpoints you plan to use.

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