API v1.0 — Production

NMS SMSolution REST API

Integrasikan monitoring OLT & ONT ke billing system, CRM, atau aplikasi mobile Anda. Data real-time, RESTful, 34 endpoint terdokumentasi.

Real-time polling Bearer token auth 34 endpoint Rate limited

Quick Start

Mulai integrasi dalam 3 langkah.

1

Dapatkan API Key

Login ke web app → halaman API Keys → klik Buat Key Baru. Simpan key — hanya muncul sekali.

Buka halaman API Keys
2

Test Koneksi

Endpoint GET /ping tidak butuh auth. Verifikasi API bisa dijangkau:

curl https://nms.smsolution.id/api/v1/ping
3

Panggilan Pertama

Kirim API key via header Authorization: Bearer dan ambil daftar OLT:

curl -H "Authorization: Bearer YOUR_KEY" \
  https://nms.smsolution.id/api/v1/olt

Authentication

Dua metode autentikasi tersedia. Keduanya menggunakan header Authorization: Bearer <token>.

API Key

Recommended

Long-lived token untuk script, backend, atau integrasi server-to-server. Generate di web app — bisa di-revoke kapan saja. Tidak expire otomatis.

Sanctum Token

Token sesi dari POST /auth/login dengan email + password. Cocok untuk mobile app. Token prefixed dengan nms_.

Common Auth Error Codes

401 UNAUTHENTICATED — Token tidak ada atau tidak valid
403 FORBIDDEN — Scope tidak cukup
403 ACCOUNT_DISABLED — Akun dinonaktifkan
429 RATE_LIMIT_EXCEEDED — Terlalu banyak request
Request Header
Authorization: Bearer YOUR_API_KEY_HERE
POST /auth/login
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.

Push-based · Real-time

Webhooks

Daripada polling endpoint kami setiap menit, daftarkan URL Anda dan NMS akan push event secara otomatis saat ada perubahan jaringan. Latency <2 detik.

1

Daftar webhook

Buka /webhooks di web app → tambahkan URL endpoint Anda → pilih event yang ingin dilanggan.

2

Simpan secret

Setelah submit, secret HMAC ditampilkan sekali. Simpan dengan aman — dipakai untuk verify signature tiap delivery.

3

Terima & verify

Saat ada event, NMS POST JSON ke URL Anda dengan header X-NMS-Signature. Verify, lalu proses.

Event Types

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.

POST → your endpoint (ont.down)
// 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..."
}
Verify Signature — PHP
$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);

Endpoint Explorer

34 endpoint interaktif. Klik Authorize → paste API key → Try it out.

Download OpenAPI JSON