Ana içeriğe geç

API Uç Noktaları

AnchorSpot REST API'si https://api.siperone.com/v1 temel URL'si üzerinden hizmet verir. Tüm istekler JWT token veya API anahtarı ile yetkilendirilmelidir.

Temel URL: https://api.siperone.com/v1

Tüm yanıtlar Content-Type: application/json formatındadır. Tarihler ISO 8601 UTC formatında döner.

Oturumlar

Aktif Oturumları Listele

curl -X GET "https://api.siperone.com/v1/sessions?status=active&limit=50" \
-H "Authorization: Bearer {token}"

Yanıt (200):

{
"data": [
{
"id": "ses_abc123",
"mac": "AA:BB:CC:DD:EE:FF",
"ip": "10.0.1.42",
"username": "+90 5** *** ** 67",
"auth_method": "sms_otp",
"started_at": "2026-06-08T14:23:01Z",
"duration_seconds": 1834,
"bytes_in": 52428800,
"bytes_out": 1048576,
"hotspot_id": "hs_xyz789"
}
],
"total": 23,
"limit": 50,
"offset": 0
}

Oturum Detayı

curl -X GET "https://api.siperone.com/v1/sessions/ses_abc123" \
-H "Authorization: Bearer {token}"

Oturum Sonlandır

curl -X DELETE "https://api.siperone.com/v1/sessions/ses_abc123" \
-H "Authorization: Bearer {token}"

Yanıt (200):

{
"id": "ses_abc123",
"status": "disconnected",
"disconnected_at": "2026-06-08T15:00:00Z",
"reason": "admin_disconnect"
}

Misafirler

Misafir Arama (MAC ile)

curl -X GET "https://api.siperone.com/v1/guests?mac=AA:BB:CC:DD:EE:FF" \
-H "Authorization: Bearer {token}"

Misafir Geçmişi

curl -X GET "https://api.siperone.com/v1/guests/AA:BB:CC:DD:EE:FF/history?days=30" \
-H "Authorization: Bearer {token}"

Kupon Kodları

Kupon Oluştur

curl -X POST "https://api.siperone.com/v1/vouchers" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"code": "KONFERANS-2026",
"max_uses": 100,
"duration_minutes": 480,
"bandwidth_down_mbps": 10,
"bandwidth_up_mbps": 5,
"expires_at": "2026-06-30T23:59:59Z"
}'

Yanıt (201):

{
"id": "vch_def456",
"code": "KONFERANS-2026",
"max_uses": 100,
"current_uses": 0,
"status": "active",
"created_at": "2026-06-08T10:00:00Z",
"expires_at": "2026-06-30T23:59:59Z"
}

Kuponları Listele

curl -X GET "https://api.siperone.com/v1/vouchers?status=active" \
-H "Authorization: Bearer {token}"

Kupon Sil

curl -X DELETE "https://api.siperone.com/v1/vouchers/vch_def456" \
-H "Authorization: Bearer {token}"

Hotspotlar (Siteler)

Hotspot Listele

curl -X GET "https://api.siperone.com/v1/hotspots" \
-H "Authorization: Bearer {token}"

Hotspot Oluştur

curl -X POST "https://api.siperone.com/v1/hotspots" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "Ana Lobi",
"location": "İstanbul, Kadıköy",
"timezone": "Europe/Istanbul"
}'

Hotspot Güncelle

curl -X PUT "https://api.siperone.com/v1/hotspots/hs_xyz789" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "Ana Lobi - Yeni Ad"
}'

Raporlar

Oturum Raporu

curl -X GET "https://api.siperone.com/v1/reports/sessions?from=2026-06-01&to=2026-06-08" \
-H "Authorization: Bearer {token}"

Analitik Raporu

curl -X GET "https://api.siperone.com/v1/reports/analytics?from=2026-06-01&to=2026-06-08" \
-H "Authorization: Bearer {token}"

Yanıt (200):

{
"period": {"from": "2026-06-01", "to": "2026-06-08"},
"total_sessions": 1247,
"unique_devices": 892,
"avg_duration_minutes": 47,
"auth_methods": {
"sms_otp": 523,
"whatsapp_otp": 312,
"sponsor": 189,
"voucher": 156,
"email": 67
},
"device_types": {
"ios": 412,
"android": 356,
"windows": 89,
"macos": 35
},
"peak_hour": "14:00"
}

Uyum

5651 Kanıt Paketi Dışa Aktar

curl -X GET "https://api.siperone.com/v1/compliance/5651/export?from=2026-06-01&to=2026-06-08" \
-H "Authorization: Bearer {token}" \
-o evidence_pack.zip

Audit Chain Sorgula

curl -X GET "https://api.siperone.com/v1/compliance/audit-chain?date=2026-06-08" \
-H "Authorization: Bearer {token}"

Webhook'lar

Webhook Oluştur

curl -X POST "https://api.siperone.com/v1/webhooks" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"url": "https://sirketiniz.com/webhook/anchorspot",
"events": ["session.start", "session.end", "auth.failure"],
"secret": "whsec_guclu-rastgele-deger"
}'

Desteklenen Olay Türleri

OlayAçıklama
session.startYeni oturum başladı
session.endOturum sonlandı (timeout, disconnect, admin)
auth.successBaşarılı kimlik doğrulama
auth.failureBaşarısız kimlik doğrulama denemesi
voucher.redeemedKupon kodu kullanıldı
sponsor.approvedSponsor talebi onaylandı
sponsor.rejectedSponsor talebi reddedildi
device.newİlk kez bağlanan cihaz

Webhook Doğrulama

Gelen webhook isteklerini X-Signature-256 başlığı ile doğrulayın:

import hmac
import hashlib

def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(), payload, hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)
uyarı

Webhook endpoint'iniz 5 saniye içinde 200 yanıtı dönmelidir. Aksi halde istek yeniden gönderilir (3 deneme, üstel bekleme).