Quickstart
Three steps: create a key, list your systems, read the latest telemetry for one of them. Ten minutes, no SDK required.
1. Create an API key
Section titled “1. Create an API key”- Sign in to fleet-manager and open Settings -> API keys.
- Choose Create key. Give it a name you will recognise later (the name is shown in the key list and nowhere else), and optionally a description and an expiry date.
- Tick the scopes the integration needs. For this quickstart,
systems:readandtelemetry:readare enough. See Authentication and scopes for the full list. - Copy the key.
The key looks like this:
cp_live_Ab3xK9pQ2vNmR7sT4uW1yZ0cD6eF8gH5jL3nP7qS9tUThe key is shown once. It is stored as a SHA-256 hash, so nobody at Clayton Power can show it to you again. If you lose it, create a new key and revoke the old one.
The card is only available to company administrators. If you do not see it, ask an administrator of your company to create the key for you.
2. List your systems
Section titled “2. List your systems”curl -sS https://api.claytonpower.com/api/v1/external/systems \ -H "X-API-Key: $CP_API_KEY"{ "items": [ { "serialNumber": "1234567890", "name": "Van 12", "family": "LPS", "status": "active", "productName": "LPS II 3000", "capacityKwh": 3.2, "vehicleRegistration": "AB12345", "division": { "id": "0f2b7c1e-4a1d-4c53-9f0e-8b2d1a6c5e77", "name": "North" }, "dataAvailableFrom": "2026-03-01T00:00:00Z" } ], "page": 1, "pageSize": 50, "totalCount": 137}The list is paginated: pass page and pageSize (maximum 200). totalCount is the
number of systems across all pages. Only your company’s systems are ever returned.
Note serialNumber - it is the handle for every other endpoint - and
dataAvailableFrom, the earliest timestamp with data for that system.
3. Read the latest telemetry
Section titled “3. Read the latest telemetry”curl -sS https://api.claytonpower.com/api/v1/external/systems/1234567890/telemetry/latest \ -H "X-API-Key: $CP_API_KEY"{ "serialNumber": "1234567890", "connectivity": { "status": "online", "lastSeenAt": "2026-09-17T09:41:12Z" }, "stateOfCharge": { "percent": 87.5, "measuredAt": "2026-09-17T09:41:00Z" }, "fault": null, "latestInterval": { "start": "2026-09-17T09:30:00Z", "durationMinutes": 15, "input": { "mainsKwh": 0.42, "solarKwh": 0.11, "vehicleKwh": 0.0, "totalKwh": 0.53 }, "output": { "consumptionKwh": 0.37 }, "peakOutputW": 1180 }}latestInterval is the most recent completed 15-minute bucket, not the one
currently filling, and it can be null. stateOfCharge is minute-fresh. The
difference matters - see Freshness and lag.
What next
Section titled “What next”- Pull a series instead of a snapshot: Telemetry endpoints.
- Stop polling and get pushed events: Webhooks.
- Handle the failure cases properly: Errors and rate limits.
Keep the key safe
Section titled “Keep the key safe”An API key is a bearer credential: anyone holding it can read everything the key’s scopes allow, for your whole company.
- Store it in a secret manager or an environment variable, never in source control.
- Use it from your backend. A key in a browser or a mobile app is a published key.
- Give each integration its own key, so you can revoke one without breaking the others.
- Revoke a key the moment it is no longer needed. Revocation takes effect immediately.