Nodeflux Central
Event History

API Reference — Event History

Endpoint untuk mengambil, memfilter, dan mengekspor riwayat event deteksi AI dari semua tipe analitik.

Semua endpoint memerlukan header Authorization: Bearer <token> atau X-Api-Key: <key>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz. Jika Anda belum memiliki token, lihat halaman Otentikasi.


Daftar dan Detail Event

Endpoint utama untuk mengambil riwayat event dengan pagination, filter multi-dimensi, serta detail per event.

GET
/api/events

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

filter[timestamp_from]*string

Batas awal waktu pencarian. Format ISO 8601 dengan offset timezone.

Formatdate-time
filter[timestamp_to]*string

Batas akhir waktu pencarian. Format ISO 8601 dengan offset timezone.

Formatdate-time
filter[analytic_id]?string

ID analitik yang difilter. Beberapa nilai dipisahkan koma, misalnya NFV4-FR,NFV4-FRA.

filter[stream_id]?string

ID stream yang difilter. Beberapa nilai dipisahkan koma.

filter[status]?string

Status event. Nilai yang valid bergantung pada analitik: KNOWN, UNKNOWN, ANONYMOUS untuk FR/FRA; nilai lain untuk analitik non-pengenalan.

filter[logic]?string

Logika deteksi untuk analitik multi-logika (MVA, MPA, MPAA, MVAA). Contoh: counting, dwelling, density.

filter[face_id]?string

Face ID yang terdaftar di enrollment. Mengembalikan semua event yang mencocokkan wajah tersebut.

mode?string

Mode pengambilan data. Gunakan PAGING untuk pagination normal.

Default"PAGING"
page?integer

Nomor halaman dimulai dari 1.

Default1
limit?integer

Jumlah data per halaman.

Default10
timezone?string

Timezone IANA untuk interpretasi waktu, misalnya Asia/Jakarta.

Default"UTC"
sort[created_at]?string

Arah pengurutan berdasarkan waktu. asc = terlama dulu, desc = terbaru dulu.

Default"desc"
Value in"asc" | "desc"
instance?string

ID instance sumber pada mode Federation (opsional).

Response Body

application/json

curl -X GET "https://lenz.example.com/api/events?filter%5Btimestamp_from%5D=2024-01-15T00%3A00%3A00%2B07%3A00&filter%5Btimestamp_to%5D=2024-01-15T23%3A59%3A59%2B07%3A00"
{  "ok": true,  "message": "successfully fetch event data",  "results": {    "limit": 10,    "current_page": 1,    "total_data": 142,    "total_page": 15,    "events": [      {        "timestamp": "2024-01-15",        "data": [          {            "id": 4821,            "analytic_id": "NFV4-FR",            "stream_id": "stream-abc123",            "label": "BAMBANG SUDIRO",            "result": "KNOWN",            "location": "Lobby Utama - Gate A",            "status": "KNOWN",            "logic": "",            "timestamp": "2024-01-15T09:23:11+07:00",            "primary_image": "<base64>",            "secondary_image": "<base64>",            "pipeline_data": {              "face_id": "face-uuid-001",              "similarity": 0.94,              "confidence_detection": 0.98            }          }        ]      }    ]  }}
Empty
GET
/api/events/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*integer

ID numerik event

Query Parameters

instance?string

ID instance sumber pada mode Federation (opsional)

Response Body

application/json

curl -X GET "https://lenz.example.com/api/events/4821"
{  "ok": true,  "message": "successfully fetch event data",  "data": {    "id": 4821,    "analytic_id": "NFV4-FR",    "stream_id": "stream-abc123",    "label": "BAMBANG SUDIRO",    "result": "KNOWN",    "location": "Lobby Utama - Gate A",    "status": "KNOWN",    "logic": "",    "timestamp": "2024-01-15T09:23:11+07:00",    "primary_image": "<base64>",    "secondary_image": "<base64>",    "pipeline_data": {      "face_id": "face-uuid-001",      "similarity": 0.94,      "confidence_detection": 0.98,      "status": "KNOWN"    },    "site_hierarchy": [      {        "id": 3,        "instance": "main",        "level": 1,        "name": "Gedung Utama"      }    ]  }}
Empty
Empty
GET
/api/events/pipeline/{pipeline_event_id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

pipeline_event_id*string

Pipeline event ID yang ada di dalam pipeline_data.event_id

Query Parameters

instance?string

ID instance sumber pada mode Federation (opsional)

Response Body

application/json

curl -X GET "https://lenz.example.com/api/events/pipeline/evt-uuid-001"
{  "ok": true,  "message": "successfully fetch event data",  "data": {    "id": 4821,    "analytic_id": "NFV4-FR",    "stream_id": "stream-abc123",    "pipeline_data": {      "event_id": "evt-uuid-001"    }  }}
Empty
Empty

Distribusi Timeline

Endpoint untuk memvisualisasikan jumlah event per interval waktu — berguna untuk mengidentifikasi pola atau lonjakan aktivitas deteksi dalam rentang tertentu.

GET
/api/events/timeline-distribution

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

start_time*string

Waktu mulai rentang. Format ISO 8601.

Formatdate-time
end_time*string

Waktu selesai rentang. Format ISO 8601.

Formatdate-time
interval?string

Ukuran interval setiap bucket. Contoh: 5 minutes, 1 hour, 1 day.

Default"5 minutes"
stream_ids?string

ID stream yang difilter, dipisahkan koma.

analytic_ids?string

ID analitik yang difilter, dipisahkan koma.

timezone?string

Timezone IANA untuk interpretasi waktu.

instance?string

ID instance sumber pada mode Federation (opsional).

Response Body

application/json

curl -X GET "https://lenz.example.com/api/events/timeline-distribution?start_time=2024-01-15T00%3A00%3A00%2B07%3A00&end_time=2024-01-15T23%3A59%3A59%2B07%3A00"
{  "ok": true,  "message": "success",  "data": [    {      "bucket_start": "2024-01-15T09:00:00Z",      "count": 37,      "distribution_by_type": {        "NFV4-FR": 20,        "NFV4-LPR": 17      },      "sample_events": []    },    {      "bucket_start": "2024-01-15T09:05:00Z",      "count": 12,      "distribution_by_type": {        "NFV4-FR": 7,        "NFV4-LPR": 5      },      "sample_events": []    }  ]}
Empty

Administrasi Event

Endpoint pengelolaan data event — hanya untuk kebutuhan administratif seperti pembersihan data sebelum migrasi pipeline.

Operasi DELETE bersifat permanen dan tidak dapat dibatalkan. Pastikan Anda memiliki izin administratif sebelum memanggil endpoint ini.

DELETE
/api/events/by-stream

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string

ID stream yang event-nya akan dihapus

analytic_id*string

ID analitik yang event-nya akan dihapus

logic_type?string

Tipe logika untuk analitik multi-logika (opsional). Bila tidak diisi, semua logika dihapus.

Response Body

application/json

curl -X DELETE "https://lenz.example.com/api/events/by-stream?stream_id=stream-abc123&analytic_id=NFV4-FR"
{  "ok": true,  "message": "events deleted successfully"}
Empty

Export Asinkron

Export data event berjalan dalam tiga tahap: inisiasi job, pemantauan status, dan pengunduhan file. Parameter {category} merujuk pada kategori analitik: FRA, MPAA, MVAA, CE, atau LPR.

Inisiasi dan Pemantauan

POST
/api/event-history/{category}/export

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string

Kategori analitik yang diekspor. Nilai yang valid: FRA (Face Recognition Attributes), MPAA (Multi People Attribute Analytics), MVAA (Multi Vehicle Attribute Analytics), CE (Crowd Estimation), LPR (License Plate Recognition).

Value in"FRA" | "MPAA" | "MVAA" | "CE" | "LPR"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://lenz.example.com/api/event-history/FRA/export" \  -H "Content-Type: application/json" \  -d '{    "format": "pdf",    "scope": "all",    "timezone": "Asia/Jakarta",    "include_images": true,    "filters": {      "timestamp_from": "2024-01-15T00:00:00+07:00",      "timestamp_to": "2024-01-15T23:59:59+07:00",      "stream_ids": [        "stream-abc123"      ],      "analytic_ids": [        "NFV4-FRA"      ]    }  }'
{  "ok": true,  "message": "Export job initiated",  "data": {    "job_id": "export-job-uuid-001",    "status": "pending",    "estimated_records": 1420,    "message": "Export job queued successfully"  }}
Empty
GET
/api/event-history/{category}/export/status/{job_id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string

Kategori analitik (sama dengan yang digunakan saat inisiasi job)

Value in"FRA" | "MPAA" | "MVAA" | "CE" | "LPR"
job_id*string

ID job export yang diperoleh dari respons inisiasi

Response Body

application/json

curl -X GET "https://lenz.example.com/api/event-history/FRA/export/status/export-job-uuid-001"
{  "ok": true,  "data": {    "job_id": "export-job-uuid-001",    "status": "running",    "progress": {      "processed": 712,      "total": 1420,      "percent": 50    },    "files_ready": 0,    "total_files": 1,    "error_message": null,    "created_at": "2024-01-15T10:00:00Z",    "updated_at": "2024-01-15T10:00:30Z"  }}
Empty
Empty

Unduh dan Batalkan

GET
/api/event-history/{category}/export/download/{job_id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string

Kategori analitik (sama dengan yang digunakan saat inisiasi job)

Value in"FRA" | "MPAA" | "MVAA" | "CE" | "LPR"
job_id*string

ID job export yang sudah berstatus completed

Response Body

curl -X GET "https://lenz.example.com/api/event-history/FRA/export/download/export-job-uuid-001"
"string"
Empty
Empty
DELETE
/api/event-history/{category}/export/{job_id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string

Kategori analitik (sama dengan yang digunakan saat inisiasi job)

Value in"FRA" | "MPAA" | "MVAA" | "CE" | "LPR"
job_id*string

ID job export yang akan dibatalkan

Response Body

application/json

curl -X DELETE "https://lenz.example.com/api/event-history/FRA/export/export-job-uuid-001"
{  "ok": true,  "message": "Export job cancelled"}
Empty
Empty

On this page