Dokumentasi API Iotinesia (v1.0)

Selamat datang di Dokumentasi API Iotinesia.id! API kami dirancang dengan arsitektur RESTful untuk memudahkan Anda mengintegrasikan perangkat keras (mikrokontroler, sensor) maupun aplikasi pihak ketiga ke dalam ekosistem Iotinesia.
Semua respons dikembalikan dalam format standar JSON.

🚀 Informasi Dasar

  • Base URL: [https://api.iotinesia.id/v1](https://api.iotinesia.id/v1)
  • Format Data: application/json
  • Protokol: HTTPS diwajibkan untuk semua permintaan API demi keamanan data.

🔐 Autentikasi

Setiap permintaan ke API Iotinesia memerlukan API Key. Anda bisa mendapatkan API Key ini melalui dasbor akun Iotinesia Anda di menu Pengaturan > Kunci API.
Sertakan API Key pada header setiap permintaan (request):

HTTP

x-api-key: YOUR_API_KEY_HERE

📡 Endpoint Utama

1. Mengirim Data Sensor (Publish Telemetry)

Digunakan oleh perangkat IoT (seperti ESP32, Arduino, Raspberry Pi) untuk mengirimkan data pembacaan sensor ke server.
  • Method: POST
  • Endpoint: /devices/{device_id}/telemetry
  • Header:
    • Content-Type: application/json
    • x-api-key: YOUR_API_KEY_HERE
Contoh Request (JSON):

JSON

{
  "suhu": 28.5,
  "kelembapan": 65,
  "status_baterai": 90,
  "timestamp": 1723532810
}
Contoh Response (200 OK):

JSON

{
  "status": "success",
  "message": "Data telemetri berhasil disimpan",
  "data_id": "trx_987654321"
}

2. Membaca Status Perangkat (Get Device Status)

Digunakan oleh aplikasi web atau mobile untuk mengecek apakah perangkat sedang aktif (online) dan melihat data terakhir yang dikirim.
  • Method: GET
  • Endpoint: /devices/{device_id}/status
  • Header: x-api-key: YOUR_API_KEY_HERE
Contoh Response (200 OK):

JSON

{
  "status": "success",
  "device": {
    "id": "DEV-001",
    "name": "Sensor Rumah Kaca",
    "is_online": true,
    "last_seen": "2026-08-13T14:00:00Z",
    "last_data": {
      "suhu": 28.5,
      "kelembapan": 65
    }
  }
}

3. Mengirim Perintah ke Perangkat (Send Command)

Digunakan untuk mengontrol aktuator jarak jauh (misalnya: menyalakan lampu, menghidupkan pompa air).
  • Method: POST
  • Endpoint: /devices/{device_id}/command
Contoh Request (JSON):

JSON

{
  "komponen": "relay_1",
  "perintah": "ON",
  "durasi": 3600
}

💻 Contoh Penggunaan (Code Snippets)

Menggunakan cURL:

Bash

curl -X POST https://api.iotinesia.id/v1/devices/DEV-001/telemetry \
  -H "Content-Type: application/json" \
  -H "x-api-key: a1b2c3d4e5f6g7h8i9j0" \
  -d '{"suhu": 29.1, "kelembapan": 70}'
Menggunakan Python (Requests):

Python

import requests
import json

url = "https://api.iotinesia.id/v1/devices/DEV-001/telemetry"
headers = {
    "Content-Type": "application/json",
    "x-api-key": "a1b2c3d4e5f6g7h8i9j0"
}
payload = {
    "suhu": 29.1,
    "kelembapan": 70
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())

🛑 Kode Status (HTTP Response Codes)

Kami menggunakan kode status HTTP standar untuk menunjukkan keberhasilan atau kegagalan permintaan API Anda:
  • 200 OK – Permintaan berhasil dieksekusi.
  • 400 Bad Request – Format JSON tidak valid atau ada parameter yang terlewat.
  • 401 Unauthorized – API Key salah, tidak valid, atau tidak disertakan.
  • 404 Not Founddevice_id tidak ditemukan di dalam sistem.
  • 429 Too Many Requests – Anda telah melampaui batas Rate Limit (Maksimal 60 request/menit).
  • 500 Internal Server Error – Terjadi gangguan pada server Iotinesia.

📞 Butuh Bantuan Integrasi?

Jika Anda menemukan kendala saat mengimplementasikan API ini pada board mikrokontroler (Arduino IDE, PlatformIO) atau aplikasi Anda, tim engineer kami siap membantu. Silakan buat tiket bantuan di [Portal Support Iotinesia] atau diskusikan di [Forum Komunitas IoT] kami.