Integrasikan monitoring OLT & ONT ke billing system, CRM, atau aplikasi mobile Anda. Data real-time, RESTful, 34 endpoint terdokumentasi.
Mulai integrasi dalam 3 langkah.
Login ke web app → halaman
API Keys
→ klik Buat Key Baru. Simpan key — hanya muncul sekali.
Endpoint GET /ping tidak butuh auth.
Verifikasi API bisa dijangkau:
curl https://nms.smsolution.id/api/v1/ping
Kirim API key via header Authorization: Bearer dan ambil daftar OLT:
curl -H "Authorization: Bearer YOUR_KEY" \
https://nms.smsolution.id/api/v1/olt
Dua metode autentikasi tersedia. Keduanya menggunakan header
Authorization: Bearer <token>.
Long-lived token untuk script, backend, atau integrasi server-to-server. Generate di web app — bisa di-revoke kapan saja. Tidak expire otomatis.
Token sesi dari POST /auth/login dengan email + password.
Cocok untuk mobile app. Token prefixed dengan nms_.
Authorization: Bearer YOUR_API_KEY_HERE
curl -X POST https://nms.smsolution.id/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "admin@nms.local",
"password": "secret",
"device_name": "MyApp"
}'
Jangan ekspos API key di client-side / public repo.
Simpan di environment variable. Revoke segera jika terleak.
Daripada polling endpoint kami setiap menit, daftarkan URL Anda dan NMS akan push event secara otomatis saat ada perubahan jaringan. Latency <2 detik.
Daftar webhook
Buka /webhooks di web app → tambahkan URL endpoint Anda → pilih event yang ingin dilanggan.
Simpan secret
Setelah submit, secret HMAC ditampilkan sekali. Simpan dengan aman — dipakai untuk verify signature tiap delivery.
Terima & verify
Saat ada event, NMS POST JSON ke URL Anda dengan header X-NMS-Signature. Verify, lalu proses.
ont.down
ont.up
olt.unreachable
olt.recovered
weak_signal
polling.completed
Retry & Auto-disable
Failed delivery di-retry hingga 5× dengan exponential backoff (10s → 30s → 2m → 10m → 30m). Setelah 10 kegagalan berurutan, webhook otomatis dinonaktifkan.
// Headers:
Content-Type: application/json
X-NMS-Event: ont.down
X-NMS-Signature: a3f8b2... (HMAC SHA-256)
X-NMS-Delivery-Id: 550e8400-e29b-...
X-NMS-Timestamp: 2026-05-17T15:50:03+07:00
// Body:
{
"event": "ont.down",
"tenant_id": "019e3266-...",
"timestamp": "2026-05-17T15:50:03+07:00",
"delivery_id": "550e8400-e29b-...",
"alert_type": "ont_down",
"olt_device_id": 428,
"ont_sn": "HWTC1A2B3C4D",
"message": "🔴 ONT MATI\n..."
}
$body = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_NMS_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $body, $YOUR_SECRET);
if (!hash_equals($expected, $signature)) {
http_response_code(401);
exit('Invalid signature');
}
// Safe to process
$payload = json_decode($body, true);
http_response_code(200);
34 endpoint interaktif. Klik Authorize → paste API key → Try it out.