Nodeflux Central
Statistics

API Reference — Statistics

Endpoint untuk mengambil data metrik agregat per domain analitik — Face Recognition, People Analytics, Vehicle Analytics, Crowd Estimation, dan LPR.

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.


Pola Umum

Seluruh endpoint Statistics berbagi pola yang konsisten:

  • Prefix: GET /api/statistics/{sub-path}
  • Parameter wajib: stream_id, start_date, end_date
  • Parameter opsional: analytic_id (untuk FR/FRA/LPR), instance (mode Federation)
  • 404 dikembalikan bila tidak ada data untuk kombinasi stream + rentang tanggal yang diminta — bukan error, cukup tampilkan "Data tidak tersedia"

stream_id mendukung beberapa stream sekaligus dengan memisahkan ID menggunakan koma: stream-abc,stream-def. Response akan berisi agregasi dari seluruh stream yang diminta.


Face Recognition

FR — Face Recognition Dasar

Statistik pengenalan wajah tanpa atribut demografis. Cocok untuk analitik NFV4-FR.

Statistik Face Recognition (FR)

GET
/api/statistics/fr

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string

ID stream, pisahkan dengan koma untuk beberapa stream

start_date*string

Tanggal mulai (YYYY-MM-DD)

Formatdate
end_date*string

Tanggal akhir (YYYY-MM-DD)

Formatdate
instance?string

ID instance pada mode Federation

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/fr?stream_id=stream-abc123%2Cstream-def456&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "start_date": "2025-04-01",    "end_date": "2025-04-07",    "summary": {      "known": 480,      "unknown": 120,      "total": 600,      "total_detections": 850,      "known_percentage": 80,      "unknown_percentage": 20    },    "time_series_data": [      {        "time_label": "09:00",        "event_time": "2025-04-01T09:00:00+07:00",        "known": 50,        "unknown": 10,        "total": 60,        "total_detections": 80,        "percent_of_total": 12.5,        "change_from_previous": 5      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5,        "known": 200,        "unknown": 50,        "total": 250,        "total_detections": 320      }    ],    "peak_time_info": {      "peak_time": "14:00",      "peak_count": 132,      "lowest_time": "03:00",      "lowest_count": 2    },    "trends": {      "overall_trend": "increasing",      "average_per_interval": 45.3,      "peak_to_average_ratio": 2.9    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

FRA — Face Recognition Analytics

Statistik pengenalan wajah dengan atribut demografis: jenis kelamin, usia, masker, kacamata, dan penutup kepala. Gunakan parameter analytic_id untuk membedakan varian FRA (NFV4-FRA, NFV4H-WZMND-FR, NFV4H-MOBLE-FR).

Statistik Face Recognition Analytics (FRA)

GET
/api/statistics/fra

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string

ID stream, pisahkan dengan koma untuk beberapa stream

start_date*string
Formatdate
end_date*string
Formatdate
analytic_id?string

Filter berdasarkan tipe analitik, contoh: NFV4-FRA, NFV4H-WZMND-FR, NFV4H-MOBLE-FR

instance?string

ID instance pada mode Federation

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/fra?stream_id=stream-abc123&start_date=2025-04-01&end_date=2025-04-30&analytic_id=NFV4-FRA"
{  "message": "success",  "data": {    "time_range": "daily",    "start_date": "2025-04-01",    "end_date": "2025-04-30",    "summary": {      "known": 480,      "unknown": 120,      "total": 600,      "total_detections": 850,      "known_percentage": 80,      "unknown_percentage": 20,      "demographics": {        "male_count": 300,        "female_count": 180,        "adult_count": 420,        "child_count": 60,        "mask_count": 45,        "no_mask_count": 435,        "glasses_count": 120,        "no_glasses_count": 360,        "head_covering_count": 30,        "no_head_covering_count": 450,        "male_percentage": 62.5,        "female_percentage": 37.5,        "adult_percentage": 87.5,        "child_percentage": 12.5,        "mask_percentage": 9.4,        "no_mask_percentage": 90.6,        "glasses_percentage": 25,        "no_glasses_percentage": 75,        "head_covering_percentage": 6.25      }    },    "time_series_data": [      {        "time_label": "09:00",        "event_time": "2025-04-01T09:00:00+07:00",        "known": 50,        "unknown": 10,        "total": 60,        "total_detections": 80,        "percent_of_total": 12.5,        "change_from_previous": 5,        "male_count": 30,        "female_count": 20,        "adult_count": 45,        "child_count": 5,        "mask_count": 3,        "no_mask_count": 47,        "glasses_count": 12,        "no_glasses_count": 38,        "head_covering_count": 2,        "no_head_covering_count": 48      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5,        "known": 200,        "unknown": 50,        "total": 250,        "total_detections": 320      }    ],    "peak_time_info": {      "peak_time": "14:00",      "peak_count": 132,      "lowest_time": "03:00",      "lowest_count": 2    },    "trends": {      "overall_trend": "increasing",      "average_per_interval": 45.3,      "peak_to_average_ratio": 2.9    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

License Plate Recognition

LPR2 — License Plate Recognition v2

Statistik pengenalan plat nomor kendaraan: volume plat dikenal/tidak dikenal, distribusi tipe kendaraan (car, motorcycle, truck), dan tren per interval. Mendukung filter analytic_id untuk membedakan LPR2 dan LPR3.

Statistik License Plate Recognition v2 (LPR2)

GET
/api/statistics/lpr2

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string

ID stream, pisahkan dengan koma untuk beberapa stream

start_date*string
Formatdate
end_date*string
Formatdate
analytic_id?string

Filter tipe analitik LPR, contoh: NFV4-LPR2, NFV4-LPR3

instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/lpr2?stream_id=stream-gate01%2Cstream-gate02&start_date=2025-04-01&end_date=2025-04-07&analytic_id=NFV4-LPR2"
{  "ok": true,  "message": "success",  "data": {    "time_range": "daily",    "start_date": "2025-04-01",    "end_date": "2025-04-07",    "summary": {      "total": 750,      "known_plates": 500,      "unknown_plates": 250,      "known_percentage": 66.7,      "unknown_percentage": 33.3,      "vehicle_types": {        "car": 400,        "motorcycle": 250,        "truck": 100      },      "vehicle_type_percentage": {        "car": 53.3,        "motorcycle": 33.3,        "truck": 13.3      }    },    "time_series_data": [      {        "time_label": "2025-04-01",        "event_time": "2019-08-24T14:15:22Z",        "total": 120,        "known_plates": 80,        "unknown_plates": 40,        "vehicle_types": {          "car": 70,          "motorcycle": 40,          "truck": 10        },        "vehicle_type_percentage": {          "car": 58.3,          "motorcycle": 33.3,          "truck": 8.3        },        "percent_of_total": 16,        "change_from_previous": 8.5      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5,        "total": 300,        "known_plates": 200,        "unknown_plates": 100      }    ],    "peak_time_info": {      "peak_time": "14:00",      "peak_count": 132,      "lowest_time": "03:00",      "lowest_count": 2    },    "trends": {      "overall_trend": "stable",      "average_per_interval": 107.1,      "peak_to_average_ratio": 1.7    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Crowd Estimation

CE — Crowd Estimation

Statistik estimasi jumlah kerumunan: total event estimasi, rata-rata dan puncak kerumunan, distribusi per area, dan analisis periode tersibuk/tersepi.

Statistik Crowd Estimation (CE)

GET
/api/statistics/ce

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string

ID stream, pisahkan dengan koma untuk beberapa stream

start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/ce?stream_id=stream-plaza01&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "summary": {      "total_events": 2400,      "average_estimation": 45.2,      "peak_estimation": 120,      "lowest_estimation": 5,      "latest_estimation": 38,      "total_areas_monitored": 3    },    "time_series_data": [      {        "time_interval": "09:00",        "data": {          "total_events": 60,          "average_estimation": 50,          "peak_estimation": 80,          "lowest_estimation": 10,          "area_breakdown": [            {              "area": "Area A",              "average_estimation": 22.4,              "peak_estimation": 60,              "event_count": 800            }          ]        },        "percent_of_total": 2.5,        "change_from_previous": 10      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5,        "total_events": 800,        "average_estimation": 42,        "peak_estimation": 110,        "areas": [          {            "area": "Area A",            "average_estimation": 20,            "peak_estimation": 55,            "latest_estimation": 18,            "event_count": 400          }        ]      }    ],    "area_distribution": [      {        "area": "Area A",        "total_events": 1200,        "average_estimation": 40,        "peak_estimation": 100,        "latest_estimation": 35,        "streams_count": 2,        "percent_of_total": 50      }    ],    "peak_time_info": {      "peak_period": "12:00",      "peak_estimation": 120,      "peak_location": "Gedung A",      "peak_area": "Area B",      "average_during_peak": 95,      "events_during_peak": 180    },    "trends": {      "overall_trend": "stable",      "trend_percentage": 2.5,      "busiest_periods": [        {          "period": "12:00-14:00",          "average_estimation": 90,          "description": "Jam makan siang"        }      ],      "quietest_periods": [        {          "period": "12:00-14:00",          "average_estimation": 90,          "description": "Jam makan siang"        }      ]    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

People Analytics

Tiga mode analisis tersedia: Counting (lalu lintas masuk/keluar), Dwelling (durasi tinggal), dan Density (kepadatan area). Tersedia untuk MPA (dasar) dan MPAA (dengan atribut demografis).

MPA — People Analytics Dasar

Statistik People Analytics — Counting (MPA)

GET
/api/statistics/mpa/counting

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mpa/counting?stream_id=stream-entry01&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "summary": {      "in": 350,      "out": 310,      "total": 660,      "net_flow": 40,      "in_percentage": 53,      "out_percentage": 47    },    "time_series_data": [      {        "time_interval": "09:00",        "person": {          "in": 350,          "out": 310,          "total": 660,          "net_flow": 40,          "in_percentage": 53,          "out_percentage": 47        },        "percent_of_total": 8.3,        "change_from_previous": 5      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5,        "total_count": 300,        "directional_data": {          "in": 350,          "out": 310,          "total": 660,          "net_flow": 40,          "in_percentage": 53,          "out_percentage": 47        },        "peak_time_interval": "12:00",        "peak_count": 45,        "busiest_periods": [          "12:00",          "17:00"        ]      }    ],    "peak_time_info": {      "peak_time_interval": "12:00",      "peak_traffic": {        "in": 350,        "out": 310,        "total": 660,        "net_flow": 40,        "in_percentage": 53,        "out_percentage": 47      },      "top_busy_periods": [        {          "time_interval": "string",          "count": 0        }      ],      "least_busy_periods": [        {          "time_interval": "string",          "count": 0        }      ]    },    "trends": {      "average_traffic_per_interval": 55,      "traffic_distribution": [        {          "time_period": "string",          "count": 0,          "percentage": 0        }      ],      "directional_trend": {        "dominant_direction": "in",        "directional_ratio": 1.13      }    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik People Analytics — Dwelling (MPA)

GET
/api/statistics/mpa/dwelling

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mpa/dwelling?stream_id=stream-lobby01&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "summary": {      "count": 420,      "average_dwell_time": 185.5,      "min_dwell_time": 10,      "max_dwell_time": 900,      "median_dwell_time": 120,      "most_common_dwell_time": 60    },    "time_series_data": [      {        "time_interval": "09:00",        "count": 35,        "average_dwell_time": 200,        "median_dwell_time": 130,        "most_common_dwell_time": 60,        "min_dwell_time": 15,        "max_dwell_time": 750,        "change_from_previous": -5,        "area_data": {          "Area A": {            "count": 20,            "average_dwell_time": 180,            "median_dwell_time": 120,            "most_common_dwell_time": 60,            "min_dwell_time": 15,            "max_dwell_time": 750          }        }      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5      }    ],    "peak_time_info": {      "peak_time_interval": "12:00",      "peak_count": 60,      "peak_average_dwell_time": 250,      "peak_median_dwell_time": 180,      "top_busy_periods": [        {}      ],      "least_busy_periods": [        {}      ]    },    "trends": {      "average_people_per_interval": 35,      "average_dwell_time": 185.5,      "min_dwell_time": 10,      "max_dwell_time": 900,      "median_dwell_time": 120,      "most_common_dwell_time": 60,      "occupancy_rate": 72.5,      "long_stay_frequency": 15.2    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik People Analytics — Density (MPA)

GET
/api/statistics/mpa/density

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mpa/density?stream_id=stream-hall01&start_date=2025-04-01&end_date=2025-04-01"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "start_date": "2025-04-01",    "end_date": "2025-04-01",    "summary": {      "count": 480,      "average_density": 4.2    },    "time_series_data": [      {        "time_interval": "09:00",        "count": 40,        "average_density": 4.5,        "area_data": {          "property1": {            "count": 0,            "average_density": 0          },          "property2": {            "count": 0,            "average_density": 0          }        },        "percent_of_total": 8.3,        "change_from_previous": 2      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5      }    ],    "peak_time_info": {      "peak_time_interval": "12:00",      "peak_count": 72,      "peak_area": "Area B",      "peak_percentage": 45,      "off_peak_average": 3.2,      "peak_to_off_peak_ratio": 2.25    },    "trends": {      "low_density": 120,      "medium_density": 200,      "high_density": 160,      "low_density_percent": 25,      "medium_density_percent": 41.7,      "high_density_percent": 33.3    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

MPAA — People Analytics Attributes

Versi MPA dengan distribusi atribut demografis penuh: jenis kelamin, usia, masker, kacamata, penutup kepala, warna pakaian atas dan bawah. Endpoint Dwelling juga mencakup analisis zona konversi (entered/looker/passerby).

Statistik People Analytics Attributes — Counting (MPAA)

GET
/api/statistics/mpaa/counting

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mpaa/counting?stream_id=stream-entrance01&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "summary": {      "total": 580,      "in": {        "count": 310,        "percentage": 53.4      },      "out": {        "count": 270,        "percentage": 46.6      },      "net_flow": 40,      "combined_attributes": {        "gender": {          "male": 320,          "female": 260        },        "age": {          "adult": 520,          "child": 60        },        "mask": {          "mask": 45,          "no_mask": 535        }      }    },    "time_series_data": [      {}    ],    "stream_distribution": [      {}    ],    "peak_time_info": {},    "trends": {},    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik People Analytics Attributes — Dwelling (MPAA)

GET
/api/statistics/mpaa/dwelling

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mpaa/dwelling?stream_id=stream-store01&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik People Analytics Attributes — Density (MPAA)

GET
/api/statistics/mpaa/density

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mpaa/density?stream_id=stream-concourse01&start_date=2025-04-01&end_date=2025-04-01"
{  "ok": true,  "message": "success"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Vehicle Analytics

Tiga mode analisis kendaraan: Counting (lalu lintas kendaraan masuk/keluar), Dwelling (durasi parkir), dan Density (kepadatan kendaraan). Tersedia pula Speed untuk analitik kecepatan. MVA adalah analitik dasar, MVAA menambahkan atribut tipe, warna, dan merek kendaraan.

MVA — Vehicle Analytics Dasar

Statistik Vehicle Analytics — Counting (MVA)

GET
/api/statistics/mva/counting

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mva/counting?stream_id=stream-gate-main&start_date=2025-04-01&end_date=2025-04-07"
{  "message": "success",  "data": {    "time_range": "hourly",    "start_date": "2025-04-01",    "end_date": "2025-04-01",    "summary": {      "in": {        "count": 250,        "percentage": 52.1      },      "out": {        "count": 230,        "percentage": 47.9      },      "total": 480,      "net_flow": 20    },    "time_series_data": [      {        "time_interval": "09:00",        "vehicle": {          "in": {            "count": 0,            "percentage": 0          },          "out": {            "count": 0,            "percentage": 0          },          "total": 0,          "net_flow": 0,          "in_percentage": 0,          "out_percentage": 0        },        "percent_of_total": 8.3,        "change_from_previous": 3.5      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5      }    ],    "peak_time_info": {      "peak_time_interval": "08:00",      "top_busy_periods": [        {          "time_interval": "string",          "count": 0        }      ],      "least_busy_periods": [        {          "time_interval": "string",          "count": 0        }      ]    },    "trends": {      "average_traffic_per_interval": 40,      "directional_trend": {        "net_flow_trend": "positive",        "dominant_direction": "in",        "directional_ratio": 1.09      }    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik Vehicle Analytics — Dwelling (MVA)

GET
/api/statistics/mva/dwelling

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mva/dwelling?stream_id=stream-parking01&start_date=2025-04-01&end_date=2025-04-07"
{  "message": "success",  "data": {    "time_range": "hourly",    "start_date": "2025-04-01",    "end_date": "2025-04-01",    "summary": {      "count": 360,      "average_dwell_time": 240,      "min_dwell_time": 20,      "max_dwell_time": 1800,      "median_dwell_time": 180,      "most_common_dwell_time": 120    },    "time_series_data": [      {}    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5      }    ],    "peak_time_info": {      "peak_time_interval": "10:00",      "peak_count": 55,      "peak_average_dwell_time": 320,      "top_busy_periods": [        {}      ],      "least_busy_periods": [        {}      ]    },    "trends": {      "average_vehicles_per_interval": 30,      "average_dwell_time": 240,      "occupancy_rate": 68,      "long_stay_frequency": 22.5    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik Vehicle Analytics — Density (MVA)

GET
/api/statistics/mva/density

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mva/density?stream_id=stream-road01&start_date=2025-04-01&end_date=2025-04-01"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "start_date": "2025-04-01",    "end_date": "2025-04-01",    "summary": {      "count": 520,      "vehicle_type_distribution": {        "car": 300,        "motorcycle": 150,        "truck": 70      }    },    "time_series": [      {}    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5      }    ],    "peak_info": {      "peak_time_interval": "08:00",      "peak_count": 80,      "peak_area": "Gerbang Utama",      "peak_vehicle_type": "car"    },    "trends": {      "low_density": 80,      "medium_density": 180,      "high_density": 260,      "low_density_percent": 15.4,      "medium_density_percent": 34.6,      "high_density_percent": 50    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

MVAS — Vehicle Analytics Speed

Statistik kecepatan kendaraan: rata-rata, minimum, maksimum, dan distribusi kategori kecepatan (slow/medium/fast/very_fast).

Statistik Vehicle Analytics — Speed (MVAS)

GET
/api/statistics/mva/speed

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mva/speed?stream_id=stream-highway01&start_date=2025-04-01&end_date=2025-04-01"
{  "ok": true,  "message": "success",  "data": {    "time_range": "hourly",    "start_date": "2025-04-01",    "end_date": "2025-04-01",    "summary": {      "total_count": 540,      "avg_speed": 42.5,      "min_speed": 5,      "max_speed": 120,      "speed_distribution": {        "slow": {          "count": 80,          "label": "< 20 km/j",          "percentage": 14.8        },        "medium": {          "count": 200,          "label": "20-60 km/j",          "percentage": 37        },        "fast": {          "count": 180,          "label": "60-100 km/j",          "percentage": 33.3        },        "very_fast": {          "count": 80,          "label": "> 100 km/j",          "percentage": 14.8        }      }    },    "time_series_data": [      {        "time_interval": "09:00",        "count": 45,        "avg_speed": 44,        "min_speed": 8,        "max_speed": 105      }    ],    "stream_distribution": [      {        "stream_id": "stream-abc123",        "stream_name": "Lobby Utama",        "location": "Gedung A",        "percent_of_total": 38.5      }    ],    "peak_time_info": {      "peak_time_interval": "07:00",      "peak_count": 85,      "peak_avg_speed": 38.2,      "top_busy_periods": [        {}      ],      "least_busy_periods": [        {}      ]    },    "trends": {      "average_events_per_interval": 45,      "overall_avg_speed": 42.5    },    "timestamp": "2019-08-24T14:15:22Z"  }}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

MVAA — Vehicle Analytics Attributes

Versi MVA dengan distribusi atribut kendaraan lengkap: tipe (car, motorcycle, truck, bus), warna, dan merek.

Statistik Vehicle Analytics Attributes — Counting (MVAA)

GET
/api/statistics/mvaa/counting

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mvaa/counting?stream_id=stream-gate-vip&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik Vehicle Analytics Attributes — Dwelling (MVAA)

GET
/api/statistics/mvaa/dwelling

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mvaa/dwelling?stream_id=stream-parking-vip&start_date=2025-04-01&end_date=2025-04-07"
{  "ok": true,  "message": "success"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Statistik Vehicle Analytics Attributes — Density (MVAA)

GET
/api/statistics/mvaa/density

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

stream_id*string
start_date*string
Formatdate
end_date*string
Formatdate
instance?string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/mvaa/density?stream_id=stream-road-attr01&start_date=2025-04-01&end_date=2025-04-01"
{  "ok": true,  "message": "success"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Ekspor PDF

Ekspor laporan PDF berjalan secara asinkron melalui tiga tahap: inisiasi job → polling status → unduh file.

Gunakan parameter lang untuk mengatur bahasa laporan (id = Bahasa Indonesia, en = English). Default timezone adalah Asia/Jakarta.

Alur Ekspor

  1. POST /api/statistics/{category}/export — Inisiasi job, dapatkan job_id
  2. GET /api/statistics/{category}/export/status/{job_id} — Poll hingga status = completed
  3. GET /api/statistics/{category}/export/download/{job_id} — Unduh file PDF

Inisiasi Ekspor PDF Statistik

POST
/api/statistics/{category}/export

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string

Kategori statistik yang akan diekspor

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://lenz.example.com/api/statistics/fr/export" \  -H "Content-Type: application/json" \  -d '{    "format": "pdf",    "lang": "id",    "timezone": "Asia/Jakarta",    "start_date": "2025-04-01",    "end_date": "2025-04-30",    "stream_ids": [      "stream-abc123",      "stream-def456"    ]  }'
{  "job_id": "export-job-abc123",  "status": "pending",  "category": "fr",  "estimated_time_seconds": 10}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Status Job Ekspor PDF

GET
/api/statistics/{category}/export/status/{job_id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string
job_id*string

Response Body

application/json

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/fr/export/status/export-job-abc123"
{  "job_id": "export-job-abc123",  "status": "completed",  "progress": 100,  "file_ready": true,  "error_message": "string",  "created_at": "2019-08-24T14:15:22Z",  "completed_at": "2019-08-24T14:15:22Z"}
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Unduh File PDF Ekspor

GET
/api/statistics/{category}/export/download/{job_id}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

category*string
job_id*string

Response Body

application/pdf

application/json

application/json

curl -X GET "https://lenz.example.com/api/statistics/fr/export/download/export-job-abc123"
"string"
{  "ok": false,  "message": "invalid request"}
{  "ok": false,  "message": "invalid request"}

Nilai Kategori yang Didukung

KategoriAnalitik
frFace Recognition
fraFace Recognition Analytics
lprLicense Plate Recognition
ceCrowd Estimation
ppePPE Detection
mpa-countingPeople Analytics — Counting
mpa-dwellingPeople Analytics — Dwelling
mpa-densityPeople Analytics — Density
mpaa-countingPeople Analytics Attributes — Counting
mpaa-dwellingPeople Analytics Attributes — Dwelling
mpaa-densityPeople Analytics Attributes — Density
mva-countingVehicle Analytics — Counting
mva-dwellingVehicle Analytics — Dwelling
mva-densityVehicle Analytics — Density
mvas-speedVehicle Analytics — Speed
mvaa-countingVehicle Analytics Attributes — Counting
mvaa-dwellingVehicle Analytics Attributes — Dwelling
mvaa-densityVehicle Analytics Attributes — Density

Contoh Penggunaan

Statistik FR untuk 7 hari

curl -X GET \
  "https://your-lenz-host/api/statistics/fr?stream_id=stream-abc123&start_date=2025-04-01&end_date=2025-04-07" \
  -H "Authorization: Bearer <token>"

Statistik MPA Counting multi-stream

curl -X GET \
  "https://your-lenz-host/api/statistics/mpa/counting?stream_id=stream-entry01,stream-exit01&start_date=2025-04-01&end_date=2025-04-30" \
  -H "Authorization: Bearer <token>"

Inisiasi ekspor PDF (FR, Bahasa Indonesia)

curl -X POST \
  "https://your-lenz-host/api/statistics/fr/export" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "format": "pdf",
    "lang": "id",
    "timezone": "Asia/Jakarta",
    "start_date": "2025-04-01",
    "end_date": "2025-04-30",
    "stream_ids": ["stream-abc123", "stream-def456"]
  }'

Respons contoh — inisiasi ekspor

{
  "job_id": "export-job-abc123",
  "status": "pending",
  "category": "fr",
  "estimated_time_seconds": 10
}

Poll status sampai selesai

curl -X GET \
  "https://your-lenz-host/api/statistics/fr/export/status/export-job-abc123" \
  -H "Authorization: Bearer <token>"
{
  "job_id": "export-job-abc123",
  "status": "completed",
  "progress": 100,
  "file_ready": true,
  "created_at": "2025-04-30T10:00:00+07:00",
  "completed_at": "2025-04-30T10:00:12+07:00"
}

Mode Federation

Sertakan parameter instance untuk mengambil data dari instance tertentu:

curl -X GET \
  "https://your-lenz-host/api/statistics/ce?stream_id=stream-plaza01&start_date=2025-04-01&end_date=2025-04-07&instance=instance-branch-002" \
  -H "Authorization: Bearer <token>"

On this page

Pola UmumFace RecognitionFR — Face Recognition DasarStatistik Face Recognition (FR)FRA — Face Recognition AnalyticsStatistik Face Recognition Analytics (FRA)License Plate RecognitionLPR2 — License Plate Recognition v2Statistik License Plate Recognition v2 (LPR2)Crowd EstimationCE — Crowd EstimationStatistik Crowd Estimation (CE)People AnalyticsMPA — People Analytics DasarStatistik People Analytics — Counting (MPA)Statistik People Analytics — Dwelling (MPA)Statistik People Analytics — Density (MPA)MPAA — People Analytics AttributesStatistik People Analytics Attributes — Counting (MPAA)Statistik People Analytics Attributes — Dwelling (MPAA)Statistik People Analytics Attributes — Density (MPAA)Vehicle AnalyticsMVA — Vehicle Analytics DasarStatistik Vehicle Analytics — Counting (MVA)Statistik Vehicle Analytics — Dwelling (MVA)Statistik Vehicle Analytics — Density (MVA)MVAS — Vehicle Analytics SpeedStatistik Vehicle Analytics — Speed (MVAS)MVAA — Vehicle Analytics AttributesStatistik Vehicle Analytics Attributes — Counting (MVAA)Statistik Vehicle Analytics Attributes — Dwelling (MVAA)Statistik Vehicle Analytics Attributes — Density (MVAA)Ekspor PDFAlur EksporInisiasi Ekspor PDF StatistikStatus Job Ekspor PDFUnduh File PDF EksporNilai Kategori yang DidukungContoh PenggunaanStatistik FR untuk 7 hariStatistik MPA Counting multi-streamInisiasi ekspor PDF (FR, Bahasa Indonesia)Respons contoh — inisiasi eksporPoll status sampai selesaiMode Federation