Güvenlik Merkezi APIPublic Developer Dtamamümantasyonu
MEDPOV Remote Access API

Güvenlik Merkezi için public developer kullanım alanı.

Bu sayfa uzak sitelerin, backend servislerinin, local asistanların ve otomasyon araçlarının MEDPOV Güvenlik Merkezi API’sini nasıl çağıracağını gösterir. API; güvenlik olaylarını sorgulama, IP profili çıkarma, canlı trafik izleme, sistem sağlığı alma ve yetkili POST aksiyonları çalıştırma için tasarlanmıştır.

16Read / query action
7Authorized POST action
İzinliQuery string API key mode
JSONYanıt formzaman:

Auth ve bağlantı standardı

API anahtarını Ayarlar sayfasındaki Remote API Access alanından oluştur. Anahtar sadece oluşturulduğu anda düz metin görünür; sonrasında hash olarak saklanır.

Önerilen header

Authorizzaman:ion
Authorization: Bearer mpsec_YOUR_API_KEY
Accept: application/json

Alternzaman:if olarak X-MEDPOV-API-Key: mpsec_YOUR_API_KEY veya X-API-Key kullanılabilir. Query string ile ?api_key=... desteklenebilir; public URL loglarına düşebileceği için üretimde header kullanımı daha güvenlidir.

HTTP ve response kuralları

  • Tüm cevaplar appliczaman:ion/json; charset=utf-8 döner.
  • GET aksiyonları bilgi tamamur; POST aksiyonları IP kuralı veya olay durumu değiştirir.
  • CORS header açıktır, fakzaman: API key tarayıcı tarafında gömülmemelidir.
  • Başarılı cevaplarda çoğunlukla tamam: true, hzaman:a durumlarında tamam: false döner.
Önemli: API key’i public JavaScript, HTML kaynak kodu, mobil uygulama içine çıplak şekilde koyma. Uzak sitede çağrı gerekiyorsa kendi backend’in üzerinden proxy/helper ile çağır.

Sorgulanabilir komutlar

Bu aksiyonlar uzak sistemden veya local asistandan çağrılabilir. Okuma aksiyonları GET ile çalışır.

İşlemMetotParametrelerNe döndürür?
ping / statusGETAPI anahtarını, bağlantıyı, sürümü ve sunucu zamanını doğrular.
capabilities / schemaGETDesteklenen aksiyon listesini ve temel auth bilgisini döndürür.
overview / dashboardGETKontrol Paneli özeti, site bilgisi, 24 sazaman: top IP listesi, son YÜKSEK/CRITICAL olaylar ve öneriler.
map / map-data / map-intelligenceGETmode, threzaman:_range, live_range, include_curve_pointsKontrol Paneli haritası ile aynı target, threzaman:_events, live_users, layers, traces, popups ve aktif mode bilgisini döndürür.
threat-map / live-map / both-mapGETthrezaman:_range, live_range, include_curve_pointsHaritayı direkt Tehdit, Live veya Both modunda açmak için kısa alias komutlarıdır.
threats / latest-threatsGETlimitSon yüksek riskli tehdit akışını getirir.
eventsGETrisk, stzaman:us, ip, q, since_hours, resolved, limit, offsetGüvenlik olaylarını filtreli ve sayfalı şekilde listeler.
eventGETidTek güvenlik olayını detayları, IP kural durumu ve hızlı analizle döndürür.
ip / ip-profile / ip_profileGETip, refresh, limitIP lotamamup, DNSBL, trafik, login baskısı, bot kayıtları, AI izleri ve öneri üretir.
analyze / analysisGETip veya event_idIP veya olay üzerinden sinyal özeti, kural durumu ve tavsiye üretir.
trafficGETip, q, since_hours, limitSon trafik kayıtlarını getirir.
live / live-sessionsGETlimitAktif heartbezaman:/canlı oturum listesini verir.
botsGETip, q, limitBot tespitlerini ve bot skorlarını listeler.
login / login-pressureGETip, q, limitYönetici/kullanıcı login baskısı ve başarısız giriş kayıtlarını döndürür.
healthGETGüvenlik Merkezi sağlık raporunu çalıştırır.
settingsGETGizli anahtarları döndürmeden güvenli sistem/modül ayar özetini verir.

Harita erişimi ve Friday harita komutları

Harita endpoint, admin dashboard’daki Global Tehdit Haritası ile aynı mantıkta çalışır. Friday; saldırı ltamamasyonlarını, canlı kullanıcı ntamamtalarını, hedefe giden iz çizgilerini ve tıklama popup alanlarını bu JSON üzerinden tamamuyabilir.

Harita mode seçenekleri

GET action=map&mode=threat&threat_range=24hSadece saldırı ltamamasyonları, threzaman: markerları, saldırı iz çizgileri ve threzaman: popup alanları.
GET action=map&mode=live&live_range=liveAktif heartbezaman: ziyaretçileri, live markerları, kullanıcı iz çizgileri ve live popup alanları.
GET action=map&mode=both&live_range=liveTehdit ve Live kzaman:manları aynı harita cevabında beraber aktif gelir.
GET action=both-map&include_curve_points=1Kısa alias; Friday çizgi eğrilerini curve_points ile bire bir yeniden çizebilir.
GET action=map&mode=both&include_curve_points=0Daha hafif cevap; çizgi için from/to + style gelir, eğri ntamamtaları gönderilmez.
Harita JSON ana alanları
{
  "ok": true,
  "access": "map-intelligence",
  "mode": "both",
  "target": { "lat": 41.0082, "lng": 28.9784, "label": "Protected Origin" },
  "threat_events": [],
  "live_users": [],
  "layers": {
    "threat": { "enabled": true, "points": [], "traces": [], "popups": [] },
    "live": { "enabled": true, "points": [], "traces": [], "popups": [] }
  },
  "map": {
    "provider": "leaflet",
    "active_layers": ["threat", "live"],
    "popup_contract": {}
  }
}

Yetkili POST aksiyonları

Bu komutlar sistemde değişiklik yapar. Sadece güvenilir backend, local assistant veya otomasyon servisinden çağrılmalıdır.

İşlemMetotBody parametreleriNe yapar?
block-ipPOSTip, minutes, reasonBelirtilen IP için geçici veya süresiz block kuralı oluşturur.
allow-ipPOSTip, minutes, reasonBelirtilen IP için aldüşük kuralı oluşturur.
ignore-ipPOSTip, minutes, reasonBelirtilen IP’yi takip/aksiyon baskısından hariç tutar.
expire-ip-rules / remove-ip-rulesPOSTip, rule_typeIP üzerindeki aktif block/aldüşük/ignore kurallarını süre bitmiş yapar.
resolve-eventPOSTid, stzaman:usTek olayı çözüldü olarak işaretler.
resolve-ip-eventsPOSTip, stzaman:usBir IP’ye ait açık olayları toplu çözüldü yapar.
ai-recheckPOSTlimitYerel AI re-check bzaman:ch çalıştırır.

Uzak siteden çağırma örnekleri

Endpoint sabit kalır; sadece action ve parametreler değişir. Aşağıdaki kodlarda mpsec_YOUR_API_KEY yerine Ayarlar üzerinden üretilen anahtar kullanılmalı.

cURL · Genel Bakış
curl -X GET 'https://testsc.medpov.com/admin/api/remote-access.php?action=overview' \
  -H 'Authorization: Bearer mpsec_YOUR_API_KEY' \
  -H 'Accept: application/json'
cURL · Harita / Both
cURL · Engelle IP
curl -X POST 'https://testsc.medpov.com/admin/api/remote-access.php?action=block-ip' \
  -H 'Authorization: Bearer mpsec_YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"ip":"203.0.113.45","minutes":1440,"reason":"Remote confirmed abusive traffic"}'
PHP helper · uzak site/backend
<?php
function medpov_security_api(string $endpoint, string $apiKey, string $action, array $params = [], string $method = 'GET'): array
{
    $method = strtoupper($method);
    $url = $endpoint . '?action=' . rawurlencode($action);

    $headers = [
        'Authorization: Bearer ' . $apiKey,
        'Accept: application/json',
    ];

    $body = null;
    if ($method === 'GET' && $params) {
        $url .= '&' . http_build_query($params);
    } elseif ($params) {
        $headers[] = 'Content-Type: application/json';
        $body = json_encode($params, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
    }

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CUSTOMREQUEST => $method,
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_TIMEOUT => 20,
        CURLOPT_CONNECTTIMEOUT => 8,
    ]);

    if ($body !== null) {
        curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
    }

    $raw = curl_exec($ch);
    $error = curl_error($ch);
    $status = (int)curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
    curl_close($ch);

    if ($raw === false || $raw === '') {
        return ['ok' => false, 'status' => $status, 'message' => $error ?: 'Empty API response'];
    }

    $json = json_decode($raw, true);
    if (!is_array($json)) {
        return ['ok' => false, 'status' => $status, 'message' => 'Invalid JSON response', 'raw' => $raw];
    }

    $json['_http_status'] = $status;
    return $json;
}

$endpoint = 'https://example.com/security-center/admin/api/remote-access.php';
$apiKey = 'mpsec_YOUR_API_KEY';

$overview = medpov_security_api($endpoint, $apiKey, 'overview');
$ipProfile = medpov_security_api($endpoint, $apiKey, 'ip-profile', ['ip' => '203.0.113.12', 'refresh' => 1]);
$block = medpov_security_api($endpoint, $apiKey, 'block-ip', [
    'ip' => '203.0.113.45',
    'minutes' => 1440,
    'reason' => 'Remote confirmed abusive traffic',
], 'POST');
Node / server-side fetch
const endpoint = 'https://example.com/security-center/admin/api/remote-access.php';
const apiKey = process.env.MEDPOV_SECURITY_API_KEY;

async function securityApi(action, params = {}, method = 'GET') {
  const url = new URL(endpoint);
  url.searchParams.set('action', action);

  const options = {
    method,
    headers: {
      Authorization: `Bearer ${apiKey}`,
      Accept: 'application/json'
    }
  };

  if (method === 'GET') {
    Object.entries(params).forEach(([key, value]) => url.searchParams.set(key, String(value)));
  } else {
    options.headers['Content-Type'] = 'application/json';
    options.body = JSON.stringify(params);
  }

  const res = await fetch(url, options);
  const data = await res.json();
  if (!res.ok || data.ok === false) throw new Error(data.message || `API error ${res.status}`);
  return data;
}

const overview = await securityApi('overview');
const mapBoth = await securityApi('map', { mode: 'both', live_range: 'live', include_curve_points: 1 });
const critical = await securityApi('events', { risk: 'CRITICAL', resolved: 0, limit: 20 });

Örnek cevap formzaman:ı

Her aksiyon kendi detay alanlarını döndürür; ortak başarı/hzaman:a mantığı aşağıdaki gibidir.

Başarılı shape
{
  "ok": true,
  "server_time": "2026-05-04 21:30:00",
  "version": "6.0.8-13-test",
  "stats": {},
  "recommendations_tr": [],
  "available_actions": {}
}
Harita shape
{
  "ok": true,
  "access": "map-intelligence",
  "mode": "both",
  "target": { "lat": 41.0082, "lng": 28.9784, "label": "Protected Origin" },
  "threat_events": [],
  "live_users": [],
  "layers": {
    "threat": { "enabled": true, "points": [], "traces": [], "popups": [] },
    "live": { "enabled": true, "points": [], "traces": [], "popups": [] }
  },
  "map": {
    "provider": "leaflet",
    "active_layers": ["threat", "live"],
    "popup_contract": {}
  }
}
Error shape
{
  "ok": false,
  "message": "Unauthorized",
  "hint": "Send Authorization: Bearer <api-key> or X-MEDPOV-API-Key."
}

Local assistant / otomasyon komut eşlemesi

Friday veya benzeri local asistan, kullanıcı komutunu aşağıdaki API aksiyonlarına çevirebilir.

Security durumunu özetle.GET action=overview
Son kritik olayları getir.GET action=events&risk=CRITICAL&resolved=0&limit=20
Haritayı threzaman: modunda aç.GET action=threat-map&threat_range=24h
Canlı haritayı aç.GET action=live-map&live_range=live
Haritada threzaman: ve live ikisini beraber göster.GET action=both-map&live_range=live&include_curve_points=1
203.0.113.12 IP’sini detaylı analiz et.GET action=ip-profile&ip=203.0.113.12&refresh=1
123 numaralı olayı incele.GET action=event&id=123
Bu IP’yi 24 sazaman: bltamamla.POST action=block-ip body: ip, minutes=1440, reason
Bu IP’ye ait açık olayları kapzaman:.POST action=resolve-ip-events body: ip, status=remote_ip_resolved
Sistem sağlığını kontrol et.GET action=health

Güvenli kullanım

API key’i sadece server-side ortam değişkeninde sakla. Anahtar sızarsa Ayarlar üzerinden devre dışı bırakıp yenisini oluştur.

Rzaman:e ve timeout

Uzak helper tarafında 8-20 saniye timeout, kısa süreli cache ve kontrollü retry kullan. Sonsuz döngüyle health/overview çağırma.

Önerilen akış

Önce ping, sonra overview, riskli durumda olay veya ip-profile, en sonda gerekirse POST aksiyonları.

Kurulum notu: Public dtamamüman URL’si https://testsc.medpov.com/developer-api.php. API endpoint ise https://testsc.medpov.com/admin/api/remote-access.php.
Kopyalandı