Skip to content

Nodes API

Endpoints for retrieving node information.

List All Nodes

http
GET /api/ui/nodes

Returns a summary list of all nodes across all sources.

Query Parameters

ParameterTypeDescription
source_idintegerFilter by source ID
active_onlybooleanOnly return recently active nodes
active_hoursintegerHours to consider "active" (default: 24)

Response

json
[
  {
    "node_num": 1234567890,
    "node_id": "!abcd1234",
    "short_name": "TEST",
    "long_name": "Test Node",
    "hardware_model": 43,
    "hardware_name": "Heltec v3",
    "role": "ROUTER",
    "last_heard": "2024-01-15T10:30:00Z",
    "is_online": true,
    "snr": 8.5,
    "rssi": -95,
    "hops_away": 1,
    "latitude": 25.7617,
    "longitude": -80.1918
  }
]

Response Fields

FieldTypeDescription
node_numintegerNumeric node identifier
node_idstringHexadecimal node ID (e.g., !abcd1234)
short_namestring4-character short name
long_namestringFull node name
hardware_modelintegerHardware model code
hardware_namestringHuman-readable hardware name
rolestringNode role (CLIENT, ROUTER, etc.)
last_heardstringISO 8601 timestamp
is_onlinebooleanWhether node is considered online
snrnumberSignal-to-noise ratio (dB)
rssinumberReceived signal strength (dBm)
hops_awayintegerNumber of hops from reporting node
latitudenumberGPS latitude (if available)
longitudenumberGPS longitude (if available)

Get Node by ID

http
GET /api/ui/nodes/{node_id}

Returns detailed information for a specific node.

Path Parameters

ParameterTypeDescription
node_idstringHexadecimal node ID (e.g., !abcd1234)

Response

json
{
  "node_num": 1234567890,
  "node_id": "!abcd1234",
  "short_name": "TEST",
  "long_name": "Test Node",
  "hardware_model": 43,
  "hardware_name": "Heltec v3",
  "role": "ROUTER",
  "last_heard": "2024-01-15T10:30:00Z",
  "is_online": true,
  "snr": 8.5,
  "rssi": -95,
  "hops_away": 1,
  "latitude": 25.7617,
  "longitude": -80.1918,
  "source_records": [
    {
      "source_id": 1,
      "source_name": "Home MeshMonitor",
      "last_heard": "2024-01-15T10:30:00Z"
    },
    {
      "source_id": 2,
      "source_name": "Public MQTT",
      "last_heard": "2024-01-15T09:15:00Z"
    }
  ]
}

Get Node by Number

http
GET /api/ui/nodes/by-node-num/{node_num}

Alternative endpoint to look up a node by its numeric ID.

Path Parameters

ParameterTypeDescription
node_numintegerNumeric node identifier

List Node Roles

http
GET /api/ui/nodes/roles

Returns a list of all node roles present in the database.

Response

json
["CLIENT", "ROUTER", "TRACKER", "CLIENT_MUTE"]

Position History

http
GET /api/ui/position-history

Returns GPS position history for nodes.

Query Parameters

ParameterTypeDescription
node_numintegerFilter by specific node
hoursintegerHours of history (default: 24)
source_idintegerFilter by source

Response

json
[
  {
    "node_num": 1234567890,
    "latitude": 25.7617,
    "longitude": -80.1918,
    "altitude": 10,
    "timestamp": "2024-01-15T10:30:00Z"
  }
]

Hardware Models

The hardware_model field maps to these common values:

CodeName
1TLORA_V2
7TLORA_V1
9RAK4631
25TBEAM
39T_DECK
43HELTEC_V3
44HELTEC_WSL_V3
47STATION_G2
255UNSET

See the MeshManager source code for the complete mapping.