forked from iarv/meshview
3.9 KiB
3.9 KiB
API Documentation
1. Chat API
GET /api/chat
Returns the most recent chat messages.
Query Parameters
limit(optional, int): Maximum number of messages to return. Default:100.
Response Example
{
"packets": [
{
"id": 123,
"import_time": "2025-07-22T12:45:00",
"from_node_id": 987654,
"from_node": "Alice",
"channel": "main",
"payload": "Hello, world!"
}
]
}
GET /api/chat/updates
Returns chat messages imported after a given timestamp.
Query Parameters
last_time(optional, ISO timestamp): Only messages imported after this time are returned.
Response Example
{
"packets": [
{
"id": 124,
"import_time": "2025-07-22T12:50:00",
"from_node_id": 987654,
"from_node": "Alice",
"channel": "main",
"payload": "New message!"
}
],
"latest_import_time": "2025-07-22T12:50:00"
}
2. Nodes API
GET /api/nodes
Returns a list of all nodes, with optional filtering by last seen.
Query Parameters
hours(optional, int): Return nodes seen in the last N hours.days(optional, int): Return nodes seen in the last N days.last_seen_after(optional, ISO timestamp): Return nodes seen after this time.
Response Example
{
"nodes": [
{
"node_id": 1234,
"long_name": "Alice",
"short_name": "A",
"channel": "main",
"last_seen": "2025-07-22T12:40:00",
"hardware": "T-Beam",
"firmware": "1.2.3",
"role": "client",
"last_lat": 37.7749,
"last_long": -122.4194
}
]
}
3. Packets API
GET /api/packets
Returns a list of packets with optional filters.
Query Parameters
limit(optional, int): Maximum number of packets to return. Default:200.since(optional, ISO timestamp): Only packets imported after this timestamp are returned.
Response Example
{
"packets": [
{
"id": 123,
"from_node_id": 5678,
"to_node_id": 91011,
"portnum": 1,
"import_time": "2025-07-22T12:45:00",
"payload": "Hello, Bob!"
}
]
}
Notes
- All timestamps (
import_time,last_seen) are returned in ISO 8601 format. portnumis an integer representing the packet type.payloadis always a UTF-8 decoded string.
4 Statistics API: GET /api/stats
Retrieve packet statistics aggregated by time periods, with optional filtering.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
period_type |
string | No | hour |
Time granularity of the stats. Allowed values: hour, day. |
length |
integer | No | 24 | Number of periods to include (hours or days). |
channel |
string | No | — | Filter results by channel name (case-insensitive). |
portnum |
integer | No | — | Filter results by port number. |
to_node |
integer | No | — | Filter results to packets sent to this node ID. |
from_node |
integer | No | — | Filter results to packets sent from this node ID. |
Response
{
"period_type": "hour",
"length": 24,
"channel": "LongFast",
"portnum": 1,
"to_node": 12345678,
"from_node": 87654321,
"data": [
{
"period": "2025-08-08 14:00",
"count": 10
},
{
"period": "2025-08-08 15:00",
"count": 7
}
// more entries...
]
}