Files
meshview/API Documentation.md
2025-08-11 09:20:16 -07:00

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.
  • portnum is an integer representing the packet type.
  • payload is 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...
  ]
}