> ## Documentation Index
> Fetch the complete documentation index at: https://dynamo-csms.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fleet Dashboard API — Network Health and Uptime

> Monitor your entire charging network. Access uptime, utilisation, error history, diagnostics, and maintenance records for every charger.

The fleet dashboard API gives you a live and historical view of every charger across your network. Use it to build operational dashboards, set up alerting, investigate faults, and manage planned maintenance.

## Fleet summary

`GET /api/v1/cpo/fleet/summary`

Returns aggregate totals across your entire fleet — charger counts, online status, and active session numbers.

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/fleet/summary" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "total_chargers": 124,
  "online": 119,
  "offline": 5,
  "charging": 43,
  "available": 76,
  "faulted": 3,
  "active_sessions": 43,
  "total_energy_today_kwh": 1842.6
}
```

<ResponseField name="total_chargers" type="number">
  Total chargers registered in your fleet.
</ResponseField>

<ResponseField name="online" type="number">
  Chargers with an active OCPP connection.
</ResponseField>

<ResponseField name="offline" type="number">
  Chargers that have lost connectivity.
</ResponseField>

<ResponseField name="charging" type="number">
  Chargers with an active session.
</ResponseField>

<ResponseField name="available" type="number">
  Chargers ready to accept a new session.
</ResponseField>

<ResponseField name="faulted" type="number">
  Chargers reporting a fault or error status.
</ResponseField>

<ResponseField name="active_sessions" type="number">
  Total number of sessions currently in progress.
</ResponseField>

<ResponseField name="total_energy_today_kwh" type="number">
  Energy delivered across the fleet since midnight UTC today.
</ResponseField>

***

## Fleet uptime

`GET /api/v1/cpo/fleet/uptime`

Returns uptime percentages per charger for a given time period.

<ParamField query="from" type="string" required>
  ISO 8601 start date/time.
</ParamField>

<ParamField query="to" type="string" required>
  ISO 8601 end date/time.
</ParamField>

<ParamField query="charge_point_id" type="string">
  Filter results to a specific charger.
</ParamField>

<ParamField query="site_id" type="string">
  Filter results to chargers at a specific site.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/fleet/uptime?from=2024-06-01T00:00:00Z&to=2024-06-30T23:59:59Z" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "period": {
    "from": "2024-06-01T00:00:00Z",
    "to": "2024-06-30T23:59:59Z"
  },
  "chargers": [
    {
      "charge_point_id": "CP-001",
      "site_id": "site_01HZ4K8XVPQR3TY5N6M",
      "uptime_percent": 98.7,
      "downtime_minutes": 558
    },
    {
      "charge_point_id": "CP-002",
      "site_id": "site_01HZ4K8XVPQR3TY5N6M",
      "uptime_percent": 94.1,
      "downtime_minutes": 2541
    }
  ]
}
```

***

## Fleet utilisation

`GET /api/v1/cpo/fleet/utilisation`

Returns utilisation percentages showing what proportion of online time each charger was actively delivering energy.

<ParamField query="from" type="string" required>
  ISO 8601 start date/time.
</ParamField>

<ParamField query="to" type="string" required>
  ISO 8601 end date/time.
</ParamField>

<ParamField query="charge_point_id" type="string">
  Filter to a specific charger.
</ParamField>

<ParamField query="site_id" type="string">
  Filter to chargers at a specific site.
</ParamField>

<ParamField query="granularity" type="string" default="day">
  Time bucket for results. Accepted values: `hour`, `day`, `week`, `month`.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/fleet/utilisation?from=2024-06-01T00:00:00Z&to=2024-06-30T23:59:59Z&granularity=week" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "period": {
    "from": "2024-06-01T00:00:00Z",
    "to": "2024-06-30T23:59:59Z"
  },
  "granularity": "week",
  "chargers": [
    {
      "charge_point_id": "CP-001",
      "buckets": [
        { "period_start": "2024-06-03T00:00:00Z", "utilisation_percent": 61.2 },
        { "period_start": "2024-06-10T00:00:00Z", "utilisation_percent": 74.5 }
      ]
    }
  ]
}
```

***

## Fleet errors

`GET /api/v1/cpo/fleet/errors`

Returns error events across your fleet, ordered by most recent first.

<ParamField query="from" type="string">
  ISO 8601 start date/time.
</ParamField>

<ParamField query="to" type="string">
  ISO 8601 end date/time.
</ParamField>

<ParamField query="charge_point_id" type="string">
  Filter to a specific charger.
</ParamField>

<ParamField query="error_code" type="string">
  Filter by OCPP error code (e.g. `ConnectorLockFailure`).
</ParamField>

<ParamField query="limit" type="number" default="50">
  Maximum number of events to return.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/fleet/errors?from=2024-06-01T00:00:00Z&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "errors": [
    {
      "event_id": "evt_88XQPMN",
      "charge_point_id": "CP-007",
      "site_id": "site_01HZ4K8XVPQR3TY5N6M",
      "error_code": "GroundFailure",
      "info": "Ground fault detected on connector 1",
      "status": "Faulted",
      "timestamp": "2024-06-15T14:22:00Z",
      "resolved_at": null
    }
  ],
  "total": 1
}
```

***

## List fleet chargers

`GET /api/v1/cpo/fleet/chargers`

Returns a detailed list of all chargers in your fleet with their current status.

<ParamField query="status" type="string">
  Filter by charger status. Accepted values: `online`, `offline`, `charging`, `available`, `faulted`.
</ParamField>

<ParamField query="site_id" type="string">
  Filter to chargers at a specific site.
</ParamField>

<ParamField query="limit" type="number" default="50">
  Maximum number of chargers to return.
</ParamField>

<ParamField query="offset" type="number" default="0">
  Pagination offset.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/fleet/chargers?status=faulted" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "chargers": [
    {
      "charge_point_id": "CP-007",
      "site_id": "site_01HZ4K8XVPQR3TY5N6M",
      "vendor": "ABB",
      "model": "Terra AC",
      "firmware_version": "3.4.1",
      "status": "Faulted",
      "last_seen": "2024-06-15T14:22:10Z",
      "connectors": [
        { "connector_id": 1, "type": "Type2", "status": "Faulted" }
      ]
    }
  ],
  "total": 1
}
```

***

## Get charger diagnostics

`GET /api/v1/cpo/chargers/{charge_point_id}/diagnostics`

Returns a diagnostic summary for a single charger including recent error patterns and health indicators.

<ParamField path="charge_point_id" type="string" required>
  The OCPP identity of the charger.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/chargers/CP-001/diagnostics" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "charge_point_id": "CP-001",
  "firmware_version": "3.5.0",
  "uptime_30d_percent": 98.7,
  "utilisation_30d_percent": 62.1,
  "error_count_30d": 2,
  "last_error": {
    "error_code": "WeakSignal",
    "timestamp": "2024-05-28T08:14:00Z"
  },
  "last_heartbeat": "2024-06-15T16:00:00Z",
  "ocpp_version": "1.6",
  "connectors": [
    {
      "connector_id": 1,
      "status": "Available",
      "total_sessions": 312,
      "total_energy_kwh": 4820.4
    }
  ]
}
```

***

## Charger connectivity timeline

`GET /api/v1/cpo/chargers/{charge_point_id}/connectivity`

Returns a timeline of connect and disconnect events for a charger.

<ParamField path="charge_point_id" type="string" required>
  The OCPP identity of the charger.
</ParamField>

<ParamField query="from" type="string">
  ISO 8601 start date/time.
</ParamField>

<ParamField query="to" type="string">
  ISO 8601 end date/time.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/chargers/CP-001/connectivity?from=2024-06-01T00:00:00Z&to=2024-06-15T23:59:59Z" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "charge_point_id": "CP-001",
  "events": [
    { "type": "disconnected", "timestamp": "2024-06-04T02:10:00Z" },
    { "type": "connected",    "timestamp": "2024-06-04T02:12:45Z" }
  ]
}
```

***

## Charger error history

`GET /api/v1/cpo/chargers/{charge_point_id}/error-history`

Returns the full error history for a specific charger.

<ParamField path="charge_point_id" type="string" required>
  The OCPP identity of the charger.
</ParamField>

<ParamField query="from" type="string">
  ISO 8601 start date/time.
</ParamField>

<ParamField query="to" type="string">
  ISO 8601 end date/time.
</ParamField>

<ParamField query="limit" type="number" default="50">
  Maximum number of error events to return.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/chargers/CP-001/error-history?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

***

## List maintenance events

`GET /api/v1/cpo/chargers/{charge_point_id}/maintenance`

Returns all maintenance events recorded for a charger.

<ParamField path="charge_point_id" type="string" required>
  The OCPP identity of the charger.
</ParamField>

<ParamField query="from" type="string">
  ISO 8601 start date/time.
</ParamField>

<ParamField query="to" type="string">
  ISO 8601 end date/time.
</ParamField>

```bash theme={null}
curl "https://api.dynamo-csms.com/api/v1/cpo/chargers/CP-001/maintenance" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json theme={null}
{
  "charge_point_id": "CP-001",
  "events": [
    {
      "event_id": "mnt_7YBKQ",
      "type": "scheduled",
      "description": "Quarterly inspection and connector cleaning",
      "scheduled_at": "2024-06-20T09:00:00Z",
      "completed_at": null,
      "technician": "J. Smith",
      "notes": null
    }
  ]
}
```

***

## Create a maintenance event

`POST /api/v1/cpo/chargers/{charge_point_id}/maintenance`

Log a planned or completed maintenance event against a charger.

<ParamField path="charge_point_id" type="string" required>
  The OCPP identity of the charger.
</ParamField>

<ParamField body="type" type="string" required>
  Maintenance type. Accepted values: `scheduled`, `reactive`, `inspection`.
</ParamField>

<ParamField body="description" type="string" required>
  Description of the work to be carried out or completed.
</ParamField>

<ParamField body="scheduled_at" type="string">
  ISO 8601 date/time the maintenance is planned for.
</ParamField>

<ParamField body="completed_at" type="string">
  ISO 8601 date/time the maintenance was completed. Omit if not yet done.
</ParamField>

<ParamField body="technician" type="string">
  Name or identifier of the assigned technician.
</ParamField>

<ParamField body="notes" type="string">
  Additional notes or findings.
</ParamField>

```bash theme={null}
curl -X POST "https://api.dynamo-csms.com/api/v1/cpo/chargers/CP-001/maintenance" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "scheduled",
    "description": "Quarterly inspection and connector cleaning",
    "scheduled_at": "2024-07-20T09:00:00Z",
    "technician": "J. Smith"
  }'
```

```json theme={null}
{
  "event_id": "mnt_7YBKQ",
  "charge_point_id": "CP-001",
  "type": "scheduled",
  "description": "Quarterly inspection and connector cleaning",
  "scheduled_at": "2024-07-20T09:00:00Z",
  "completed_at": null,
  "technician": "J. Smith",
  "notes": null,
  "created_at": "2024-06-15T16:30:00Z"
}
```
