API Reference — Events
Endpoint REST untuk mengambil event historis dan WebSocket channel untuk feed event real-time dari sistem analitik video.
← Kembali ke Live Events
Panduan operator: monitoring real-time, filter, dan WebSocket protocol.
Otentikasi
Cara memperoleh dan menggunakan Bearer token JWT.
Semua endpoint memerlukan header Authorization: Bearer <token>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Jika Anda belum punya token, lihat halaman Otentikasi.
Event Historis
Endpoint untuk mengambil arsip event dengan cursor-based pagination dan filter multidimensi. Gunakan filter[timestamp_from] dan filter[timestamp_to] untuk membatasi rentang waktu.
Authorization
bearerAuth In: header
Path Parameters
Kategori analitik: fra, mpaa, mvaa, ce, lpr, atau ppe.
"fra" | "mpaa" | "mvaa" | "ce" | "lpr" | "ppe"Query Parameters
Jumlah event per halaman.
20Cursor untuk halaman berikutnya, diperoleh dari pagination.next_cursor pada respons sebelumnya.
Sertakan total count dalam respons. Berguna untuk menampilkan jumlah halaman, namun memperlambat query pada dataset besar.
falseFormat: field:direction. Contoh: event_time:desc, plate_number:asc.
Timezone untuk konversi waktu tampilan. Contoh: Asia/Jakarta.
ID instance untuk mode federation. Kosongkan untuk non-federation.
Batas awal waktu event (ISO 8601).
date-timeBatas akhir waktu event (ISO 8601).
date-timeID stream yang ingin difilter, pisahkan koma untuk multiple. Contoh: eb7022a64d9173a6,c1105b1c6e6b4f3a.
ID analitik engine, pisahkan koma. Contoh: NFV4-FR,NFV4-LPR.
Filter status deteksi. Untuk FRA: known,unknown. Pisahkan koma untuk multiple.
Filter berdasarkan gender (FRA/MPAA). Contoh: male,female.
Filter berdasarkan rentang usia (FRA/MPAA).
Filter berdasarkan penggunaan masker: yes atau no (FRA/MPAA).
Filter berdasarkan kacamata: yes atau no (FRA/MPAA).
Filter berdasarkan penutup kepala: yes atau no (FRA/MPAA).
Filter berdasarkan warna pakaian atas (FRA/MPAA).
Filter berdasarkan warna pakaian bawah (FRA/MPAA).
Filter berdasarkan nama area (MPAA/MVAA/CE).
Filter berdasarkan arah pergerakan: in atau out (MPAA/MVAA).
Filter berdasarkan logic type, contoh: counting, dwelling, density, speed.
Filter berdasarkan tipe kendaraan (MVAA/LPR). Contoh: car,motorcycle.
Filter berdasarkan merek kendaraan (MVAA).
Filter berdasarkan warna kendaraan (MVAA).
Filter berdasarkan garis asal (MPAA virtual line).
Filter berdasarkan garis tujuan (MPAA virtual line).
Filter berdasarkan rompi PPE: yes atau no (PPE).
Filter berdasarkan helm PPE: yes atau no (PPE).
Filter berdasarkan helm terpasang di kepala: yes atau no (PPE).
Pencarian kata kunci umum (nama, label, dll.).
Pencarian berdasarkan nomor plat (LPR).
Response Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/event-history/fra?sort=event_time%3Adesc&timezone=Asia%2FJakarta&filter%5Btimestamp_from%5D=2026-04-30T00%3A00%3A00%2B07%3A00&filter%5Btimestamp_to%5D=2026-04-30T23%3A59%3A59%2B07%3A00&search%5Bplate_number%5D=B+1234"{ "ok": true, "data": { "analytics_type": "fra", "events": [ { "id": "01HXYZ1234567890ABCDEF", "event_id": "evt-abc123", "analytic_id": "NFV4-FR", "stream_id": "eb7022a64d9173a6", "stream_name": "Kamera Lobby Utama", "primary_image_url": "https://raisa.example.com/images/primary/abc123.jpg", "secondary_image_url": "https://raisa.example.com/images/secondary/abc123.jpg", "label": "UNKNOWN", "location": "Lobby Utama", "event_time": "2026-04-30T08:23:45+07:00", "created_at": "2026-04-30T08:23:46+07:00", "status": "unknown", "face_id": null, "similarity": null, "gender": "male", "age": "30-40", "mask": "no", "glasses": "no", "instance": null } ], "pagination": { "limit": 20, "has_next": true, "has_prev": false, "next_cursor": "eyJpZCI6IjE2MzQ1NiJ9", "prev_cursor": null, "total": 1240 } }}{ "ok": false, "message": "unauthorized"}Authorization
bearerAuth In: header
Path Parameters
Kategori analitik event.
"fra" | "mpaa" | "mvaa" | "ce" | "lpr" | "ppe"ID unik event.
Query Parameters
ID instance untuk mode federation (opsional).
Response Body
application/json
application/json
curl -X GET "https://lenz.example.com/api/event-history/fra/evt-abc123"{ "ok": true, "data": { "id": "01HXYZ1234567890ABCDEF", "event_id": "evt-abc123", "analytic_id": "NFV4-FR", "stream_id": "eb7022a64d9173a6", "stream_name": "Kamera Lobby Utama", "primary_image_url": "https://raisa.example.com/images/primary/abc123.jpg", "secondary_image_url": "https://raisa.example.com/images/secondary/abc123.jpg", "label": "Budi Santoso", "location": "Lobby Utama", "event_time": "2026-04-30T08:23:45+07:00", "created_at": "2026-04-30T08:23:46+07:00", "status": "known", "face_id": "abc123def456", "similarity": 0.9234, "gender": "male", "age": "30-40", "mask": "no", "glasses": "no", "pipeline_data": { "face_id": "118747588341006337", "similarity": 0.9234, "status": "KNOWN", "confidence_detection": 0.9988, "variation": "13219648471735459236" }, "instance": null }}{ "ok": false, "message": "event not found"}Opsi Filter
Endpoint untuk mengambil nilai-nilai yang tersedia pada setiap dimensi filter — misalnya daftar stream, status, warna, dan atribut lainnya yang sudah ada di database. Digunakan untuk mengisi dropdown filter secara dinamis.
Authorization
bearerAuth In: header
Path Parameters
Kategori analitik untuk mengambil opsi filter.
"fra" | "mpaa" | "mvaa" | "ce" | "lpr" | "ppe"Query Parameters
Filter opsi berdasarkan logic type tertentu (contoh: counting).
ID instance untuk mode federation (opsional).
Response Body
application/json
curl -X GET "https://lenz.example.com/api/event-history/fra/filters"{ "ok": true, "data": { "category": "fra", "logic_type": null, "filters": { "status": [ "known", "unknown" ], "gender": [ "male", "female" ], "age": [ "20-30", "30-40", "40-50" ], "mask": [ "yes", "no" ], "stream_ids": [ "eb7022a64d9173a6", "c1105b1c6e6b4f3a" ] }, "last_updated": "2026-04-30T08:00:00Z" }}Webhook & Streaming
WebSocket channel untuk menerima feed event secara real-time. Setiap event baru yang diproses oleh sistem analitik langsung di-broadcast ke semua klien yang terhubung.
Endpoint /api/event_channel menggunakan protokol WebSocket — bukan HTTP biasa. Gunakan ws:// atau wss:// sebagai skema URL, dan sertakan Authorization: Bearer <token> pada header saat WebSocket handshake.
Authorization
bearerAuth In: header
Query Parameters
ID stream yang ingin dimonitor, pisahkan koma. Kosongkan untuk menerima dari semua stream.
ID analitik untuk difilter, pisahkan koma. Contoh: NFV4-FR,NFV4-LPR.
Nomor node Visionaire (default: 0 = semua node).
0Set true untuk menonaktifkan gambar base64 dalam payload. Sangat disarankan pada volume tinggi untuk menghemat bandwidth.
falseFilter event berdasarkan logic type tertentu.
ID instance untuk arsitektur federation.
Set true untuk menerima event dari semua instance dalam mode federation.
Response Body
curl -X GET "https://lenz.example.com/api/event_channel?stream_ids=eb7022a64d9173a6%2Cc1105b1c6e6b4f3a"Live Events
Feed event real-time dari kamera yang terdeteksi sistem — pengenalan wajah, plat nomor, orang terdeteksi, dan lainnya. Diperbarui secara langsung melalui WebSocket.
Event History
Telusuri, filter, dan ekspor seluruh riwayat event deteksi AI — Face Recognition, LPR, People Analytics, Vehicle Analytics, dan lainnya — beserta referensi API lengkap.