API Reference
Endpoint HTTP dan MQTT INCLUDE, untuk perangkat rakitan sendiri dan aplikasi lain. Kalau perilaku server berbeda dengan yang tertulis di sini, kabari kami lewat WhatsApp.
Konvensi
- Base URL:
https://app.include.co.id/api/v1 - Autentikasi: hampir semua route memerlukan
Authorization: Bearer <access_token>(kecuali/auth/*,/health,/public/*, dan/device/*). - Response sukses:
{ data, meta }-metaberisi info paginasi (page/limit/total) bila relevan. - Response error:
{ error, message }. - Cakupan: data milik Organisasi yang aktif di token akses Anda.
Auth
| Method | Path | Keterangan |
|---|---|---|
| POST | /auth/register | Minta kode verifikasi 6 digit ke email |
| POST | /auth/verify-email-code | Kirim kode; akun dibuat dan langsung masuk |
| POST | /me/workspace | Siapkan Organisasi akun ini (dibuat bila belum ada) |
| POST | /auth/login | Login, mengembalikan access + refresh token |
| POST | /auth/refresh | Perbarui access token |
| POST | /auth/logout | Invalidasi refresh token |
| POST | /auth/forgot-password | Kirim email reset password |
| POST | /auth/reset-password | Reset password dengan token |
| GET | /auth/google | Login dengan Google (redirect OAuth) |
| POST | /auth/apple | Login dengan Apple dari aplikasi iPhone |
Devices
| Method | Path | Keterangan |
|---|---|---|
| POST | /devices/claim | Claim device via Device ID/token |
| POST | /devices/custom | Daftarkan perangkat kustom/BYOD sendiri |
| GET | /devices | Daftar perangkat |
| GET | /devices/:id | Detail device |
| PATCH | /devices/:id | Ubah perangkat (nama, pengaturan) |
| DELETE | /devices/:id | Hapus device |
| POST | /devices/:id/command | Kirim perintah aktuator (publish MQTT) |
Telemetry
| Method | Path | Keterangan |
|---|---|---|
| GET | /telemetry/:deviceId | Nilai terakhir |
| GET | /telemetry/:deviceId/history | Historis (startTime, endTime, limit) |
| POST | /telemetry/:deviceId/import | Impor data historis (Pro+; tidak memicu alarm untuk data lampau) |
Realtime: Server-Sent Events di /telemetry/stream (bukan WebSocket).
Alarms
| Method | Path | Keterangan |
|---|---|---|
| GET | /alarms | Daftar alarm (filter status/severity) |
| PATCH | /alarms/:id/acknowledge | Acknowledge |
| PATCH | /alarms/:id/resolve | Resolve |
| POST | /devices/:id/thresholds | Atur ambang batas (optimal/warning/critical) per parameter |
Dashboards
| Method | Path | Keterangan |
|---|---|---|
| GET | /dashboards/:id | Detail (termasuk layout widget) |
| PATCH | /dashboards/:id | Simpan layout/widget |
Rule Chains
Graf otomasi per-Organisasi yang berjalan tiap telemetry masuk - node deklaratif (filter/switch/transform) plus node scripting JavaScript sandboxed untuk logika custom.
| Method | Path | Keterangan |
|---|---|---|
| GET | /rule-chains | Daftar chain |
| POST | /rule-chains | Buat chain |
| PUT | /rule-chains/:id | Ubah graph |
| POST | /rule-chains/test | Dry-run graph atas contoh nilai |
Device API (khusus perangkat, pakai device token)
Dipakai firmware IncludeBox maupun perangkat kustom/BYOD - autentikasi memakai device token (bukan JWT user), bisa lewat header atau URL.
| Method | Path | Keterangan |
|---|---|---|
| POST | /device/telemetry | Kirim telemetry (token di header X-Device-Token) |
| POST | /{token}/telemetry | Kirim telemetry, token di URL (gaya ThingsBoard - jalan langsung dari curl/PowerShell tanpa header custom) |
| GET | /{token}/mqtt-config | Ambil konfigurasi bootstrap MQTT (host, port, topic) |
| GET | /device/ota | Polling perintah OTA |
MQTT
Broker EMQX. Konvensi topik:
includeapps/{organization_id}/{solution_slug}/{device_id}/{telemetry|command|status}- Backend subscribe
includeapps/+/+/+/telemetry, memvalidasi payload, menyimpan ke TimescaleDB, mengevaluasi alarm/rule chain, lalu mengirimnya ke dashboard yang sedang terbuka. - Autentikasi:
deviceIdsebagai MQTT username, device token sebagai password. commanddipakai untuk kontrol aktuator & perintah OTA.
Contoh payload telemetry
Energy meter 1 fasa:
{
"values": {
"voltage": 220.5,
"current": 2.1,
"power": 462.3,
"energy": 145.2,
"frequency": 50.0,
"power_factor": 0.95
}
}Energy meter 3 fasa:
{
"values": {
"voltage_r": 221.0,
"voltage_s": 219.8,
"voltage_t": 220.5,
"current_r": 5.2,
"current_s": 5.0,
"current_t": 5.1,
"total_power": 3350.0,
"energy": 890.4,
"frequency": 50.0,
"power_factor": 0.92
}
}Kunci apa pun diterima: nilainya angka, teks, atau boolean, paling banyak 100 per kiriman. Tampilan bawaan sebuah jenis perangkat (device_type_key) membaca kunci yang tercantum di jenis itu. Rincian HTTP ada di Mengirim data lewat HTTP.

