Devices
Older integrations that used the deprecated devices path prefix receive a 308 redirect to the equivalent sources endpoint; the WebSocket stream paths have no such alias.
List devices
/v1/sourcesReturns all devices the API key has access to, with online status and last-seen timestamp.
online means the device holds a live WebSocket to Plexus. The answer can be
up to a minute old. A device
that sends only over HTTP is always online: false, even while its data is
arriving. That covers every device on the Free plan and anything posting to
/ingest directly, such as an ESP32. For those, use last_seen_ms.
Query params
| Param | Values | Description |
|---|---|---|
status | online | offline | Filter by whether the device holds a live WebSocket |
Example
curl "https://api.plexus.company/v1/sources?status=online" \
-H "x-api-key: YOUR_API_KEY"Response
{
"devices": [
{
"source_id": "robot-01",
"online": true,
"last_seen_ms": 1746969600000
},
{
"source_id": "robot-02",
"online": false,
"last_seen_ms": 1746883200000
}
]
}last_seen_ms is a Unix timestamp in milliseconds. null if the device has never been seen.
Get device
/v1/sources/{source_id}Returns a single device. Returns 404 only when the device is both not
currently connected and has no stored history — a connected device that has
never sent data returns 200 with last_seen_ms: null.
Example
curl https://api.plexus.company/v1/sources/robot-01 \
-H "x-api-key: YOUR_API_KEY"Response
{
"source_id": "robot-01",
"online": true,
"last_seen_ms": 1746969600000
}