Dokumentasi API
Sistem Monitoring Biogas & Pengelolaan Sampah — Depok · Jatisari · Indramayu · JakBar
Cara Memakai API Ini
Panduan integrasi lengkap untuk RMC API
Autentikasi
Semua data (GET) butuh X-API-KEY dengan scope read, atau token Authorization: Bearer dari POST /login. Hanya /ping dan /test-cors yang publik.
Base URL
Semua endpoint relatif terhadap: https://monitoring.xampah.com/api/
Batas Login
POST /login: maks 10 percobaan per menit per IP (lalu 429).
Setiap endpoint di bawah diberi label akses. Label diambil langsung dari aturan di server, jadi selalu sesuai dengan yang benar-benar diberlakukan.
| Label | Cara mengakses |
|---|---|
| Publik | Tanpa autentikasi. |
| API key (read) / login | Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login. |
| API key perangkat | Header X-API-KEY (scope * — key read-only ditolak 403). |
| Login admin | Authorization: Bearer token dari POST /login. |
POST /login dan memakai token Bearer.Accept: application/json (selalu; error validasi jadi JSON 422)Content-Type: application/json (POST/PUT dengan body JSON)X-API-KEY: sk_... (server/perangkat)
atau Authorization: Bearer {token}
(login)
{
"success": true, // true jika berhasil
"message": "...", // pesan (opsional)
"data": {}, // isi (objek atau array)
"pagination": { // pada endpoint berhalaman (pada sebagian bernama "meta")
"current_page": 1,
"per_page": 25,
"total": 100,
"last_page": 4
}
}
| HTTP | Arti | Keterangan |
|---|---|---|
| 200 | OK | Berhasil |
| 201 | Created | Data dibuat |
| 401 | Unauthorized | Tidak ada / salah X-API-KEY atau token login |
| 403 | Forbidden | Kredensial valid tapi tidak berhak (mis. key read-only untuk kirim data, bukan admin) |
| 404 | Not Found | Data atau endpoint tidak ada |
| 409 | Conflict | Data ganda (mis. truk sama dalam 1 menit) |
| 422 | Unprocessable Entity | Validasi gagal; detail di errors |
| 429 | Too Many Requests | Terlalu banyak percobaan login / tap kartu ganda |
| 500 | Server Error | Kesalahan server |
curl -X POST https://monitoring.xampah.com/api/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "your_password"}'
# respons:
# {"success": true, "data": {"user": {...}, "token": "12|xxxx", "token_type": "Bearer"}}
curl https://monitoring.xampah.com/api/getCustomer \
-H "Accept: application/json" \
-H "Authorization: Bearer 12|xxxx"
# Ganti token: POST /refresh (Bearer)
# Keluar: POST /logout (Bearer)
Alur Petugas Pilah
POST /register-card-member
POST /attendance
POST /scavengers/save-mlo
GET /scavengers/users
GET /scavengers/total-weight
Monitoring Biogas
POST /biogas
POST /biogas/jatisari/push
POST /biogas/indramayu/push
GET /biogas-data/latest
GET /biogas-data/stats
Timbangan Kendaraan
POST /weightDataIn
POST /weightDataOut
GET /weight/data
GET /recap/waste
<?php
// Contoh PHP cURL - simpan berat MLO
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://monitoring.xampah.com/api/scavengers/save-mlo',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-KEY: sk_xxxxxxxxxxxxxxxxxxxxxxxxx',
],
CURLOPT_POSTFIELDS => json_encode([
'user_id' => 1,
'weight' => 5.5,
]),
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo curl_error($ch);
}
curl_close($ch);
echo $response;
// Contoh JavaScript Fetch
async function saveMlo(userId, weight) {
const response = await fetch(
'https://monitoring.xampah.com/api/scavengers/save-mlo',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'sk_xxxxxxxxxxxxxxxxxxxxxxxxx',
},
body: JSON.stringify({ user_id: userId, weight }),
}
);
const data = await response.json();
console.log(data);
}
saveMlo(1, 5.5);
# Contoh Python Requests
import requests
url = "https://monitoring.xampah.com/api/scavengers/save-mlo"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "sk_xxxxxxxxxxxxxxxxxxxxxxxxx",
}
data = {"user_id": 1, "weight": 5.5}
response = requests.post(url, json=data, headers=headers, timeout=10)
print("Status:", response.status_code)
print(response.json())
Endpoint API Umum
Autentikasi, API key, user & role, kesehatan & riwayat sensor semua lokasi, dan Fleet (OTA / MQTT) untuk semua gateway
Akses: Tanpa autentikasi.
curl "https://monitoring.xampah.com/api/ping" \
-H "Accept: application/json"
{"status": "ok", "time": "2026-10-01 15:40:00"}
Akses: Tanpa autentikasi.
curl "https://monitoring.xampah.com/api/test-cors" \
-H "Accept: application/json"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/db-test" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"status": "success"}
Akses: Tanpa autentikasi.
username boleh berisi username atau email. Login menghapus token lama user itu (perangkat lain otomatis keluar). Akun admin/superadmin dengan check_session=true: bila masih aktif di perangkat lain (dipakai ≤ 30 menit terakhir) jawabannya 409 {code: session_active, data: {device, last_activity}}; kirim ulang dengan force=true untuk mengeluarkan perangkat itu. Maks 10 percobaan per menit per IP (429).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| username | string | wajib | Username atau email |
| password | string | wajib | Password |
| check_session | boolean | opsional | Panel admin: tanya dulu bila akun aktif di perangkat lain |
| force | boolean | opsional | Tetap login dan keluarkan perangkat lain |
curl -X POST "https://monitoring.xampah.com/api/login" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "••••••••"}'
{"username": "admin", "password": "••••••••"}
{"success": true, "message": "Login successful", "data": {"user": {"id": 1, "name": "Admin", "username": "admin", "email": "..."}, "token": "12|xxxxxxxx", "token_type": "Bearer"}}
Akses: Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/user" \
-H "Accept: application/json" \
-H "Authorization: Bearer <token dari POST /login>"
Akses: Authorization: Bearer token dari POST /login.
curl -X POST "https://monitoring.xampah.com/api/refresh" \
-H "Accept: application/json" \
-H "Authorization: Bearer <token dari POST /login>"
Akses: Authorization: Bearer token dari POST /login.
curl -X POST "https://monitoring.xampah.com/api/logout" \
-H "Accept: application/json" \
-H "Authorization: Bearer <token dari POST /login>"
{"success": true, "message": "Logout successful"}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/roles" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID role |
curl "https://monitoring.xampah.com/api/roles/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| search | string | opsional | Nama/username/email |
| role | string | opsional | Nama role |
| role_id | integer | opsional | ID role |
| page | integer | opsional | Halaman |
| per_page | integer | opsional | Baris per halaman (maks 200) |
curl "https://monitoring.xampah.com/api/users?role=admin&per_page=50" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/users/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| role | string (path) | wajib | Nama role |
curl "https://monitoring.xampah.com/api/users/by-role/{role}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID user |
curl "https://monitoring.xampah.com/api/users/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
source: depok-biogas, depok-incinerator-1, depok-incinerator-2, indramayu-biogas, jatisari-biogas. Lebar bucket mengikuti panjang rentang: ≤1 hari 5 menit, ≤3 hari 15 menit, ≤14 hari 1 jam, ≤62 hari 6 jam, selebihnya 1 hari. Rentang maks 366 hari. t = awal bucket (WIB).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| source | string (path) | wajib | Sumber data (lihat keterangan) |
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif) |
| fields | string | opsional | Kolom dipisah koma, mis. ph_1,ph_2; default semua kolom sumber |
curl "https://monitoring.xampah.com/api/history/{source}?start_date=2026-09-24&end_date=2026-09-30&fields=Tmp_Icn,Tmp_Prl" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{
"success": true, "source": "depok-incinerator-1", "label": "Incinerator 1",
"start_date": "2026-09-24", "end_date": "2026-09-30", "bucket_seconds": 3600,
"fields": [{"key": "Tmp_Icn", "label": "Tmp_Icn", "unit": "°C"}],
"stats": {"Tmp_Icn": {"current": 678, "minimum": 40, "average": 388.12, "maximum": 769}},
"count": 168,
"points": [{"t": "2026-09-24 00:00:00", "n": 6, "Tmp_Icn": 151.5}]
}
Endpoint API Depok
Biogas, suhu insinerator, timbangan truk, timbangan pilah (scavengers), rekap sampah & MLO, kartu RFID, absensi
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
Form-urlencoded atau JSON. Kirim Accept: application/json agar error validasi dibalas 422 JSON. Balloon_1..4 = level isi (%), 0 berarti tidak ada bacaan.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| ph_1 | number | wajib | pH reaktor 1 |
| ph_2 | number | wajib | pH reaktor 2 |
| ph_3 | number | wajib | pH reaktor 3 |
| ph_4 | number | wajib | pH reaktor 4 |
| ph_5 | number | wajib | pH reaktor 5 |
| ph_6 | number | wajib | pH reaktor 6 |
| ph_7 | number | wajib | pH reaktor 7 |
| gas_value_1 | number | wajib | Gas meter 1 (m³) |
| pressureGas_1 | number | wajib | Tekanan gas 1 (kPa) |
| temperatureGas_1 | number | wajib | Suhu gas 1 (°C) |
| gas_value_2 | number | wajib | Gas meter 2 (m³) |
| pressureGas_2 | number | wajib | Tekanan gas 2 (kPa) |
| temperatureGas_2 | number | wajib | Suhu gas 2 (°C) |
| Balloon_1 | number | wajib | Level balon 1 (%) |
| Balloon_2 | number | wajib | Level balon 2 (%) |
| Balloon_3 | number | wajib | Level balon 3 (%) |
| Balloon_4 | number | wajib | Level balon 4 (%) |
curl -X POST "https://monitoring.xampah.com/api/biogas" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"ph_1":7.12,"ph_2":7.05,"ph_3":6.98,"ph_4":7.20,"ph_5":7.01,"ph_6":6.95,"ph_7":7.10, "gas_value_1":85.5,"pressureGas_1":2.1,"temperatureGas_1":35.2, "gas_value_2":42.3,"pressureGas_2":1.9,"temperatureGas_2":34.8, "Balloon_1":61.05,"Balloon_2":58.42,"Balloon_3":0,"Balloon_4":72.63}'
{"ph_1":7.12,"ph_2":7.05,"ph_3":6.98,"ph_4":7.20,"ph_5":7.01,"ph_6":6.95,"ph_7":7.10,
"gas_value_1":85.5,"pressureGas_1":2.1,"temperatureGas_1":35.2,
"gas_value_2":42.3,"pressureGas_2":1.9,"temperatureGas_2":34.8,
"Balloon_1":61.05,"Balloon_2":58.42,"Balloon_3":0,"Balloon_4":72.63}
{"success": true}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/biogas-data" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/biogas-data/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success": true, "data": {"id": 20512345, "ph_1": 7.2, "gas_value_1": 85.5, "Balloon_1": 61.05, "created_at": "2026-10-01T08:00:00.000000Z"}}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| page | integer | opsional (bawaan: 1) | Halaman |
| per_page | integer | opsional (bawaan: 15) | Baris per halaman (maks 100) |
curl "https://monitoring.xampah.com/api/biogas-data/paginated?page=1&per_page=50" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif), tidak sebelum start_date |
| limit | integer | opsional | Maks baris |
curl "https://monitoring.xampah.com/api/biogas-data/date-range?start_date=2026-09-01&end_date=2026-09-30" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/biogas-data/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID baris biogas_data |
curl "https://monitoring.xampah.com/api/biogas-data/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| Tmp_Icn | number | wajib | Suhu insinerator (°C) |
| Tmp_Dct | number | wajib | Suhu ICN-2 / ducting (°C) |
| Tmp_Prl | number | wajib | Suhu chamber/pirolisis (°C) |
curl -X POST "https://monitoring.xampah.com/api/tempMonitor" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"Tmp_Icn": 712, "Tmp_Dct": 655, "Tmp_Prl": 680}'
{"Tmp_Icn": 712, "Tmp_Dct": 655, "Tmp_Prl": 680}
{"Success": true}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| Tmp_IcnJ1 | number | wajib | ICN (°C) |
| Tmp_DctJ1 | number | wajib | Ducting (°C) |
| Tmp_CmbJ1 | number | wajib | Chamber-1 (°C) |
| Tmp_PrlJ1_1 | number | wajib | Pirolisis 1 (°C) |
| Tmp_PrlJ1_2 | number | wajib | Pirolisis 2 (°C) |
| Tmp_PrlJ1_3 | number | wajib | Pirolisis 3 (°C) |
| Tmp_PrlJ1_4 | number | wajib | Pirolisis 4 (°C) |
curl -X POST "https://monitoring.xampah.com/api/tempMonitor2" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"Tmp_IcnJ1":720,"Tmp_DctJ1":640,"Tmp_CmbJ1":690,"Tmp_PrlJ1_1":410,"Tmp_PrlJ1_2":398,"Tmp_PrlJ1_3":380,"Tmp_PrlJ1_4":372}'
{"Tmp_IcnJ1":720,"Tmp_DctJ1":640,"Tmp_CmbJ1":690,"Tmp_PrlJ1_1":410,"Tmp_PrlJ1_2":398,"Tmp_PrlJ1_3":380,"Tmp_PrlJ1_4":372}
{"success": true, "data": {"id": 10512345, "Tmp_IcnJ1": 720, ...}}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
Tanpa start_date/end_date: data terbaru menurut range, maks limit baris. Dengan start_date & end_date: SEMUA pembacaan di rentang itu, terbaru dulu, berhalaman; meta berisi total & last_page. Rentang maks 366 hari.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| range | today|week|month | opsional (bawaan: today) | Mode realtime |
| limit | integer | opsional (bawaan: 500) | Mode realtime: maks baris (maks 1000) |
| start_date | date (Y-m-d) | opsional | Mode rentang: tanggal awal |
| end_date | date (Y-m-d) | opsional | Mode rentang: tanggal akhir |
| page | integer | opsional (bawaan: 1) | Mode rentang: halaman |
| per_page | integer | opsional (bawaan: 100) | Mode rentang: baris per halaman (maks 500) |
curl "https://monitoring.xampah.com/api/temp-data?start_date=2026-09-25&end_date=2026-10-01&page=1&per_page=100" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success": true, "data": [{"id": 20500123, "Tmp_Icn": 678, "Tmp_Dct": 658, "Tmp_Prl": 671, "created_at": "..."}], "meta": {"page": 1, "per_page": 100, "total": 959, "last_page": 10}}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/temp-data/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID baris temp_monitors |
curl "https://monitoring.xampah.com/api/temp-data/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| range | today|week|month | opsional (bawaan: today) | Mode realtime |
| limit | integer | opsional (bawaan: 500) | Mode realtime: maks baris (maks 1000) |
| start_date | date (Y-m-d) | opsional | Mode rentang: tanggal awal |
| end_date | date (Y-m-d) | opsional | Mode rentang: tanggal akhir |
| page | integer | opsional (bawaan: 1) | Mode rentang: halaman |
| per_page | integer | opsional (bawaan: 100) | Mode rentang: baris per halaman (maks 500) |
curl "https://monitoring.xampah.com/api/temp2-data?range=today" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif), tidak sebelum start_date |
| limit | integer | opsional (bawaan: 1000) | Maks baris (maks 5000) |
curl "https://monitoring.xampah.com/api/temp2-data/range?start_date=2026-09-01&end_date=2026-09-07" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/temp2-data/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID baris temp_monitor2 |
curl "https://monitoring.xampah.com/api/temp2-data/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
period + date memilih periode di sekitar tanggal itu. today_stats (target, total, per jam) dan tren 30 hari mengikuti tanggal yang dipilih.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| period | daily|weekly|monthly|yearly|custom | opsional (bawaan: daily) | Periode |
| date | date (Y-m-d) | opsional (bawaan: hari ini) | Tanggal acuan |
| start_date | date | opsional | Rentang khusus: awal (wajib bersama end_date) |
| end_date | date | opsional | Rentang khusus: akhir |
| limit | integer | opsional (bawaan: 100) | Transaksi per halaman (maks 1000) |
| page | integer | opsional (bawaan: 1) | Halaman |
| driver_id | integer | opsional | Filter sopir |
| customer_id | integer | opsional | Filter pelanggan |
| no_order | string | opsional | Cari no. order |
| is_completed | boolean | opsional | true = sudah timbang keluar, false = belum |
| min_net_weight | number | opsional | Netto minimum |
| max_net_weight | number | opsional | Netto maksimum |
| sort_by | created_at|time_in|time_out|weight_in|weight_out | opsional (bawaan: created_at) | Urutan |
| sort_direction | asc|desc | opsional (bawaan: desc) | Arah |
| target_daily_tons | number | opsional (bawaan: 10) | Target harian (ton) |
| use_cache | boolean | opsional (bawaan: true) | Pakai cache 30 dtk |
curl "https://monitoring.xampah.com/api/weight/data?period=daily&date=2026-09-30&limit=1000" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/getCustomer" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| date | date (Y-m-d) | opsional (bawaan: hari ini) | Tanggal |
curl "https://monitoring.xampah.com/api/scavengers/users?date=2026-09-30" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| user_id | integer (path) | wajib | ID petugas |
| date | date (Y-m-d) | opsional (bawaan: hari ini) | Tanggal |
| page | integer | opsional | Halaman |
| limit | integer | opsional | Baris per halaman |
curl "https://monitoring.xampah.com/api/scavengers/users/{user_id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | users.id |
curl "https://monitoring.xampah.com/api/scavengers/user/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/scavengers/weight" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| date | date (Y-m-d) | opsional (bawaan: hari ini) | Tanggal |
| user_id | integer | opsional | Hanya petugas ini |
curl "https://monitoring.xampah.com/api/scavengers/total-weight" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif), tidak sebelum start_date |
| user_id | integer | opsional | Hanya petugas ini |
curl "https://monitoring.xampah.com/api/scavengers/total-weight-range?start_date=2026-09-01&end_date=2026-09-30" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-mlo" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'mlo' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-plastic" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'plastic' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gabruk" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gabruk' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-botol-plastik" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'botol_plastik' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-kertas" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'kertas' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-kardus" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'kardus' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-botol-kaca" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'botol_kaca' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-aqua-gelas" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'aqua_gelas' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-incenerator" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'incenerator' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-incenerator2" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'incenerator_2' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-pirolisis" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'pirolisis' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-pirolisis2" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'pirolisis_2' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-bahan-prl" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'bahan_pirolisis' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-icn-today" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'siap_bakar' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-botol-biru" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'botol_biru' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gelas-polos" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gelas_polos' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gelas-warna" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gelas_warna' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gelas-polos-bunga" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gelas_bunga_besar' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gelas-yakult-kecil" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gelas_yakult_kecil' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gelas-yakult-besar" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gelas_yakult_besar' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-botol-polos-putih" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'botol_polos_putih' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-atom-warna-putih" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'atom_warna_putih' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-gelang-galon" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'gelang_galon' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-tutup" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'tutup' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-tutup-galon-besar" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'tutup_galon_besar' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-impek-regas" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'impek_regas' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-emperan-warna-warni" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'emperan_warna_warni' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-mainan-warna" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'mainan_warna' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-botol-bening-lemes" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'botol_bening_lemes' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-asoy" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'asoy' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-duplex" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'duplex' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-styrofoam" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'styrofoam' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-rdf" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'rdf' berhasil disimpan."}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| card_id | integer | opsional | ID kartu RFID (scavenger_member_cards.id) = card_id dari GET /get-member. Wajib bila user_id kosong; yang dipakai timbangan pilah |
| user_id | integer | opsional | ID akun petugas (users.id). Wajib bila card_id kosong |
| weight | number | wajib | Berat dalam kg, ≥ 0 |
curl -X POST "https://monitoring.xampah.com/api/scavengers/save-residu" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"card_id": 7, "weight": 4.35}'
{"card_id": 7, "weight": 4.35}
{"success": true, "message": "Data 'residu' berhasil disimpan."}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
MLO (Material Limbah Organik) = (weight_in − weight_out) − Bahan Pirolisis − Bahan Insinerator (incenerator + incenerator_2) − Gabruk, dari config/waste.php. Hanya truk yang sudah timbang keluar yang dihitung. group default: ≤31 hari harian, ≤186 hari mingguan, selebihnya bulanan. Rentang maks 731 hari; harian maks 186 hari.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif), tidak sebelum start_date |
| group | day|week|month | opsional (bawaan: otomatis) | Pengelompokan |
curl "https://monitoring.xampah.com/api/recap/waste?start_date=2026-09-01&end_date=2026-09-30&group=day" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{
"success": true, "start_date": "2026-09-01", "end_date": "2026-09-30", "group": "day",
"formula": {"text": "MLO = (Berat Masuk - Berat Keluar) - Bahan Pirolisis - Bahan Insinerator - Gabruk", "deductions": [...]},
"totals": {"transactions": 486, "completed": 484, "pending": 2, "weight_in": 4872100, "weight_out": 1707600, "net": 3164500,
"deductions": {"bahan_pirolisis": 366559, "bahan_incenerator": 273496, "gabruk": 166327},
"mlo": 2358118, "mlo_scale": 860471, "sorted_total": 1737106.9, "sorted_entries": 217},
"composition": [{"key": "mlo", "label": "MLO (Organik)", "kg": 2358118, "share": 74.5}, ...],
"periods": [{"key": "2026-09-01", "label": "Sel, 1 Sep 2026", "start": "2026-09-01", "end": "2026-09-01", "net": 102200, "mlo": 73119, ...}],
"sorted_by_type": [{"key": "mlo", "label": "MLO (Organik)", "kg": 860471, "share": 49.5}, ...],
"customers": [{"customer_id": 1, "name": "Pasar Kemiri Muka", "transactions": 80, "net": 520000}]
}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif), tidak sebelum start_date |
| status | all|completed|pending | opsional (bawaan: all) | Filter status |
| search | string | opsional | No. order, pelanggan, sopir atau no. polisi |
| page | integer | opsional (bawaan: 1) | Halaman |
| per_page | integer | opsional (bawaan: 25) | Baris per halaman (maks 100) |
curl "https://monitoring.xampah.com/api/recap/waste/transactions?start_date=2026-09-01&end_date=2026-09-30&status=completed&search=Pasar" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | wajib | Tanggal awal (inklusif) |
| end_date | date (Y-m-d) | wajib | Tanggal akhir (inklusif), tidak sebelum start_date |
| search | string | opsional | No. order atau nama petugas |
| page | integer | opsional (bawaan: 1) | Halaman |
| per_page | integer | opsional (bawaan: 25) | Baris per halaman (maks 100) |
curl "https://monitoring.xampah.com/api/recap/waste/sorted?start_date=2026-09-30&end_date=2026-09-30" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| uid | string | wajib | UID kartu, mis. B29BCC4D |
curl "https://monitoring.xampah.com/api/get-member?uid=B29BCC4D" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success": true, "data": {"id": 7, "uid": "B29BCC4D", "name": "Momoh", "role_id": 1}}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| search | string | opsional | Cari nama/UID |
| page | integer | opsional | Halaman |
| per_page | integer | opsional | Baris per halaman |
curl "https://monitoring.xampah.com/api/scavenger-cards" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID kartu |
curl "https://monitoring.xampah.com/api/scavenger-cards/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| search | string | opsional | Cari |
| page | integer | opsional | Halaman |
| per_page | integer | opsional | Baris per halaman |
curl "https://monitoring.xampah.com/api/card-members" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| id | integer (path) | wajib | ID kartu |
curl "https://monitoring.xampah.com/api/card-members/{id}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/getMember" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
Tap ulang dalam 1 menit ditolak (429).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| uid | string | wajib | UID kartu |
| operator_name | string | wajib | Nama operator |
| timestamp | datetime | wajib | Waktu tap |
curl -X POST "https://monitoring.xampah.com/api/attendance" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"uid": "B29BCC4D", "operator_name": "Momoh", "timestamp": "2026-10-01 07:58:00"}'
{"uid": "B29BCC4D", "operator_name": "Momoh", "timestamp": "2026-10-01 07:58:00"}
{"success": true, "data": {"action": "time_in", ...}}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date | opsional | Dari |
| end_date | date | opsional | Sampai |
| uid | string | opsional | Filter UID |
| page | integer | opsional | Halaman |
| per_page | integer | opsional | Baris per halaman |
curl "https://monitoring.xampah.com/api/attendance/list" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/attendance/today" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/attendance/present" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date | opsional | Dari |
| end_date | date | opsional | Sampai |
curl "https://monitoring.xampah.com/api/attendance/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| operator | string | wajib | Nama operator |
| start_date | date | opsional | Dari |
| end_date | date | opsional | Sampai |
| limit | integer | opsional | Maks baris |
curl "https://monitoring.xampah.com/api/attendance/history?operator=Momoh" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| uid | string (path) | wajib | UID kartu |
| limit | integer | opsional | Maks baris |
curl "https://monitoring.xampah.com/api/attendance/user/{uid}" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Endpoint API Jatisari
Monitoring produksi biogas dan pencatatan timbangan untuk lokasi Jatisari
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| ph | float | wajib | pH cairan digester |
| temp_liquid | float | wajib | Suhu cairan (°C) |
| temp_ambien | float | wajib | Suhu lingkungan (°C) |
| weight | float | wajib | Berat umpan (kg) |
| gas_prod | float | wajib | Produksi gas (L/jam) |
| temp_gas_prod | float | wajib | Suhu gas produksi (°C) |
| pressure_gas_prod | float | wajib | Tekanan gas produksi (bar) |
| gas_used | float | wajib | Gas terpakai (L/jam) |
| temp_gas_used | float | wajib | Suhu gas terpakai (°C) |
| pressure_gas_used | float | wajib | Tekanan gas terpakai (bar) |
| balloon_level_1 | float | opsional | Level balon 1 (%) |
| balloon_level_2 | float | opsional | Level balon 2 (%) |
| storage | float | opsional | Volume penyimpanan (m³) |
curl -X POST "https://monitoring.xampah.com/api/biogas/jatisari/push" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/biogas/jatisari/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| hours | integer | opsional (bawaan: 24) | Rentang ke belakang dalam jam |
curl "https://monitoring.xampah.com/api/biogas/jatisari/history" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| days | integer | opsional (bawaan: 7) | Jumlah hari yang dirangkum |
curl "https://monitoring.xampah.com/api/biogas/jatisari/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| weight | float | wajib | Berat dalam kg (min: 0.01) |
curl -X POST "https://monitoring.xampah.com/api/weight/push" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/weight/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| hours | integer | opsional (bawaan: 24) | Rentang ke belakang dalam jam |
curl "https://monitoring.xampah.com/api/weight/history" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| days | integer | opsional (bawaan: 7) | Jumlah hari yang dirangkum |
curl "https://monitoring.xampah.com/api/weight/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| weight | number | wajib | Berat (kg), minimal 0.01 |
curl -X POST "https://monitoring.xampah.com/api/weight/jatisari/push" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"weight": 152.4}'
{"weight": 152.4}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/weight/jatisari/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| hours | integer | opsional (bawaan: 24) | Rentang ke belakang (jam) |
| limit | integer | opsional | Maks baris |
curl "https://monitoring.xampah.com/api/weight/jatisari/history?hours=48" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| days | integer | opsional (bawaan: 7) | Jumlah hari |
curl "https://monitoring.xampah.com/api/weight/jatisari/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Endpoint API Indramayu
Monitoring produksi dan konsumsi biogas untuk lokasi Indramayu
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| gas_prod | float | wajib | Laju aliran produksi gas (L/jam) |
| temp_gas_prod | float | wajib | Suhu di titik produksi (°C) |
| press_gas_prod | float | wajib | Tekanan di titik produksi (bar) |
| gas_cons | float | wajib | Laju aliran konsumsi gas (L/jam) |
| temp_gas_cons | float | wajib | Suhu di titik konsumsi (°C) |
| press_gas_cons | float | wajib | Tekanan di titik konsumsi (bar) |
curl -X POST "https://monitoring.xampah.com/api/biogas/indramayu/push" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
curl "https://monitoring.xampah.com/api/biogas/indramayu/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| hours | integer | opsional (bawaan: 24) | Rentang ke belakang dalam jam |
| limit | integer | opsional (bawaan: 100) | Maks baris yang dikembalikan (maks 500) |
curl "https://monitoring.xampah.com/api/biogas/indramayu/history" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| days | integer | opsional (bawaan: 7) | Jumlah hari yang dirangkum |
curl "https://monitoring.xampah.com/api/biogas/indramayu/stats" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| start_date | date (Y-m-d) | opsional | Tanggal awal |
| end_date | date (Y-m-d) | opsional | Tanggal akhir, tidak sebelum start_date |
| per_page | integer | opsional (bawaan: 15) | Baris per halaman (maks 200) |
| page | integer | opsional (bawaan: 1) | Halaman |
curl "https://monitoring.xampah.com/api/biogas/indramayu/paginated?start_date=2026-09-01&end_date=2026-09-30&per_page=50" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| gas_prod | number | wajib | Gas produksi |
| temp_gas_prod | number | wajib | Suhu gas produksi (°C) |
| press_gas_prod | number | wajib | Tekanan gas produksi |
| gas_cons | number | wajib | Gas terpakai |
| temp_gas_cons | number | wajib | Suhu gas terpakai (°C) |
| press_gas_cons | number | wajib | Tekanan gas terpakai |
| location | string | opsional | Harus "indramayu" bila dikirim |
curl -X POST "https://monitoring.xampah.com/api/biogas/indramayu/push-with-location" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"gas_prod":120.5,"temp_gas_prod":45.2,"press_gas_prod":2.5,"gas_cons":85.3,"temp_gas_cons":42.1,"press_gas_cons":2.1,"location":"indramayu"}'
{"gas_prod":120.5,"temp_gas_prod":45.2,"press_gas_prod":2.5,"gas_cons":85.3,"temp_gas_cons":42.1,"press_gas_cons":2.1,"location":"indramayu"}
Endpoint API JakBar
Telemetri reaktor (hingga 20 reaktor + 16 relay per gateway) dan manajemen fleet (rollout firmware OTA, log debug MQTT, perintah jarak jauh) untuk gateway ESP32 JakBar
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
curl -X POST "https://monitoring.xampah.com/api/reactor/jakbar/ingest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"type":"telemetry","device_id":"gateway-01","fw":"1.3.0", "uptime_ms":3600000,"slot_ts":1788159600, "reactors":[{"id":1,"gas":123.45,"ph":7.21,"lt":35.40,"at":29.10, "dist_mm":620,"balloon":82,"bal_st":1, "health":"ONLINE","gas_health":"NOPOLL","node_health":"ONLINE", "age_s":2,"faults":0}], "relays":[{"n":1,"name":"Pompa Feed 1","on":true,"left_s":1740}]}'
{"type":"telemetry","device_id":"gateway-01","fw":"1.3.0",
"uptime_ms":3600000,"slot_ts":1788159600,
"reactors":[{"id":1,"gas":123.45,"ph":7.21,"lt":35.40,"at":29.10,
"dist_mm":620,"balloon":82,"bal_st":1,
"health":"ONLINE","gas_health":"NOPOLL","node_health":"ONLINE",
"age_s":2,"faults":0}],
"relays":[{"n":1,"name":"Pompa Feed 1","on":true,"left_s":1740}]}
{"success":true,"batch_id":42}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
curl -X POST "https://monitoring.xampah.com/api/reactor/jakbar/ingest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"type":"event","uptime_ms":812345,"id":7, "event":"NODE_OFFLINE","detail":0}'
{"type":"event","uptime_ms":812345,"id":7,
"event":"NODE_OFFLINE","detail":0}
{"success":true}
Akses: Header X-API-KEY (scope * — key read-only ditolak 403).
curl -X POST "https://monitoring.xampah.com/api/reactor/jakbar/ingest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"type":"balloon","device_id":"gateway-01","fw":"1.4.0", "uptime_ms":3660000,"slot_ts":1788159660, "balloons":[{"id":16,"dist_mm":862,"balloon":58,"bal_st":0,"sol_temp":34.50, "health":"ONLINE","age_s":2,"faults":0}]}'
{"type":"balloon","device_id":"gateway-01","fw":"1.4.0",
"uptime_ms":3660000,"slot_ts":1788159660,
"balloons":[{"id":16,"dist_mm":862,"balloon":58,"bal_st":0,"sol_temp":34.50,
"health":"ONLINE","age_s":2,"faults":0}]}
{"success":true,"count":1}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| device_id | string | opsional (bawaan: gateway-01) | Gateway yang dibaca |
curl "https://monitoring.xampah.com/api/reactor/jakbar/balloons/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| reactor_id | integer | wajib | Alamat node balon (16 di JakBar) |
| minutes | integer | opsional (bawaan: 60) | Rentang ke belakang (maks 10080 = 7 hari) |
| limit | integer | opsional (bawaan: 500) | Maks baris (maks 2000) |
curl "https://monitoring.xampah.com/api/reactor/jakbar/balloons/history?reactor_id=1" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| device_id | string | opsional (bawaan: gateway-01) | Gateway yang dibaca |
curl "https://monitoring.xampah.com/api/reactor/jakbar/latest" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| reactor_id | integer | wajib | Nomor reaktor (1-20) |
| start_date | date | opsional | Y-m-d, butuh end_date juga |
| end_date | date | opsional | Y-m-d, butuh start_date juga |
| limit | integer | opsional (bawaan: 200) | Maks baris (maks 500) |
curl "https://monitoring.xampah.com/api/reactor/jakbar/history?reactor_id=1" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| event_type | string | opsional | Saring satu jenis event |
| hours | integer | opsional (bawaan: 24) | Rentang ke belakang (maks 720) |
| limit | integer | opsional (bawaan: 100) | Maks baris (maks 500) |
curl "https://monitoring.xampah.com/api/reactor/jakbar/events" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| device_id | string | opsional (bawaan: gateway-01) | Gateway yang dibaca |
curl "https://monitoring.xampah.com/api/reactor/jakbar/gas-meters" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success":true,"count":3,"data":[{"addr":3,"role":"CONSUMPTION","reactor":null,"label":null,"health":"ONLINE","valve_code":2,"valve":"open","slot_ts":1793750400,"age_s":3,"volume_l":1200,"volume_m3":1.2,"volume_slot_ts":1793750400}]}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| addr | integer | opsional | Alamat Modbus meter (1-247); ini atau role |
| role | REACTOR|PRODUCTION_TOTAL|CONSUMPTION | opsional | Pilih meter berdasarkan role bila hanya satu meter yang memilikinya |
| interval | hour|day|month | opsional (bawaan: day) | Ukuran bucket (rentang maks 31 / 366 / 3660 hari) |
| start_date | date | opsional | Y-m-d, butuh end_date juga (default 24 jam / 30 hari / 12 bulan terakhir) |
| end_date | date | opsional | Y-m-d, inklusif |
| device_id | string | opsional (bawaan: gateway-01) | Gateway yang dibaca |
curl "https://monitoring.xampah.com/api/reactor/jakbar/gas-meters/usage" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success":true,"meter":{"addr":3,"role":"CONSUMPTION","reactor":null,"label":null},"interval":"day","timezone":"Asia/Jakarta","start":"2026-11-03 00:00:00","end":"2026-11-05 00:00:00","total_usage_l":1330,"total_usage_m3":1.33,"counter_resets":0,"count":2,"data":[{"period":"2026-11-03","start_ts":1793638800,"usage_l":1000,"readings":3,"usage_m3":1}]}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| addr | integer | opsional | Alamat Modbus meter (1-247); ini atau role |
| role | REACTOR|PRODUCTION_TOTAL|CONSUMPTION | opsional | Pilih meter berdasarkan role bila hanya satu meter yang memilikinya |
| minutes | integer | opsional (bawaan: 60) | Rentang ke belakang (maks 1440) |
| device_id | string | opsional (bawaan: gateway-01) | Gateway yang dibaca |
curl "https://monitoring.xampah.com/api/reactor/jakbar/gas-meters/minutes" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success":true,"meter":{"addr":3,"role":"CONSUMPTION","reactor":null,"label":null},"minutes":60,"total_used_l":84,"count":60,"data":[{"slot_ts":1793858400,"volume_l":32890,"used_l":2,"flow_l_min":2,"valve_code":2,"health":"ONLINE"}]}
Akses: Header X-API-KEY dengan scope read atau *, atau Authorization: Bearer token dari POST /login.
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| addr | integer | opsional | Alamat Modbus meter (1-247); ini atau role |
| role | REACTOR|PRODUCTION_TOTAL|CONSUMPTION | opsional | Pilih meter berdasarkan role bila hanya satu meter yang memilikinya |
| interval | day|month | opsional (bawaan: day) | Total berjalan per hari atau per bulan |
| device_id | string | opsional (bawaan: gateway-01) | Gateway yang dibaca |
curl "https://monitoring.xampah.com/api/reactor/jakbar/gas-meters/cumulative?role=PRODUCTION_TOTAL&interval=month" \
-H "Accept: application/json" \
-H "X-API-KEY: sk_xxxxxxxx"
{"success":true,"meter":{"addr":2,"role":"PRODUCTION_TOTAL","reactor":null,"label":null},"interval":"month","timezone":"Asia/Jakarta","first_reading_at":"2026-09-30 01:00:00","last_reading_at":"2026-11-09 21:30:00","lifetime_l":98120,"lifetime_m3":98.12,"this_month_l":32218,"this_month_m3":32.218,"today_l":3105,"today_m3":3.105,"counter_resets":0,"count":3,"data":[{"period":"2026-09","usage_l":400,"usage_m3":0.4,"cumulative_l":400,"cumulative_m3":0.4},{"period":"2026-10","usage_l":65502,"usage_m3":65.502,"cumulative_l":65902,"cumulative_m3":65.902},{"period":"2026-11","usage_l":32218,"usage_m3":32.218,"cumulative_l":98120,"cumulative_m3":98.12}]}
# Cek server (publik)
curl https://monitoring.xampah.com/api/ping
# Baca data: X-API-KEY (scope read)
curl -H "X-API-KEY: sk_xxxxxxxx" "https://monitoring.xampah.com/api/biogas-data/latest"
# Rekap sampah September (Depok)
curl -H "X-API-KEY: sk_xxxxxxxx" "https://monitoring.xampah.com/api/recap/waste?start_date=2026-09-01&end_date=2026-09-30"
# Atau dengan login dashboard admin
TOKEN=$(curl -s -X POST https://monitoring.xampah.com/api/login -H "Content-Type: application/json" \
-d '{"username":"admin","password":"..."}' | jq -r .data.token)
curl -H "Authorization: Bearer $TOKEN" https://monitoring.xampah.com/api/getCustomer
# Kirim data dari perangkat: X-API-KEY perangkat
curl -X POST https://monitoring.xampah.com/api/reactor/jakbar/ingest \
-H "Content-Type: application/json" -H "X-API-KEY: sk_xxxxxxxx" \
-d '{"type":"telemetry","device_id":"gateway-01","reactors":[{"id":1,"gas":123.45,"ph":7.21,"lt":35.4,"at":29.1}]}'