Device Setup & Configuration
This guide explains how to connect LoRaWAN network servers and generic HTTP devices to uplotr.
Authentication Mode
Authentication for ingest endpoints is managed in System Settings -> API Keys -> Webhook Auth Mode.
OFF: no authentication requiredOPTIONAL: missing key is allowed; invalid provided key is rejectedREQUIRED: all requests must include a valid key
If mode is OPTIONAL or REQUIRED, include one of:
Authorization: Bearer <API_KEY>x-uplotr-key: <API_KEY>x-heyiot-token: <API_KEY>(backward compatibility)
1. LoRaWAN Devices (Helium / TTN / ChirpStack)
uplotr provides a unified webhook endpoint:
- URL:
https://<YOUR-DOMAIN>/api/lorawan/webhook - Method:
POST - Content-Type:
application/json
Helium Console
- Go to Integrations -> Add New Integration -> HTTP.
- Set Endpoint URL:
https://.../api/lorawan/webhook. - Set Method:
POST. - Add auth header if mode is
OPTIONALorREQUIRED. - Apply integration to devices/labels.
TTN v3
- Go to Applications -> Integrations -> Webhooks -> Add -> Custom Webhook.
- Set Base URL:
https://.../api/lorawan/webhook. - Enable Uplink message.
- Use JSON format.
- Add auth header if mode is
OPTIONALorREQUIRED.
ChirpStack
- Go to Applications -> Integrations -> HTTP.
- Set Event endpoint URL(s):
https://.../api/lorawan/webhook. - Set marshaler to JSON.
- Add auth header if mode is
OPTIONALorREQUIRED.
Sample LoRaWAN Payload
{
"dr": 3,
"fCnt": 901,
"time": "2026-02-12T02:49:16.295+00:00",
"fPort": 5,
"object": {
"Battery": 68,
"Latitude": 37.53808,
"Longitude": -122.281512,
"Location": {
"lat": 37.53808,
"lon": -122.281512
},
"Air_Temperature": 19.6,
"Light": 0
},
"rxInfo": [
{
"snr": 12.5,
"rssi": -98,
"metadata": {
"gateway_name": "wonderful-midnight-gorilla"
}
}
],
"devAddr": "480009a3",
"deviceInfo": {
"devEui": "2cf7f1c0538005e1",
"deviceName": "T1000A_01",
"deviceProfileName": "T1000A"
}
}
2. Generic Devices (WiFi / 4G / NB-IoT)
For non-LoRaWAN devices sending HTTP directly, use:
- URL:
https://<YOUR-DOMAIN>/api/v1/ingest - Method:
POST - Content-Type:
application/json
Example:
{
"device_id": "my-tracker-01",
"lat": 34.0522,
"lon": -118.2437,
"battery": 95,
"timestamp": 1707638400000,
"type": "4g"
}
Mapping Notes
uplotr expects coordinates and telemetry in decoded payload fields.
Common coordinate field names:
latitudeorlatlongitudeorlon
Common battery field names:
batteryorbat
For custom payloads, configure a mapper in device settings and reprocess historical events if needed.
Quick Test
curl -X POST http://localhost:3000/api/lorawan/webhook \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <api-key>" \
-d '{
"deviceInfo": { "devEui": "A840410000000123" },
"time": "2026-02-12T10:00:00Z",
"object": {
"latitude": 37.7749,
"longitude": -122.4194,
"battery": 85
}
}'