Ana içeriğe geç

API Genel Bakış

NetRecon, harici araçlarla entegrasyon, özel kontrol panelleri oluşturma ve ağ güvenliği iş akışlarını otomatikleştirme için bir REST API sunar. Tüm mikro hizmetlere tek bir API Gateway üzerinden erişilebilir.

Her kategoriye göre gruplandırılmış tüm uç noktaların tam listesi için Uç Nokta Referansı sayfasına bakın.

Temel URL

Tüm API istekleri API Gateway üzerinden geçer:

https://probe.netreconapp.com/api/

Kendi sunucunuzda barındırılan dağıtımlar için temel URL şu kalıbı izler:

https://netrecon.yourcompany.com/api/

Gateway; kimlik doğrulama, hız sınırlama, RBAC uygulama ve istek yönlendirmeyi uygun arka uç hizmetine yönetir.

Kimlik Doğrulama

Tüm API uç noktaları (/api/health ve /health hariç) JWT Bearer jetonu gerektirir.

Jeton Alma

curl -X POST https://probe.netreconapp.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "your-password"
}'

Yanıt:

{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "bearer",
"expires_in": 86400
}

Jetonu Kullanma

Her istekte Authorization başlığına jetonu ekleyin:

curl https://probe.netreconapp.com/api/devices \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Jeton Yenileme

Jetonlar varsayılan olarak 24 saat sonra sona erer (dağıtıma göre yapılandırılabilir). Süre dolmadan önce yenileyin:

curl -X POST https://probe.netreconapp.com/api/auth/refresh \
-H "Authorization: Bearer <current-token>"

API Anahtarları

Hizmetler arası iletişim ve otomasyon betikleri, JWT jetonlarına alternatif olarak uzun ömürlü API anahtarları kullanabilir. Anahtarlar nr_live_ ile başlayıp 48 onaltılık karakter formatını kullanır.

curl https://api.netreconapp.com/api/v1/devices \
-H "X-API-Key: nr_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6"

Her anahtarın ayrıntılı izin kapsamları vardır. Kontrol panelindeki Ayarlar > API Anahtarları bölümünden yapılandırın. Tüm detaylar için Kimlik Doğrulama sayfasına bakın.

Hız Sınırlama

API istekleri kimlik doğrulama jetonu başına hız sınırına tabidir. Gateway, her istekte X-RateLimit-Limit ve X-RateLimit-Remaining yanıt başlıklarını döndürür.

KatmanDakika başına istekAni artış
Standart6010
Yönetici12020
Hizmet (ajan)30050

Sınır aşıldığında API, kaç saniye beklenileceğini gösteren Retry-After başlığıyla HTTP 429 Too Many Requests döndürür.

İstek ve Yanıt Kuralları

İçerik Türü

Aksi belirtilmedikçe tüm istek ve yanıt gövdeleri application/json kullanır (örn. CSV dışa aktarma uç noktaları text/csv, dosya indirmeleri application/octet-stream döndürür).

Sayfalama

Liste uç noktaları varsayılan olarak 100 öğelik sayfa boyutuyla sayfalandırılır. Sayfalamayı sorgu parametreleriyle kontrol edin:

GET /api/devices?page=2&per_page=50

Hata Formatı

Tüm hatalar tutarlı bir JSON yapısını izler:

{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired token",
"details": null
}
}

Yaygın Hata Kodları

HTTP DurumuKodAçıklama
400BAD_REQUESTGeçersiz istek parametreleri
401UNAUTHORIZEDEksik veya geçersiz jeton
403FORBIDDENYetersiz izinler (RBAC)
404NOT_FOUNDKaynak bulunamadı
409CONFLICTKaynak çakışması (tekrar, aktif oturum mevcut, vb.)
429RATE_LIMITEDÇok fazla istek
500INTERNAL_ERRORSunucu hatası
502BAD_GATEWAYÜst akış hizmetine ulaşılamıyor
503SERVICE_UNAVAILABLEHizmet hazır değil

WebSocket API

Gerçek zamanlı olaylar için WebSocket uç noktasına bağlanın:

wss://probe.netreconapp.com/ws/events?token=<jwt-token>

Olay Formatı

{
"event": "host_found",
"timestamp": "2026-03-15T14:30:00Z",
"data": {
"ip": "192.168.1.100",
"mac": "AA:BB:CC:DD:EE:FF",
"hostname": "workstation-01"
}
}

Olay Türleri

OlayAçıklama
host_foundYeni cihaz keşfedildi
port_foundCihazda açık port tespit edildi
scan_completeAğ taraması tamamlandı
neighbor_discoveredCDP/LLDP komşusu bulundu
config_changedCihaz yapılandırması değişti
baseline_diff_alertAğ temel çizgisi sapması tespit edildi
ids_alertIDS kuralı tetiklendi
honeypot_hitBal küpü etkileşimi tespit edildi
rogue_detectedSahte DHCP veya ARP etkinliği
pcap_readyPCAP dosyası indirmeye hazır
vuln_foundZafiyet keşfedildi
dns_threatDNS tehdidi engellendi
probe_health_alertProb kaynak eşiği aşıldı
errorHata olayı

Etkileşimli API Dokümantasyonu

Her arka uç hizmeti Swagger/OpenAPI dokümantasyonu sunar:

HizmetDokümantasyon URL'si
API Gateway/api/docs
Vault Server/api/vault/docs
License Server/api/license/docs
Agent Registry/api/agents/docs
CMod Service/api/cmod/docs
IPAM Service/api/ipam/docs
Diplomat Service/api/diplomat/docs
Birleştirilmiş (tüm hizmetler)/api/v1/docs/openapi.json

SDK ve Entegrasyon Örnekleri

Tam kod örnekleriyle detaylı örnekler için bakın:

Hızlı Başlangıç (cURL)

# Tüm cihazları listele
curl -H "Authorization: Bearer $TOKEN" \
https://api.netreconapp.com/api/v1/devices

# Tarama başlat
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"target": "192.168.1.0/24", "profile": "normal"}' \
https://api.netreconapp.com/api/v1/scans/start

# Son 24 saatin IDS uyarılarını al
curl -H "Authorization: Bearer $TOKEN" \
"https://api.netreconapp.com/api/v1/alerts?source=ids&since=24h"

Hızlı Başlangıç (Python)

import requests

BASE_URL = "https://api.netreconapp.com/api/v1"
headers = {"X-API-Key": "nr_live_your_api_key_here"}

# Cihazları al
devices = requests.get(f"{BASE_URL}/devices", headers=headers)
for device in devices.json()["data"]:
print(f"{device['ip']} - {device['hostname']} - {device['device_type']}")

API Sürümleme

Mevcut API v1'dir (prob uç noktaları için örtük, mikro hizmet uç noktaları için açık /api/v1/). Kırıcı değişiklikler tanıtıldığında, /api/ v1'i sunmaya devam ederken yeni bir sürüm yolu (/api/v2/) yayınlanacaktır.

Destek

API ile ilgili sorular veya sorunlar için [email protected] adresine başvurun.