Mesh Network API
Real-time Meshtastic mesh network data from the global MQTT feed. Access node positions, telemetry, battery levels, and network topology.
Live • 241 nodes tracked
Endpoints
GET
/health
Health check endpoint. Returns service status, MQTT connection state, node count, memory usage, and uptime. Returns HTTP 503 if service is degraded.
Response
{
"status": "ok",
"mqttConnected": true,
"nodeCount": 241,
"uptime": 1580,
"memory": {
"heapUsed": "19MB",
"heapTotal": "20MB",
"rss": "64MB"
}
}
GET
/api/nodes
Get all tracked mesh nodes. Returns a map of node IDs to node objects containing position, telemetry, battery level, hardware info, neighbors, and more.
Response
{
"3677891234": {
"nodeNum": 3677891234,
"longName": "Base Station",
"shortName": "BASE",
"latitude": 37.7749,
"longitude": -122.4194,
"batteryLevel": 87,
...
},
...
}
GET
/api/node/:nodeNum
Get a single node by its numeric ID. Returns the full node object or HTTP 404 if not found.
Request
GET /api/node/3677891234
GET
/api/stats
Get detailed statistics about MQTT message processing, decode success rates, and node update counts by type (position, telemetry, nodeinfo, etc).
Response
{
"totalNodes": 241,
"nodesWithPosition": 237,
"onlineNodes": 241,
"decode": { ... },
"updates": { ... }
}
Node Schema
{
"nodeNum": 3677891234, // Unique node ID (from hardware)
"longName": "Base Station", // User-configured name
"shortName": "BASE", // 4-character identifier
"hwModel": "TBEAM", // Hardware model
"role": "ROUTER", // Node role (CLIENT, ROUTER, etc)
"latitude": 37.7749, // GPS latitude
"longitude": -122.4194, // GPS longitude
"altitude": 15, // Altitude in meters
"batteryLevel": 87, // Battery percentage (0-100)
"voltage": 4.1, // Battery voltage
"chUtil": 12.5, // Channel utilization %
"airUtilTx": 2.3, // TX air time %
"temperature": 23.5, // Environment temperature °C
"region": "US", // LoRa region code
"modemPreset": "LongFast", // Modem configuration
"lastHeard": 1735489234, // Unix timestamp of last contact
"seenBy": { ... }, // Gateways that received this node
"neighbors": { ... } // Nearby nodes with SNR values
}