Fleet
Get a fleet-wide view of machine status, roll up KPIs by site, and manage edge-agent heartbeats. Unless noted, endpoints are authenticated with a Bearer JWT (see Authentication); the agent heartbeat endpoints use an API key.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/fleet/status | Status of every active machine in your fleet |
GET | /api/v1/fleet/sites | List sites with rolled-up KPIs |
GET | /api/v1/fleet/sites/comparison | Cross-site KPI comparison |
GET | /api/v1/fleet/sites/{site_id}/kpis | Detailed KPI rollup for one site |
GET | /api/v1/agent/heartbeat | Edge-agent heartbeat (API key) |
POST | /api/v1/agent/heartbeat | Edge-agent heartbeat with telemetry (API key) |
GET | /api/v1/agent/fleet | Status of your reporting edge agents (Admin) |
Endpoints marked Admin require an account administrator role.
Fleet status
GET /api/v1/fleet/status
Returns each active machine with its status, count of unacknowledged alerts, and most recent reading time.
curl https://api.haltless.io/api/v1/fleet/status \
-H "Authorization: Bearer YOUR_TOKEN"
{
"total_machines": 45,
"machines": [
{
"machine_id": "...",
"machine_name": "CNC Mill #1",
"machine_identifier": "CNC-001",
"status": "healthy",
"active_alert_count": 0,
"last_reading_at": "2026-08-05T10:30:00Z"
}
]
}
Sites
A site groups machines so KPIs can be rolled up per location.
List sites
GET /api/v1/fleet/sites
Returns each site with its aggregated KPIs.
Cross-site comparison
GET /api/v1/fleet/sites/comparison
Returns a comparison table of key KPIs across all sites in one response.
Site detail
GET /api/v1/fleet/sites/{site_id}/kpis
Returns the detailed KPI rollup for a single site. Responds 404 if the site does not exist.
Edge-agent heartbeat
The edge agent calls these endpoints with an API key (see API Keys and the Edge Agent overview).
Heartbeat
GET /api/v1/agent/heartbeat
Returns 200 while the account's subscription is active, or 402 when payment is required. The success body tells the agent when to check in again and whether an update is available.
{
"status": "active",
"next_check_seconds": 3600,
"latest_agent_version": "1.4.0",
"min_supported_version": "1.0.0",
"update_available": false,
"unsupported": false
}
Heartbeat with telemetry
POST /api/v1/agent/heartbeat
Posts a telemetry snapshot with the heartbeat. Same authentication and 200/402 behavior as the GET.
{
"agent_id": "edge-plant-1-abc123",
"agent_version": "1.4.0",
"uptime_seconds": 86400,
"buffer_count": 0,
"buffer_age_hours": 0.0,
"collectors": { "modbus-line-1": "ok", "opcua-line-2": "ok" },
"hostname": "edge-plant-1"
}
Agent fleet view
GET /api/v1/agent/fleet
Lists your currently reporting edge agents. Requires an account administrator role.
{
"agents": [
{
"agent_id": "edge-plant-1-abc123",
"agent_version": "1.4.0",
"hostname": "edge-plant-1",
"uptime_seconds": 86400,
"buffer_count": 0,
"buffer_age_hours": 0.0,
"collectors": { "modbus-line-1": "ok" },
"last_seen": "2026-08-05T10:30:00Z",
"online": true,
"update_available": false,
"unsupported": false
}
],
"total": 1
}