Operator API key context (accessible networks + granted scopes)
GET/cpms/v1/me
Response — 200
dataobjectoptional
accessibleNetworkCountinteger · int32optional
Number of networks this key is authorized to operate.
example: 2
scopesarray of stringoptional
OAuth scopes granted to this key (the cpms:* vocabulary). See GET /.well-known/scopes.
keyTypestringoptional
Visibility class of the API key (e.g. Private, Publishable), or null if unset.
example: "Private"
unrestrictedbooleanoptional
True for first-party AllNetworks keys that are not pinned to a fixed network set.
example: false
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/meX-API-Key
curl 'https://api.proranked.com/cpms/v1/me' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"accessibleNetworkCount": 2,
"scopes": [
"string"
],
"keyType": "Private",
"unrestricted": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator revenue rollup over a date range (scoped to the key's networks)
GET/cpms/v1/analytics/revenue
Query parameters
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
networkIdstring · uuid · queryoptional
periodstring · queryoptional
Response — 200
dataobjectoptional
metricstringoptional
Always "revenue".
example: "revenue"
periodstringoptional
Grouping period requested (day | week | month).
example: "day"
fromobject · date-timeoptional
UTC start of the window (defaults to 30 days before `to`).
example: "2026-05-21T00:00:00Z"
toobject · date-timeoptional
UTC end of the window (defaults to now).
example: "2026-06-20T00:00:00Z"
totalRevenuenumber · doubleoptional
Total revenue across all targeted networks, rounded to 2 decimals.
example: 18432.55
networkCountinteger · int32optional
Number of networks included in this rollup.
example: 2
networksarray of objectoptional
Per-network revenue rollups.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/analytics/revenueX-API-Key
curl 'https://api.proranked.com/cpms/v1/analytics/revenue' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"metric": "revenue",
"period": "day",
"from": "2026-05-21T00:00:00Z",
"to": "2026-06-20T00:00:00Z",
"totalRevenue": 18432.55,
"networkCount": 2,
"networks": [
{
"networkId": "c0ffee00-1234-4567-89ab-cdef01234567",
"rollup": null
}
]
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator energy (kWh) rollup over a date range
GET/cpms/v1/analytics/energy
Query parameters
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
networkIdstring · uuid · queryoptional
periodstring · queryoptional
Response — 200
dataobjectoptional
metricstringoptional
Always "energy".
example: "energy"
periodstringoptional
Grouping period requested.
example: "day"
fromobject · date-timeoptional
UTC start of the window.
example: "2026-05-21T00:00:00Z"
toobject · date-timeoptional
UTC end of the window.
example: "2026-06-20T00:00:00Z"
totalEnergyKwhnumber · doubleoptional
Total energy across all targeted networks (kWh), rounded to 2 decimals.
example: 54210.4
networkCountinteger · int32optional
Number of networks included in this rollup.
example: 2
networksarray of objectoptional
Per-network energy rollups.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/analytics/energyX-API-Key
curl 'https://api.proranked.com/cpms/v1/analytics/energy' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"metric": "energy",
"period": "day",
"from": "2026-05-21T00:00:00Z",
"to": "2026-06-20T00:00:00Z",
"totalEnergyKwh": 54210.4,
"networkCount": 2,
"networks": [
{
"networkId": "c0ffee00-1234-4567-89ab-cdef01234567",
"rollup": null
}
]
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator session-count rollup over a date range
GET/cpms/v1/analytics/sessions
Query parameters
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
networkIdstring · uuid · queryoptional
periodstring · queryoptional
Response — 200
dataobjectoptional
metricstringoptional
Always "sessions".
example: "sessions"
periodstringoptional
Grouping period requested.
example: "day"
fromobject · date-timeoptional
UTC start of the window.
example: "2026-05-21T00:00:00Z"
toobject · date-timeoptional
UTC end of the window.
example: "2026-06-20T00:00:00Z"
totalSessionsinteger · int64optional
Total session count across all targeted networks.
example: 7421
networkCountinteger · int32optional
Number of networks included in this rollup.
example: 2
networksarray of objectoptional
Per-network session rollups.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/analytics/sessionsX-API-Key
curl 'https://api.proranked.com/cpms/v1/analytics/sessions' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"metric": "sessions",
"period": "day",
"from": "2026-05-21T00:00:00Z",
"to": "2026-06-20T00:00:00Z",
"totalSessions": 7421,
"networkCount": 2,
"networks": [
{
"networkId": "c0ffee00-1234-4567-89ab-cdef01234567",
"rollup": null
}
]
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator connector utilization rollup over a date range
GET/cpms/v1/analytics/utilization
Query parameters
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
networkIdstring · uuid · queryoptional
periodstring · queryoptional
Response — 200
dataobjectoptional
metricstringoptional
Always "utilization".
example: "utilization"
periodstringoptional
Grouping period requested.
example: "day"
fromobject · date-timeoptional
UTC start of the window.
example: "2026-05-21T00:00:00Z"
toobject · date-timeoptional
UTC end of the window.
example: "2026-06-20T00:00:00Z"
averageUtilizationnumber · doubleoptional
Mean connector utilization (percent) across the targeted networks, rounded to 2 decimals.
example: 37.42
networkCountinteger · int32optional
Number of networks included in this rollup.
example: 2
networksarray of objectoptional
Per-network utilization rollups.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/analytics/utilizationX-API-Key
curl 'https://api.proranked.com/cpms/v1/analytics/utilization' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"metric": "utilization",
"period": "day",
"from": "2026-05-21T00:00:00Z",
"to": "2026-06-20T00:00:00Z",
"averageUtilization": 37.42,
"networkCount": 2,
"networks": [
{
"networkId": "c0ffee00-1234-4567-89ab-cdef01234567",
"rollup": null
}
]
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator charger uptime / availability (SLA) snapshot
GET/cpms/v1/analytics/uptime
Query parameters
networkIdstring · uuid · queryoptional
Response — 200
dataobjectoptional
metricstringoptional
Always "uptime".
example: "uptime"
totalChargersinteger · int32optional
Total non-deleted chargers across the targeted networks.
example: 84
availableinteger · int32optional
Chargers reporting AVAILABLE across all targeted networks.
example: 60
charginginteger · int32optional
Chargers reporting CHARGING across all targeted networks.
example: 16
offlineinteger · int32optional
Offline chargers across all targeted networks.
example: 8
uptimePercentnumber · doubleoptional
"In service" (available + charging) as a percentage of total, rounded to 1 decimal.
example: 90.5
offlinePercentnumber · doubleoptional
Offline chargers as a percentage of total, rounded to 1 decimal.
example: 9.5
networkCountinteger · int32optional
Number of networks included in the snapshot.
example: 2
networksarray of objectoptional
Per-network availability breakdowns.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/analytics/uptimeX-API-Key
curl 'https://api.proranked.com/cpms/v1/analytics/uptime' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"metric": "uptime",
"totalChargers": 84,
"available": 60,
"charging": 16,
"offline": 8,
"uptimePercent": 90.5,
"offlinePercent": 9.5,
"networkCount": 2,
"networks": [
{
"networkId": "c0ffee00-1234-4567-89ab-cdef01234567",
"totalChargers": 42,
"available": 30,
"charging": 8,
"offline": 4,
"availablePercent": 71.4,
"inUsePercent": 19,
"offlinePercent": 9.5
}
]
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator KPI summary (revenue, energy, sessions, avg duration)
GET/cpms/v1/analytics/kpis
Query parameters
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
networkIdstring · uuid · queryoptional
Response — 200
dataobjectoptional
metricstringoptional
Always "kpis".
example: "kpis"
fromobject · date-timeoptional
UTC start of the window.
example: "2026-05-21T00:00:00Z"
toobject · date-timeoptional
UTC end of the window.
example: "2026-06-20T00:00:00Z"
totalSessionsinteger · int32optional
Total sessions in the window across the targeted networks.
example: 7421
totalEnergyKwhnumber · doubleoptional
Total energy delivered (kWh), rounded to 2 decimals.
example: 54210.4
totalRevenuenumber · doubleoptional
Total revenue, rounded to 2 decimals.
example: 18432.55
avgDurationMinutesobject · doubleoptional
Average completed-session duration in minutes, rounded to 1 decimal.
example: 46.7
networkCountinteger · int32optional
Number of networks included in the summary.
example: 2
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/analytics/kpisX-API-Key
curl 'https://api.proranked.com/cpms/v1/analytics/kpis' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"metric": "kpis",
"from": "2026-05-21T00:00:00Z",
"to": "2026-06-20T00:00:00Z",
"totalSessions": 7421,
"totalEnergyKwh": 54210.4,
"totalRevenue": 18432.55,
"avgDurationMinutes": 46.7,
"networkCount": 2
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
List the operator's CPMS API keys (prefix/suffix only — never the secret)
GET/cpms/v1/api-keys
Query parameters
networkUuidstring · uuid · queryoptional
Response — 200
dataarray of objectoptional
The operator's CPMS API keys (display fragments only).
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/api-keysX-API-Key
curl 'https://api.proranked.com/cpms/v1/api-keys' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "Reporting agent (read-only)",
"description": "Pulls nightly CDR exports.",
"keyType": "Rest",
"visibility": "Private",
"apiFamily": "cpms",
"keyClass": "ServerSide",
"keyEnvironment": "live",
"keyPrefix": "pk_cpms_live_",
"last4": "a1b2",
"permissions": [
"string"
],
"expiresAt": "2027-01-01T00:00:00Z",
"isRevoked": false,
"isExpired": false,
"lastUsedAt": "2026-06-19T03:00:00Z",
"usageCount": 14820,
"rateLimitPerHour": 5000,
"createdAt": "2026-03-12T08:00:00Z"
}
],
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Mint a new CPMS API key (the full secret is shown ONCE in this response)
POST/cpms/v1/api-keys
Query parameters
networkUuidstring · uuid · queryoptional
Request body
namestringoptional
descriptionstringoptional
scopesarray of stringoptional
expiresAtobject · date-timeoptional
rateLimitPerHourinteger · int32optional
allowedIPsarray of stringoptional
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable API key UUID.
example: "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"
namestringoptional
Operator-chosen key name.
example: "Reporting agent (read-only)"
visibilitystringoptional
Key visibility (always Private for CPMS keys).
example: "Private"
apiFamilystringoptional
API family (cpms).
example: "cpms"
keyClassstringoptional
Key class (ServerSide).
example: "ServerSide"
keyPrefixstringoptional
Leading characters of the key (safe to display).
example: "pk_cpms_live_"
last4stringoptional
Trailing characters of the key (safe to display).
example: "a1b2"
keystringoptional
The full plaintext secret. Shown ONCE and never retrievable again — store it now.
example: "pk_cpms_live_3f9a2c8e7b1d4f60a5c3e2d1b0a9f8e7"
messagestringoptional
Reminder that the secret will not be shown again.
example: "Store this key securely. It will not be shown again."
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/api-keysX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/api-keys' \ -H 'X-API-Key: pr_live_…'
Response · 201
{
"data": {
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "Reporting agent (read-only)",
"visibility": "Private",
"apiFamily": "cpms",
"keyClass": "ServerSide",
"keyPrefix": "pk_cpms_live_",
"last4": "a1b2",
"key": "pk_cpms_live_3f9a2c8e7b1d4f60a5c3e2d1b0a9f8e7",
"message": "Store this key securely. It will not be shown again."
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Revoke + soft-delete one of the operator's CPMS API keys
DELETE/cpms/v1/api-keys/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
networkUuidstring · uuid · queryoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable API key UUID that was revoked.
example: "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"
revokedbooleanoptional
Always true on success.
example: true
deletedbooleanoptional
Always true on success (the key is soft-deleted).
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
DELETE /cpms/v1/api-keys/{id}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/api-keys/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"revoked": true,
"deleted": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Catalog of firmware images available for a charger model
GET/cpms/v1/charger-models/{modelId}/firmware
Path & query parameters
modelIdstring · uuid · pathrequired
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
Response — 200
dataarray of objectoptional
The page of firmware images.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items per page (1–100).
example: 25
totalinteger · int32optional
Total number of items across all pages.
example: 7
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 1
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/charger-models/{modelId}/firmwareX-API-Key
curl 'https://api.proranked.com/cpms/v1/charger-models/{modelId}/firmware' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": [
{
"id": "a1c2e3f4-5b6a-4c7d-8e9f-0a1b2c3d4e5f",
"version": "1.5.32",
"fileName": "evlink-1.5.32.bin",
"fileUrl": "https://firmware.phevnix.com/evlink/evlink-1.5.32.bin",
"fileSizeBytes": 8388608,
"releaseNotes": "Fixes intermittent MeterValues drop on AC connectors.",
"ocppVersionSupport": "1.6,2.0.1",
"checksum": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"isLatest": true,
"releasedAt": "2026-05-01T00:00:00Z",
"createdAt": "2026-05-01T00:00:00Z"
}
],
"pagination": {
"page": 1,
"pageSize": 25,
"total": 7,
"totalPages": 1
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List the operator's chargers (+ live status)
GET/cpms/v1/chargers
Query parameters
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
Response — 200
dataarray of objectoptional
The page of chargers.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items requested per page (1–100; defaults to 50).
example: 50
totalinteger · int32optional
Total number of items across all pages.
example: 137
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/chargersX-API-Key
curl 'https://api.proranked.com/cpms/v1/chargers' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"uid": "CP-IslaVerde-01",
"status": "Available",
"networkId": 3,
"locationId": 12,
"serialNumber": "SN-A1B2C3D4",
"firmwareVersion": "1.5.32",
"ocppVersion": "1.6"
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"total": 137,
"totalPages": 3
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Register (create) a charger on one of the operator's networks
POST/cpms/v1/chargers
Request body
serialstringrequired
networkUuidstring · uuidoptional
locationUuidstring · uuidoptional
modelUuidstring · uuidoptional
statusstringoptional
firmwareVersionstringoptional
ocppVersionstringoptional
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable charger UUID of the newly created charger.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
uidstringoptional
OCPP charge-point identity (chargePointId) — set from the supplied serial.
example: "CP-IslaVerde-01"
evseIdstringoptional
Short, printable EVSE identifier generated for the charger.
example: "PR-A1B2C3"
serialNumberstringoptional
Hardware serial number recorded for the charger.
example: "SN-A1B2C3D4"
statusstringoptional
Initial OCPP status (UNKNOWN unless a status was supplied).
example: "UNKNOWN"
networkIdinteger · int32optional
Internal numeric id of the network the charger was created on.
example: 3
locationIdstring · uuidoptional
UUID of the location the charger was assigned to, or null if unassigned.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
createdbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargersX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers' \ -H 'X-API-Key: pr_live_…'
Response · 201
{
"data": {
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"uid": "CP-IslaVerde-01",
"evseId": "PR-A1B2C3",
"serialNumber": "SN-A1B2C3D4",
"status": "UNKNOWN",
"networkId": 3,
"locationId": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"created": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Charger detail (status, network, location, connectors)
GET/cpms/v1/chargers/{uuid}
Path & query parameters
uuidstring · uuid · pathrequired
The resource UUID.
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable charger UUID.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
uidstringoptional
OCPP charge-point identity (chargePointId).
example: "CP-IslaVerde-01"
statusstringoptional
Last OCPP status reported by the station. Cross-check isOnline for liveness.
example: "Available"
networkIdinteger · int32optional
Internal numeric id of the owning network.
example: 3
locationIdinteger · int32optional
Internal numeric id of the assigned location/site, or null.
example: 12
serialNumberstringoptional
Manufacturer hardware serial number, if reported.
example: "SN-A1B2C3D4"
firmwareVersionstringoptional
Firmware version last reported via BootNotification.
example: "1.5.32"
ocppVersionstringoptional
OCPP protocol the station negotiated.
example: "1.6"
maxPowerKwnumber · doubleoptional
Rated maximum power of the charger, in kW.
example: 150
securityProfileinteger · int32optional
OCPP security profile in force: 1 = ws:// + Basic auth, 2 = wss:// + Basic auth, 3 = wss:// + mutual TLS.
example: 2
lastHeartbeatobject · date-timeoptional
UTC timestamp of the last OCPP heartbeat / StatusNotification from the station.
example: "2026-06-19T18:42:07Z"
isOnlinebooleanoptional
True only if a heartbeat arrived within the last 5 minutes. Treat !isOnline as unavailable regardless of the status field.
example: true
connectorsarray of objectoptional
The charger's connectors, ordered by connector number.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/chargers/{uuid}X-API-Key
curl 'https://api.proranked.com/cpms/v1/chargers/{uuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"uid": "CP-IslaVerde-01",
"status": "Available",
"networkId": 3,
"locationId": 12,
"serialNumber": "SN-A1B2C3D4",
"firmwareVersion": "1.5.32",
"ocppVersion": "1.6",
"maxPowerKw": 150,
"securityProfile": 2,
"lastHeartbeat": "2026-06-19T18:42:07Z",
"isOnline": true,
"connectors": [
{
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"number": 1,
"standard": "IEC_62196_T2",
"format": "SOCKET",
"powerType": "AC_3_PHASE",
"maxPowerKw": 22,
"status": "Available"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Update charger details (status, physical reference, floor level, location)
PATCH/cpms/v1/chargers/{uuid}
Path & query parameters
uuidstring · uuid · pathrequired
The resource UUID.
Request body
statusstringoptional
physicalReferencestringoptional
floorLevelstringoptional
locationUuidstring · uuidoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
UUID of the updated entity.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
updatedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
PATCH /cpms/v1/chargers/{uuid}X-API-Key
curl -X PATCH 'https://api.proranked.com/cpms/v1/chargers/{uuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"updated": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Soft-delete (decommission) a charger
DELETE/cpms/v1/chargers/{uuid}
Path & query parameters
uuidstring · uuid · pathrequired
The resource UUID.
Response — 200
dataobjectoptional
idstring · uuidoptional
UUID of the decommissioned charger.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
deletedbooleanoptional
Always true on success.
example: true
deactivatedConnectorsinteger · int32optional
Number of the charger's connectors that were cascade soft-deleted.
example: 2
deactivatedAssignmentsinteger · int32optional
Number of active tariff assignments pointing at the charger (or its connectors) that were deactivated.
example: 1
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
DELETE /cpms/v1/chargers/{uuid}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/chargers/{uuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"deleted": true,
"deactivatedConnectors": 2,
"deactivatedAssignments": 1
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator remote-start a charging session on one of the operator's own chargers (live control)
POST/cpms/v1/chargers/{chargerUuid}/remote-start
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
idTagstringoptional
connectorNumberinteger · int32optional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the start command was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number (1-based) the session was started on.
example: 1
idTagstringoptional
Authorization idTag the session was started under.
example: "OPERATOR-START-001"
acceptedbooleanoptional
True when the station accepted the RemoteStartTransaction command.
example: true
deviceTypestringoptional
Device transport the command was dispatched over (e.g. OCPP, IoT).
example: "OCPP"
transactionIdstringoptional
OCPP transaction id when the device returns one immediately, else null (the session row is created on StartTransaction).
example: "80231"
messagestringoptional
Human-readable guidance on how to resolve the resulting session.
example: "Start command accepted. The session row is created when the charger confirms StartTransaction; resolve it via GET /api/cpms/v1/sessions?status=ACTIVE."
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/remote-startX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/remote-start' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"idTag": "OPERATOR-START-001",
"accepted": true,
"deviceType": "OCPP",
"transactionId": "80231",
"message": "Start command accepted. The session row is created when the charger confirms StartTransaction; resolve it via GET /api/cpms/v1/sessions?status=ACTIVE."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator remote-stop an active charging session on one of the operator's own chargers (live control)
POST/cpms/v1/chargers/{chargerUuid}/remote-stop
Path & query parameters
chargerUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the stop command was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
sessionIdstring · uuidoptional
UUID of the charging session that is being stopped.
example: "7c1d2e30-5f6a-4b7c-8d9e-0a1b2c3d4e5f"
statusstringoptional
Transitional session status after the stop command was accepted (always 'STOPPING').
example: "STOPPING"
acceptedbooleanoptional
True when the station accepted the RemoteStopTransaction command.
example: true
deviceTypestringoptional
Device transport the command was dispatched over (e.g. OCPP, IoT).
example: "OCPP"
messagestringoptional
Human-readable note that final session data arrives with the charger's StopTransaction.
example: "Stop command accepted. Final session data arrives with the charger's StopTransaction."
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/remote-stopX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/remote-stop' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"sessionId": "7c1d2e30-5f6a-4b7c-8d9e-0a1b2c3d4e5f",
"status": "STOPPING",
"accepted": true,
"deviceType": "OCPP",
"message": "Stop command accepted. Final session data arrives with the charger's StopTransaction."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator reboot (Soft/Hard reset) one of the operator's own chargers (live control)
POST/cpms/v1/chargers/{chargerUuid}/reboot
Path & query parameters
chargerUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the reset command was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
resetTypestringoptional
Reset kind requested: 'Soft' (graceful restart) or 'Hard' (power-cycle).
example: "Soft"
acceptedbooleanoptional
True when the station accepted the Reset command.
example: true
messagestringoptional
Human-readable confirmation of the dispatched reset.
example: "Soft reset command sent successfully"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/rebootX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/reboot' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"resetType": "Soft",
"accepted": true,
"message": "Soft reset command sent successfully"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Add a connector to one of the operator's chargers
POST/cpms/v1/chargers/{uuid}/connectors
Path & query parameters
uuidstring · uuid · pathrequired
The resource UUID.
Request body
standardstringoptional
formatstringoptional
powerTypestringoptional
connectorNumberinteger · int32optional
maxVoltageinteger · int32optional
maxAmperageinteger · int32optional
maxPowernumber · doubleoptional
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable connector UUID of the newly created connector.
example: "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d"
chargerIdstring · uuidoptional
UUID of the charger the connector was added to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number on the charger (1-based).
example: 2
standardstringoptional
Plug standard (e.g. IEC_62196_T2, CHADEMO, CCS).
example: "IEC_62196_T2"
formatstringoptional
Connector format: SOCKET (untethered) or CABLE (tethered).
example: "SOCKET"
powerTypestringoptional
Power delivery type (AC_1_PHASE, AC_3_PHASE, DC).
example: "AC_3_PHASE"
maxVoltageinteger · int32optional
Maximum voltage (V).
example: 400
maxAmperageinteger · int32optional
Maximum amperage (A).
example: 32
maxPowernumber · doubleoptional
Maximum electric power, in kW (stored internally as watts).
example: 22
createdbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{uuid}/connectorsX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{uuid}/connectors' \
-H 'X-API-Key: pr_live_…'Response · 201
{
"data": {
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 2,
"standard": "IEC_62196_T2",
"format": "SOCKET",
"powerType": "AC_3_PHASE",
"maxVoltage": 400,
"maxAmperage": 32,
"maxPower": 22,
"created": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator unlock a connector on one of the operator's own chargers (live control)
POST/cpms/v1/chargers/{chargerUuid}/unlock-connector
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
connectorNumberinteger · int32optional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the command was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number (1-based) that was unlocked.
example: 1
acceptedbooleanoptional
True when the station accepted the unlock command.
example: true
messagestringoptional
Human-readable confirmation of the dispatched command.
example: "Unlock command sent successfully"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/unlock-connectorX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/unlock-connector' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"accepted": true,
"message": "Unlock command sent successfully"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator change a charger/connector availability on the device (Operative/Inoperative, live control)
POST/cpms/v1/chargers/{chargerUuid}/change-availability
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
connectorNumberinteger · int32optional
typestringoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the command was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Targeted connector number; 0 means the whole charger (OCPP connectorId 0).
example: 0
typestringoptional
Availability requested on the device: 'Operative' or 'Inoperative'.
example: "Inoperative"
acceptedbooleanoptional
True when the station accepted the change-availability command.
example: true
messagestringoptional
Human-readable confirmation of the dispatched command.
example: "ChangeAvailability (Inoperative) command sent successfully"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/change-availabilityX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/change-availability' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 0,
"type": "Inoperative",
"accepted": true,
"message": "ChangeAvailability (Inoperative) command sent successfully"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator trigger an OCPP message on one of the operator's own chargers (live control)
POST/cpms/v1/chargers/{chargerUuid}/trigger-message
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
requestedMessagestringoptional
connectorNumberinteger · int32optional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the command was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
requestedMessagestringoptional
OCPP message the station was asked to emit (e.g. BootNotification, Heartbeat, MeterValues, StatusNotification).
example: "StatusNotification"
connectorNumberinteger · int32optional
Optional connector scope for the triggered message, or null for the whole charger.
example: 1
acceptedbooleanoptional
True when the station accepted the trigger-message command.
example: true
messagestringoptional
Human-readable confirmation of the dispatched command.
example: "TriggerMessage (StatusNotification) command sent successfully"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/trigger-messageX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/trigger-message' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"requestedMessage": "StatusNotification",
"connectorNumber": 1,
"accepted": true,
"message": "TriggerMessage (StatusNotification) command sent successfully"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Read a charger's OCPP configuration (1.6 GetConfiguration / 2.0.1 GetVariables)
GET/cpms/v1/chargers/{chargerUuid}/configuration
Path & query parameters
chargerUuidstring · uuid · pathrequired
keysstring · queryoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the configuration read targeted.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
chargePointIdstringoptional
OCPP charge-point identity (chargePointId) the station connects with.
example: "CP-IslaVerde-01"
ocppVersionstringoptional
OCPP protocol the station negotiated — determines whether GetConfiguration (1.6) or GetVariables (2.0.1) was used.
example: "1.6"
resultobjectoptional
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/chargers/{chargerUuid}/configurationX-API-Key
curl 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/configuration' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargePointId": "CP-IslaVerde-01",
"ocppVersion": "1.6",
"result": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Change a charger's OCPP configuration key (1.6 ChangeConfiguration / 2.0.1 SetVariables, live control)
POST/cpms/v1/chargers/{chargerUuid}/configuration
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
keystringrequired
valuestringrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the configuration change targeted.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
chargePointIdstringoptional
OCPP charge-point identity (chargePointId) the station connects with.
example: "CP-IslaVerde-01"
ocppVersionstringoptional
OCPP protocol the station negotiated — determines whether ChangeConfiguration (1.6) or SetVariables (2.0.1) was used.
example: "1.6"
keystringoptional
Configuration key that was changed. For 2.0.1 this is the 'Component.Variable' form (default component 'Charger').
example: "HeartbeatInterval"
acceptedbooleanoptional
True when the station accepted the configuration change.
example: true
resultobjectoptional
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/configurationX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/configuration' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargePointId": "CP-IslaVerde-01",
"ocppVersion": "1.6",
"key": "HeartbeatInterval",
"accepted": true,
"result": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
OCPP 2.0.1: read device-model variables (GetVariables)
POST/cpms/v1/chargers/{chargerUuid}/variables/get
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
variablesarray of objectoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the configuration read targeted.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
chargePointIdstringoptional
OCPP charge-point identity (chargePointId) the station connects with.
example: "CP-IslaVerde-01"
ocppVersionstringoptional
OCPP protocol the station negotiated — determines whether GetConfiguration (1.6) or GetVariables (2.0.1) was used.
example: "1.6"
resultobjectoptional
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/variables/getX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/variables/get' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargePointId": "CP-IslaVerde-01",
"ocppVersion": "1.6",
"result": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
OCPP 2.0.1: write device-model variables (SetVariables, live control)
POST/cpms/v1/chargers/{chargerUuid}/variables/set
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
variablesarray of objectoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the SetVariables call targeted.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
chargePointIdstringoptional
OCPP charge-point identity (chargePointId) the station connects with.
example: "CP-IslaVerde-01"
ocppVersionstringoptional
OCPP protocol the station negotiated (always a 2.0.1 charger for SetVariables).
example: "2.0.1"
acceptedbooleanoptional
True when the station accepted the SetVariables request.
example: true
resultobjectoptional
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/variables/setX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/variables/set' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargePointId": "CP-IslaVerde-01",
"ocppVersion": "2.0.1",
"accepted": true,
"result": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Apply a firmware image to one of the operator's own chargers (OTA; live control)
POST/cpms/v1/chargers/{chargerUuid}/firmware/update
Path & query parameters
chargerUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the OTA update was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
firmwareVersionIdstring · uuidoptional
Catalog firmware-version UUID that was applied, or null when a raw location URL was supplied.
example: "a1c2e3f4-5b6a-4c7d-8e9f-0a1b2c3d4e5f"
firmwareVersionstringoptional
Catalog firmware version string that was applied, or null for a raw location URL.
example: "1.5.32"
locationstringoptional
Image URL the charger was instructed to download.
example: "https://firmware.phevnix.com/evlink/evlink-1.5.32.bin"
acceptedbooleanoptional
True when the station accepted the UpdateFirmware command.
example: true
payloadstringoptional
Raw OCPP response payload (JSON) returned by the station for the UpdateFirmware command.
example: "{\"status\":\"Accepted\"}"
messagestringoptional
Human-readable guidance on tracking OTA progress.
example: "UpdateFirmware command accepted. Track progress via the charger's FirmwareStatusNotification (GET /api/cpms/v1/chargers/{id}/firmware/status)."
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/firmware/updateX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/firmware/update' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"firmwareVersionId": "a1c2e3f4-5b6a-4c7d-8e9f-0a1b2c3d4e5f",
"firmwareVersion": "1.5.32",
"location": "https://firmware.phevnix.com/evlink/evlink-1.5.32.bin",
"accepted": true,
"payload": "{\"status\":\"Accepted\"}",
"message": "UpdateFirmware command accepted. Track progress via the charger's FirmwareStatusNotification (GET /api/cpms/v1/chargers/{id}/firmware/status)."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Current firmware version + most recent firmware-update status for a charger
GET/cpms/v1/chargers/{chargerUuid}/firmware/status
Path & query parameters
chargerUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
currentFirmwareVersionstringoptional
Firmware version the charger last reported via BootNotification.
example: "1.5.32"
ocppVersionstringoptional
OCPP protocol the charger negotiated.
example: "1.6"
isOnlinebooleanoptional
True only if a heartbeat arrived within the last 5 minutes.
example: true
lastHeartbeatobject · date-timeoptional
UTC timestamp of the charger's last heartbeat.
example: "2026-06-19T18:42:07Z"
lastFirmwareUpdateobjectoptional
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/chargers/{chargerUuid}/firmware/statusX-API-Key
curl 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/firmware/status' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"currentFirmwareVersion": "1.5.32",
"ocppVersion": "1.6",
"isOnline": true,
"lastHeartbeat": "2026-06-19T18:42:07Z",
"lastFirmwareUpdate": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Ask a charger to upload its diagnostics/log file (GetDiagnostics / GetLog)
POST/cpms/v1/chargers/{chargerUuid}/diagnostics/fetch
Path & query parameters
chargerUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID the diagnostics request was sent to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
chargePointIdstringoptional
OCPP charge-point identity (chargePointId) of the station.
example: "CP-IslaVerde-01"
fileNamestringoptional
Name of the diagnostics file the charger will upload.
example: "SN-A1B2C3D4_20260619-184205.log"
acceptedbooleanoptional
True when the station accepted the GetDiagnostics / GetLog command.
example: true
uploadUrlstringoptional
Storage URL where the uploaded diagnostics file will be readable once the charger completes the upload.
example: "https://blob.phevnix.com/diagnostics/SN-A1B2C3D4/SN-A1B2C3D4_20260619-184205.log"
payloadstringoptional
Raw OCPP response payload (JSON) returned by the station for the diagnostics command.
example: "{\"fileName\":\"SN-A1B2C3D4_20260619-184205.log\"}"
messagestringoptional
Human-readable guidance on retrieving the uploaded file.
example: "Diagnostics request accepted. The charger uploads the file asynchronously; list it via GET /api/cpms/v1/diagnostic-files?chargerId={id}."
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/chargers/{chargerUuid}/diagnostics/fetchX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/diagnostics/fetch' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"chargePointId": "CP-IslaVerde-01",
"fileName": "SN-A1B2C3D4_20260619-184205.log",
"accepted": true,
"uploadUrl": "https://blob.phevnix.com/diagnostics/SN-A1B2C3D4/SN-A1B2C3D4_20260619-184205.log",
"payload": "{\"fileName\":\"SN-A1B2C3D4_20260619-184205.log\"}",
"message": "Diagnostics request accepted. The charger uploads the file asynchronously; list it via GET /api/cpms/v1/diagnostic-files?chargerId={id}."
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Charger health snapshot: last heartbeat, online, recent status/error codes
GET/cpms/v1/chargers/{chargerUuid}/diagnostics
Path & query parameters
chargerUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
Stable charger UUID.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
serialNumberstringoptional
Manufacturer hardware serial number, if reported.
example: "SN-A1B2C3D4"
firmwareVersionstringoptional
Firmware version last reported by the charger.
example: "1.5.32"
ocppVersionstringoptional
OCPP protocol the charger negotiated.
example: "1.6"
ipAddressstringoptional
Last-known IP address the charger connected from, if recorded.
example: "203.0.113.42"
lastHeartbeatobject · date-timeoptional
UTC timestamp of the charger's last heartbeat.
example: "2026-06-19T18:42:07Z"
isOnlinebooleanoptional
True only if a heartbeat arrived within the last 5 minutes.
example: true
lastConnectionStatusstringoptional
Last-recorded CSMS connection status for the charger.
example: "Connected"
statusHistoryarray of objectoptional
The most recent charger status changes, newest first.
recentOcppMessagesarray of objectoptional
The most recent OCPP message exchanges with the charger, newest first.
ocppMessageCountinteger · int32optional
Total number of OCPP messages on record for this charger.
example: 12847
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/chargers/{chargerUuid}/diagnosticsX-API-Key
curl 'https://api.proranked.com/cpms/v1/chargers/{chargerUuid}/diagnostics' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"serialNumber": "SN-A1B2C3D4",
"firmwareVersion": "1.5.32",
"ocppVersion": "1.6",
"ipAddress": "203.0.113.42",
"lastHeartbeat": "2026-06-19T18:42:07Z",
"isOnline": true,
"lastConnectionStatus": "Connected",
"statusHistory": [
{
"oldStatus": "AVAILABLE",
"newStatus": "FAULTED",
"errorCode": "GroundFailure",
"errorMessage": "Residual current detected",
"vendorErrorCode": "E-1042",
"timestamp": "2026-06-19T18:30:00Z"
}
],
"recentOcppMessages": [
{
"timestamp": "2026-06-19T18:41:55Z",
"direction": "incoming",
"messageType": "Call",
"action": "Heartbeat",
"status": "success",
"responseTimeMs": 42,
"correlationId": "b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"ocppVersion": "1.6"
}
],
"ocppMessageCount": 12847
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Live connector status
GET/cpms/v1/connectors/{uuid}/status
Path & query parameters
uuidstring · uuid · pathrequired
The resource UUID.
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable connector UUID.
example: "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d"
numberinteger · int32optional
Connector number on the charger (1-based).
example: 1
chargerIdstring · uuidoptional
Stable UUID of the charger this connector belongs to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
statusstringoptional
Live connector status (Available, Charging, Faulted, …) or UNKNOWN if never reported.
example: "Charging"
standardstringoptional
Plug standard (e.g. IEC_62196_T2, CHADEMO, IEC_62196_T1_COMBO).
example: "IEC_62196_T2"
powerTypestringoptional
Power delivery type (AC_1_PHASE, AC_3_PHASE, DC).
example: "AC_3_PHASE"
maxPowerKwnumber · doubleoptional
Maximum power this connector can deliver, in kW.
example: 22
chargerOnlinebooleanoptional
True only if the parent charger sent a heartbeat within the last 5 minutes.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/connectors/{uuid}/statusX-API-Key
curl 'https://api.proranked.com/cpms/v1/connectors/{uuid}/status' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"number": 1,
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"status": "Charging",
"standard": "IEC_62196_T2",
"powerType": "AC_3_PHASE",
"maxPowerKw": 22,
"chargerOnline": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Update a connector's provisioning fields (Standard, Format, PowerType, MaxVoltage, MaxAmperage, MaxPower kW, Status). Scoped to the key's networks.
PUT/cpms/v1/connectors/{connectorUuid}
Path & query parameters
connectorUuidstring · uuid · pathrequired
Request body
standardstringoptional
formatstringoptional
powerTypestringoptional
maxVoltageinteger · int32optional
maxAmperageinteger · int32optional
maxPowernumber · doubleoptional
statusstringoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable connector UUID.
example: "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d"
chargerIdstring · uuidoptional
Stable UUID of the charger this connector belongs to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number on the charger (1-based).
example: 1
connectorIdentifierstringoptional
Provisioning identifier of the connector within its charger.
example: "CP-IslaVerde-01-1"
standardstringoptional
Plug standard (e.g. IEC_62196_T2, CHADEMO, IEC_62196_T1_COMBO).
example: "IEC_62196_T2"
formatstringoptional
Connector format: CABLE (tethered) or SOCKET (untethered).
example: "SOCKET"
powerTypestringoptional
Power delivery type (AC_1_PHASE, AC_3_PHASE, DC).
example: "AC_3_PHASE"
maxVoltageinteger · int32optional
Maximum voltage of the connector, in volts.
example: 400
maxAmperageinteger · int32optional
Maximum amperage of the connector, in amperes.
example: 32
maxPowernumber · doubleoptional
Maximum power this connector can deliver, in kW (stored internally as watts).
example: 22
statusstringoptional
Internal connector status (AVAILABLE, PREPARING, CHARGING, OUTOFORDER, BLOCKED, INOPERATIVE, …) or null if never set.
example: "AVAILABLE"
networkIdinteger · int32optional
Internal numeric id of the owning network (inherited from the connector's charger).
example: 3
lastUpdatedobject · date-timeoptional
UTC timestamp this connector record was last updated.
example: "2026-06-19T18:42:07Z"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
PUT /cpms/v1/connectors/{connectorUuid}X-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/connectors/{connectorUuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"connectorIdentifier": "CP-IslaVerde-01-1",
"standard": "IEC_62196_T2",
"format": "SOCKET",
"powerType": "AC_3_PHASE",
"maxVoltage": 400,
"maxAmperage": 32,
"maxPower": 22,
"status": "AVAILABLE",
"networkId": 3,
"lastUpdated": "2026-06-19T18:42:07Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Soft-delete a connector
DELETE/cpms/v1/connectors/{uuid}
Path & query parameters
uuidstring · uuid · pathrequired
The resource UUID.
Response — 200
dataobjectoptional
idstring · uuidoptional
UUID of the deleted connector.
example: "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d"
deletedbooleanoptional
Always true on success.
example: true
deactivatedAssignmentsinteger · int32optional
Number of active connector-level tariff assignments that were deactivated.
example: 0
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
DELETE /cpms/v1/connectors/{uuid}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/connectors/{uuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"deleted": true,
"deactivatedAssignments": 0
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List diagnostic files a charger has uploaded (requires chargerId)
GET/cpms/v1/diagnostic-files
Query parameters
chargerIdstring · uuid · queryrequired
Filter by charger UUID.
Response — 200
dataarray of objectoptional
Uploaded diagnostics files for the charger, newest first.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/diagnostic-filesX-API-Key
curl 'https://api.proranked.com/cpms/v1/diagnostic-files' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"name": "SN-A1B2C3D4_20260619-184205.log",
"url": "https://blob.phevnix.com/diagnostics/SN-A1B2C3D4/SN-A1B2C3D4_20260619-184205.log",
"size": 204800,
"uploadedAt": "2026-06-19T18:43:30Z"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Operator SSE event stream (real-time updates scoped to the operator's networks)
GET/cpms/v1/events/stream
Query parameters
eventTypesstring · queryoptional
stationIdsstring · queryoptional
GET /cpms/v1/events/streamX-API-Key
curl 'https://api.proranked.com/cpms/v1/events/stream' \ -H 'X-API-Key: pr_live_…'
Try itruns against your network · response is live
Catalog of firmware images applicable to the operator's chargers
GET/cpms/v1/firmware
Query parameters
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
modelIdstring · uuid · queryoptional
Response — 200
dataarray of objectoptional
The page of firmware images.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items per page (1–100).
example: 25
totalinteger · int32optional
Total number of items across all pages.
example: 7
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 1
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/firmwareX-API-Key
curl 'https://api.proranked.com/cpms/v1/firmware' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "a1c2e3f4-5b6a-4c7d-8e9f-0a1b2c3d4e5f",
"version": "1.5.32",
"fileName": "evlink-1.5.32.bin",
"fileUrl": "https://firmware.phevnix.com/evlink/evlink-1.5.32.bin",
"fileSizeBytes": 8388608,
"releaseNotes": "Fixes intermittent MeterValues drop on AC connectors.",
"ocppVersionSupport": "1.6,2.0.1",
"checksum": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"isLatest": true,
"releasedAt": "2026-05-01T00:00:00Z",
"createdAt": "2026-05-01T00:00:00Z"
}
],
"pagination": {
"page": 1,
"pageSize": 25,
"total": 7,
"totalPages": 1
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List drivers on the operator's networks currently held for an unpaid balance
GET/cpms/v1/fraud/holds
Response — 200
dataarray of objectoptional
The drivers currently held on the operator's networks.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/fraud/holdsX-API-Key
curl 'https://api.proranked.com/cpms/v1/fraud/holds' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"driver_id": "1ae38f39-2b4c-4d5e-8f6a-7b8c9d0e1f2a",
"email": "driver@example.com",
"phone_verified": true,
"reason": "Unpaid idle-fee balance over threshold",
"held_at": "2026-06-18T09:21:44Z",
"outstanding_balance": 12.5
}
],
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Anti-fraud status for a driver (phone-verified, hold, outstanding balance)
GET/cpms/v1/fraud/drivers/{driverUuid}
Path & query parameters
driverUuidstring · uuid · pathrequired
Driver UUID.
Response — 200
dataobjectoptional
driver_idstring · uuidoptional
Stable driver UUID.
example: "1ae38f39-2b4c-4d5e-8f6a-7b8c9d0e1f2a"
emailstringoptional
Driver's email address.
example: "driver@example.com"
phone_verifiedbooleanoptional
True when the driver has completed phone verification.
example: true
phone_verified_atobject · date-timeoptional
UTC timestamp the driver verified their phone, or null.
example: "2026-05-30T11:02:00Z"
fraud_holdbooleanoptional
True when the driver is currently held.
example: true
fraud_hold_reasonstringoptional
Why the hold was placed, or null.
example: "Unpaid idle-fee balance over threshold"
fraud_hold_atobject · date-timeoptional
UTC timestamp the hold was placed, or null.
example: "2026-06-18T09:21:44Z"
outstanding_balancenumber · doubleoptional
The driver's outstanding (failed) balance across the operator's networks.
example: 12.5
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/fraud/drivers/{driverUuid}X-API-Key
curl 'https://api.proranked.com/cpms/v1/fraud/drivers/{driverUuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"driver_id": "1ae38f39-2b4c-4d5e-8f6a-7b8c9d0e1f2a",
"email": "driver@example.com",
"phone_verified": true,
"phone_verified_at": "2026-05-30T11:02:00Z",
"fraud_hold": true,
"fraud_hold_reason": "Unpaid idle-fee balance over threshold",
"fraud_hold_at": "2026-06-18T09:21:44Z",
"outstanding_balance": 12.5
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Clear a driver's fraud hold (optionally waive the outstanding balance so the live check passes)
POST/cpms/v1/fraud/drivers/{driverUuid}/clear-hold
Path & query parameters
driverUuidstring · uuid · pathrequired
Driver UUID.
Response — 200
dataobjectoptional
driver_idstring · uuidoptional
Stable driver UUID the action targeted.
example: "1ae38f39-2b4c-4d5e-8f6a-7b8c9d0e1f2a"
fraud_holdbooleanoptional
The driver's hold state AFTER the action — still true if the driver remains over-threshold on another operator's networks.
example: false
hold_clearedbooleanoptional
True when the global hold was actually cleared (the driver is no longer over-threshold anywhere).
example: true
sessions_waivedinteger · int32optional
How many of THIS operator's failed sessions were waived (0 unless waive=true was requested).
example: 2
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/fraud/drivers/{driverUuid}/clear-holdX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/fraud/drivers/{driverUuid}/clear-hold' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"driver_id": "1ae38f39-2b4c-4d5e-8f6a-7b8c9d0e1f2a",
"fraud_hold": false,
"hold_cleared": true,
"sessions_waived": 2
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Read the present load-balancing allocation/cap for one of the operator's stations
GET/cpms/v1/load-balancing/{stationOrLocationId}
Path & query parameters
stationOrLocationIdstring · pathrequired
Response — 200
dataobjectoptional
stationIdstring · uuidoptional
Station (location) UUID.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
enabledbooleanoptional
Whether load balancing is enabled for this station.
example: true
strategystringoptional
Active allocation strategy (from the highest-priority rule), or 'equal' if no rules exist.
example: "equal"
siteMaxPowerKwnumber · doubleoptional
Site-wide power cap for the station, in kW.
example: 150
safetyMarginPctnumber · doubleoptional
Safety margin reserved below the site cap, as a percentage (15–40).
example: 15
currentDrawKwobject · doubleoptional
Total power currently drawn across the station's chargers, in kW.
example: 29.6
allocatedKwobject · doubleoptional
Total power currently allocated across the station's chargers, in kW.
example: 44
evsesarray of objectoptional
Per-charger allocation/draw snapshot for the station.
rulesarray of objectoptional
Load-balancing rules configured for the station, ordered by priority.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/load-balancing/{stationOrLocationId}X-API-Key
curl 'https://api.proranked.com/cpms/v1/load-balancing/{stationOrLocationId}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"stationId": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"enabled": true,
"strategy": "equal",
"siteMaxPowerKw": 150,
"safetyMarginPct": 15,
"currentDrawKw": 29.6,
"allocatedKw": 44,
"evses": [
{
"evseId": "PR-A1B2C3",
"physicalRef": "Bay 3",
"maxPowerKw": 22,
"allocatedKw": 11,
"currentDrawKw": 7.4,
"status": "Charging",
"priority": 0
}
],
"rules": [
{
"id": "7c2b1a90-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"name": "Default",
"description": "Default load balancing rule",
"loadLimitKw": 150,
"loadLimitAmps": 0,
"numberOfPhases": 3,
"strategy": "equal",
"fallbackStrategy": "equal",
"priority": 0,
"isActive": true,
"startTime": "00:00",
"endTime": "23:59",
"daysOfWeek": "0123456"
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Update the load-balancing configuration for one of the operator's stations
PUT/cpms/v1/load-balancing/{stationOrLocationId}
Path & query parameters
stationOrLocationIdstring · pathrequired
Request body
enabledbooleanoptional
strategystringoptional
siteMaxPowerKwnumber · doubleoptional
safetyMarginPctnumber · doubleoptional
prioritiesobjectoptional
Response — 200
dataobjectoptional
stationIdstring · uuidoptional
Station (location) UUID that was updated.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
updatedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
PUT /cpms/v1/load-balancing/{stationOrLocationId}X-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/load-balancing/{stationOrLocationId}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"stationId": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"updated": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Trigger an immediate load-balancing rebalance for one of the operator's stations
POST/cpms/v1/load-balancing/{stationOrLocationId}/rebalance
Path & query parameters
stationOrLocationIdstring · pathrequired
Response — 202
dataobjectoptional
stationIdstringoptional
Station identifier (UUID, numeric LocationId, or slug) as supplied on the request path.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
rebalancedbooleanoptional
Always true once the rebalance has been accepted/queued.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/load-balancing/{stationOrLocationId}/rebalanceX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/load-balancing/{stationOrLocationId}/rebalance' \
-H 'X-API-Key: pr_live_…'Response · 202
{
"data": {
"stationId": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"rebalanced": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List the operator's locations/stations
GET/cpms/v1/locations
Query parameters
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
Response — 200
dataarray of objectoptional
The page of locations.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items requested per page (1–100; defaults to 50).
example: 50
totalinteger · int32optional
Total number of items across all pages.
example: 137
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/locationsX-API-Key
curl 'https://api.proranked.com/cpms/v1/locations' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "2a1b9c80-3d4e-4f5a-9b6c-7d8e9f0a1b2c",
"name": "Isla Verde Plaza",
"address": "8169 Calle Marginal",
"city": "Carolina",
"state": "PR",
"country": "US",
"networkId": 3
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"total": 137,
"totalPages": 3
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Create a location/site on one of the operator's networks
POST/cpms/v1/locations
Request body
namestringrequired
networkUuidstring · uuidoptional
addressstringoptional
citystringoptional
statestringoptional
countrystringoptional
postalCodestringoptional
contactPhonestringoptional
timezonestringoptional
latitudeobject · doubleoptional
longitudeobject · doubleoptional
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable location UUID of the newly created site.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
namestringoptional
Display name of the site.
example: "Isla Verde Plaza"
addressstringoptional
Street address of the site.
example: "100 Av. Isla Verde"
citystringoptional
City of the site.
example: "Carolina"
networkIdinteger · int32optional
Internal numeric id of the network the site was created on.
example: 3
createdbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/locationsX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/locations' \ -H 'X-API-Key: pr_live_…'
Response · 201
{
"data": {
"id": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Isla Verde Plaza",
"address": "100 Av. Isla Verde",
"city": "Carolina",
"networkId": 3,
"created": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Location/site detail
GET/cpms/v1/locations/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable location UUID.
example: "2a1b9c80-3d4e-4f5a-9b6c-7d8e9f0a1b2c"
namestringoptional
Human-readable site name.
example: "Isla Verde Plaza"
addressstringoptional
Street address of the site.
example: "8169 Calle Marginal"
citystringoptional
City the site is in.
example: "Carolina"
statestringoptional
State/region the site is in.
example: "PR"
countrystringoptional
Country code/name of the site.
example: "US"
postalCodestringoptional
Postal/ZIP code of the site.
example: "00979"
networkIdinteger · int32optional
Internal numeric id of the owning network.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/locations/{id}X-API-Key
curl 'https://api.proranked.com/cpms/v1/locations/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "2a1b9c80-3d4e-4f5a-9b6c-7d8e9f0a1b2c",
"name": "Isla Verde Plaza",
"address": "8169 Calle Marginal",
"city": "Carolina",
"state": "PR",
"country": "US",
"postalCode": "00979",
"networkId": 3
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Update a location/site
PUT/cpms/v1/locations/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Request body
namestringoptional
addressstringoptional
citystringoptional
statestringoptional
countrystringoptional
postalCodestringoptional
contactPhonestringoptional
timezonestringoptional
latitudeobject · doubleoptional
longitudeobject · doubleoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
UUID of the updated entity.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
updatedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
PUT /cpms/v1/locations/{id}X-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/locations/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"updated": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Soft-delete a location/site (blocks if chargers attached or sessions active)
DELETE/cpms/v1/locations/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
idstring · uuidoptional
UUID of the soft-deleted entity.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
deletedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
DELETE /cpms/v1/locations/{id}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/locations/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"deleted": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List the networks this key is authorized to operate
GET/cpms/v1/networks
Response — 200
dataarray of objectoptional
The networks this key is authorized to operate.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/networksX-API-Key
curl 'https://api.proranked.com/cpms/v1/networks' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "1ae38f39-2b4c-4d5e-8f6a-7b8c9d0e1f2a",
"name": "Isla Verde Network"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
CSV (or JSON) export of the operator's sessions/revenue for a date range
GET/cpms/v1/reports/export
Query parameters
typestring · queryoptional
formatstring · queryoptional
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
networkIdstring · uuid · queryoptional
GET /cpms/v1/reports/exportX-API-Key
curl 'https://api.proranked.com/cpms/v1/reports/export' \ -H 'X-API-Key: pr_live_…'
Try itruns against your network · response is live
List the operator's charging sessions
GET/cpms/v1/sessions
Query parameters
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
statusstring · queryoptional
Filter the results by status.
chargerIdstring · uuid · queryoptional
Filter by charger UUID.
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
Response — 200
dataarray of objectoptional
The page of sessions.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items requested per page (1–100; defaults to 50).
example: 50
totalinteger · int32optional
Total number of items across all pages.
example: 137
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/sessionsX-API-Key
curl 'https://api.proranked.com/cpms/v1/sessions' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "7c3d8e21-9a4b-4c5d-8e6f-1a2b3c4d5e6f",
"status": "COMPLETED",
"chargerId": 48,
"energyKwh": 18.42,
"total": 7.95,
"currency": "USD",
"startedAt": "2026-06-19T17:05:11Z",
"endedAt": "2026-06-19T18:12:43Z"
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"total": 137,
"totalPages": 3
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Charging session detail (energy, cost, timing)
GET/cpms/v1/sessions/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable session UUID.
example: "7c3d8e21-9a4b-4c5d-8e6f-1a2b3c4d5e6f"
statusstringoptional
Session lifecycle state (PENDING, ACTIVE, COMPLETED, FAULTED, …).
example: "ACTIVE"
chargerIdinteger · int32optional
Internal numeric id of the charger this session ran on.
example: 48
networkIdinteger · int32optional
Internal numeric id of the owning network.
example: 3
energyKwhnumber · doubleoptional
Energy delivered so far, in kWh.
example: 18.42
currentPowerKwnumber · doubleoptional
Instantaneous power draw, in kW, or null when not charging.
example: 11
totalnumber · doubleoptional
Total charged so far in the session currency, or null if not yet costed.
example: 7.95
currencystringoptional
ISO 4217 currency code the session is billed in.
example: "USD"
startedAtobject · date-timeoptional
UTC timestamp the session started.
example: "2026-06-19T17:05:11Z"
endedAtobject · date-timeoptional
UTC timestamp the session ended, or null if still active.
example: "2026-06-19T18:12:43Z"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/sessions/{id}X-API-Key
curl 'https://api.proranked.com/cpms/v1/sessions/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "7c3d8e21-9a4b-4c5d-8e6f-1a2b3c4d5e6f",
"status": "ACTIVE",
"chargerId": 48,
"networkId": 3,
"energyKwh": 18.42,
"currentPowerKw": 11,
"total": 7.95,
"currency": "USD",
"startedAt": "2026-06-19T17:05:11Z",
"endedAt": "2026-06-19T18:12:43Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Refund a session's charge (reverses the operator transfer) — off-by-default money action
POST/cpms/v1/sessions/{id}/refund
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
sessionIdstring · uuidoptional
UUID supplied to identify the session that was refunded.
example: "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f"
refundIdstringoptional
Payment-processor refund id (e.g. a Stripe refund id).
example: "re_3PXyZ2EXAMPLE0001"
refundedAmountnumber · doubleoptional
Amount that was refunded (in the session currency).
example: 9.82
currencystringoptional
ISO-4217 currency of the refunded amount.
example: "USD"
paymentIntentstringoptional
The Stripe PaymentIntent id (pi_...) that was reversed.
example: "pi_3PXyZ2EXAMPLE0001"
refundedbooleanoptional
Always true on a successful refund.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/sessions/{id}/refundX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/sessions/{id}/refund' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"sessionId": "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f",
"refundId": "re_3PXyZ2EXAMPLE0001",
"refundedAmount": 9.82,
"currency": "USD",
"paymentIntent": "pi_3PXyZ2EXAMPLE0001",
"refunded": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator force-close a hung charging session (live control)
POST/cpms/v1/sessions/{id}/force-stop
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
sessionIdstring · uuidoptional
UUID of the session that was force-stopped.
example: "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f"
stoppedbooleanoptional
Always true once the session has been finalized to COMPLETED.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/sessions/{id}/force-stopX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/sessions/{id}/force-stop' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"sessionId": "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f",
"stopped": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Read the operator's network settings (the fields safe for self-service)
GET/cpms/v1/settings
Query parameters
networkUuidstring · uuid · queryoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable network UUID.
example: "c0ffee00-1234-4567-89ab-cdef01234567"
namestringoptional
Network display name.
example: "Isla Verde Charging"
descriptionstringoptional
Network description.
example: "Public charging across the Isla Verde district."
contactEmailstringoptional
Network contact email.
example: "ops@islaverde.example.com"
contactPhonestringoptional
Network contact phone.
example: "+1-787-555-0100"
websitestringoptional
Network public website, or null.
example: "https://islaverde.example.com"
countrystringoptional
ISO country code for the network.
example: "US"
currencystringoptional
ISO-4217 default currency for the network.
example: "USD"
timeZonestringoptional
IANA time zone; defaults to UTC.
example: "America/Puerto_Rico"
isActivebooleanoptional
True when the network is active.
example: true
brandingobjectoptional
primaryColorstringoptional
Primary brand color (hex), falling back to the legacy PrimaryColorHex column.
example: "#E2231A"
secondaryColorstringoptional
Secondary brand color (hex), falling back to the legacy SecondaryColorHex column.
example: "#1A1A1A"
logoUrlstringoptional
URL of the network logo image, or null.
example: "https://cdn.example.com/logo.svg"
faviconUrlstringoptional
URL of the network favicon, or null.
example: "https://cdn.example.com/favicon.ico"
billingobjectoptional
vatRatenumber · doubleoptional
VAT / tax rate (percent) applied to invoices; defaults to 0.
example: 11.5
billingAddressstringoptional
Billing address for invoices, or null.
example: "100 Av. Isla Verde, Carolina, PR 00979"
invoicePrefixstringoptional
Prefix prepended to invoice numbers; defaults to INV.
example: "INV"
paymentTermsDaysinteger · int32optional
Invoice payment terms in days; defaults to 30.
example: 30
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/settingsX-API-Key
curl 'https://api.proranked.com/cpms/v1/settings' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"id": "c0ffee00-1234-4567-89ab-cdef01234567",
"name": "Isla Verde Charging",
"description": "Public charging across the Isla Verde district.",
"contactEmail": "ops@islaverde.example.com",
"contactPhone": "+1-787-555-0100",
"website": "https://islaverde.example.com",
"country": "US",
"currency": "USD",
"timeZone": "America/Puerto_Rico",
"isActive": true,
"branding": {
"primaryColor": "#E2231A",
"secondaryColor": "#1A1A1A",
"logoUrl": "https://cdn.example.com/logo.svg",
"faviconUrl": "https://cdn.example.com/favicon.ico"
},
"billing": {
"vatRate": 11.5,
"billingAddress": "100 Av. Isla Verde, Carolina, PR 00979",
"invoicePrefix": "INV",
"paymentTermsDays": 30
}
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Update the operator's network settings (self-service subset only)
PUT/cpms/v1/settings
Query parameters
networkUuidstring · uuid · queryoptional
Request body
namestringoptional
descriptionstringoptional
contactEmailstringoptional
contactPhonestringoptional
websitestringoptional
timeZonestringoptional
currencystringoptional
brandingobjectoptional
billingobjectoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable network UUID that was updated.
example: "c0ffee00-1234-4567-89ab-cdef01234567"
updatedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
PUT /cpms/v1/settingsX-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/settings' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"id": "c0ffee00-1234-4567-89ab-cdef01234567",
"updated": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Get the effective charging limit (composite schedule) for one of the operator's connectors
GET/cpms/v1/smart-charging/{chargerUuid}/limit
Path & query parameters
chargerUuidstring · uuid · pathrequired
connectorinteger · int32 · queryoptional
unitstring · queryoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
UUID of the charger the limit was read from.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number on the charger the limit applies to (1-based).
example: 1
unitstringoptional
Charging rate unit of the schedule: A (amps) or W (watts).
example: "A"
acceptedbooleanoptional
True if the station accepted and answered the GetCompositeSchedule request.
example: true
scheduleobjectoptional
Raw OCPP composite-schedule payload returned by the station, or null if it did not answer. Shape follows the OCPP 1.6 GetCompositeSchedule.conf payload.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/smart-charging/{chargerUuid}/limitX-API-Key
curl 'https://api.proranked.com/cpms/v1/smart-charging/{chargerUuid}/limit' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"unit": "A",
"accepted": true,
"schedule": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Set a per-connector charging limit (A or W) on one of the operator's chargers
PUT/cpms/v1/smart-charging/{chargerUuid}/limit
Path & query parameters
chargerUuidstring · uuid · pathrequired
Request body
connectorNumberinteger · int32optional
unitstringoptional
limitnumber · doubleoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
UUID of the charger the limit was applied to.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number the limit was applied to (1-based).
example: 1
unitstringoptional
Charging rate unit of the applied limit: A (amps) or W (watts).
example: "A"
limitnumber · doubleoptional
The numeric limit requested, in the given unit.
example: 32
profileIdinteger · int32optional
OCPP charging-profile id used for this operator cap (reserved id range so it is individually clearable).
example: 90001
acceptedbooleanoptional
True if the station accepted the SetChargingProfile request.
example: true
reasonstringoptional
Null when accepted; otherwise the station's rejection reason.
example: "The charger rejected the request."
retryablebooleanoptional
True if the request can be safely retried (transient failure / charger offline).
example: false
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
PUT /cpms/v1/smart-charging/{chargerUuid}/limitX-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/smart-charging/{chargerUuid}/limit' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"unit": "A",
"limit": 32,
"profileId": 90001,
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Clear the operator-set charging limit on one of the operator's connectors
DELETE/cpms/v1/smart-charging/{chargerUuid}/limit
Path & query parameters
chargerUuidstring · uuid · pathrequired
connectorinteger · int32 · queryoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
UUID of the charger the cap was cleared from.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number the cap was cleared from (1-based).
example: 1
profileIdinteger · int32optional
OCPP charging-profile id that was cleared (the reserved operator-cap id).
example: 90001
acceptedbooleanoptional
True if the station accepted the ClearChargingProfile request.
example: true
reasonstringoptional
Null when accepted; otherwise the station's rejection reason.
example: "The charger rejected the request."
retryablebooleanoptional
True if the request can be safely retried (transient failure / charger offline).
example: false
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
DELETE /cpms/v1/smart-charging/{chargerUuid}/limitX-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/smart-charging/{chargerUuid}/limit' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"profileId": 90001,
"accepted": true,
"reason": "The charger rejected the request.",
"retryable": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Read the OCPP composite schedule for one of the operator's connectors
GET/cpms/v1/smart-charging/{chargerUuid}/composite-schedule
Path & query parameters
chargerUuidstring · uuid · pathrequired
connectorinteger · int32 · queryoptional
durationinteger · int32 · queryoptional
unitstring · queryoptional
Response — 200
dataobjectoptional
chargerIdstring · uuidoptional
UUID of the charger the schedule was read from.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorNumberinteger · int32optional
Connector number the schedule applies to (1-based).
example: 1
durationSecondsinteger · int32optional
Look-ahead window of the composite schedule, in seconds (1–86400).
example: 3600
unitstringoptional
Charging rate unit of the schedule: A (amps) or W (watts).
example: "A"
acceptedbooleanoptional
True if the station accepted and answered the GetCompositeSchedule request.
example: true
scheduleobjectoptional
Raw OCPP composite-schedule payload returned by the station, or null if it did not answer. Shape follows the OCPP 1.6 GetCompositeSchedule.conf payload.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/smart-charging/{chargerUuid}/composite-scheduleX-API-Key
curl 'https://api.proranked.com/cpms/v1/smart-charging/{chargerUuid}/composite-schedule' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"chargerId": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorNumber": 1,
"durationSeconds": 3600,
"unit": "A",
"accepted": true,
"schedule": null
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List the operator's tariffs
GET/cpms/v1/tariffs
Query parameters
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
Response — 200
dataarray of objectoptional
The page of tariffs.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items requested per page (1–100; defaults to 50).
example: 50
totalinteger · int32optional
Total number of items across all pages.
example: 137
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/tariffsX-API-Key
curl 'https://api.proranked.com/cpms/v1/tariffs' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "5e6f1a2b-3c4d-4e5f-8a9b-0c1d2e3f4a5b",
"name": "Standard AC",
"type": "REGULAR",
"currency": "USD",
"energyRate": 0.35,
"timeRate": 2,
"idleRate": 0.5,
"isFree": false
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"total": 137,
"totalPages": 3
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Create a new tariff on one of the operator's networks
POST/cpms/v1/tariffs
Request body
namestringrequired
networkUuidstring · uuidoptional
descriptionstringoptional
currencystringoptional
energyRatenumber · doubleoptional
timeRatenumber · doubleoptional
sessionFeenumber · doubleoptional
idleRatenumber · doubleoptional
idleGracePeriodMinutesinteger · int32optional
peakHoursStartstringoptional
peakHoursEndstringoptional
peakMultipliernumber · doubleoptional
weekendMultipliernumber · doubleoptional
taxRatenumber · doubleoptional
isFreebooleanoptional
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable UUID of the newly-created tariff.
example: "d4e5f6a7-b8c9-4012-8345-6789abcdef01"
namestringoptional
Tariff name.
example: "Standard AC"
currencystringoptional
ISO-4217 currency of the tariff (defaults to the network currency when omitted).
example: "USD"
networkIdstring · uuidoptional
UUID of the network the tariff was created on.
example: "c0ffee00-1234-4567-89ab-cdef01234567"
createdbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/tariffsX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/tariffs' \ -H 'X-API-Key: pr_live_…'
Response · 201
{
"data": {
"id": "d4e5f6a7-b8c9-4012-8345-6789abcdef01",
"name": "Standard AC",
"currency": "USD",
"networkId": "c0ffee00-1234-4567-89ab-cdef01234567",
"created": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Tariff detail (rates, currency)
GET/cpms/v1/tariffs/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable tariff UUID.
example: "5e6f1a2b-3c4d-4e5f-8a9b-0c1d2e3f4a5b"
namestringoptional
Human-readable tariff name.
example: "Standard AC"
typestringoptional
Tariff type/category (e.g. AD_HOC_PAYMENT, REGULAR).
example: "REGULAR"
currencystringoptional
ISO 4217 currency code the rates are quoted in.
example: "USD"
energyRatenumber · doubleoptional
Price per kWh of energy delivered, or null if energy is not billed.
example: 0.35
timeRatenumber · doubleoptional
Price per hour of charging time, or null if time is not billed.
example: 2
idleRatenumber · doubleoptional
Idle/overstay fee per hour once charging completes.
example: 0.5
sessionFeenumber · doubleoptional
Flat fee charged per session, or null if there is no session fee.
example: 1
isFreebooleanoptional
True if this tariff carries no charge to the driver.
example: false
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/tariffs/{id}X-API-Key
curl 'https://api.proranked.com/cpms/v1/tariffs/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "5e6f1a2b-3c4d-4e5f-8a9b-0c1d2e3f4a5b",
"name": "Standard AC",
"type": "REGULAR",
"currency": "USD",
"energyRate": 0.35,
"timeRate": 2,
"idleRate": 0.5,
"sessionFee": 1,
"isFree": false
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Update tariff pricing and fields
PUT/cpms/v1/tariffs/{tariffUuid}
Path & query parameters
tariffUuidstring · uuid · pathrequired
Request body
namestringoptional
descriptionstringoptional
energyRatenumber · doubleoptional
timeRatenumber · doubleoptional
sessionFeenumber · doubleoptional
idleRatenumber · doubleoptional
idleGracePeriodMinutesinteger · int32optional
idleFeeEnabledbooleanoptional
idleFeeMaximumnumber · doubleoptional
taxRatenumber · doubleoptional
peakHoursStartstringoptional
peakHoursEndstringoptional
peakMultipliernumber · doubleoptional
weekendMultipliernumber · doubleoptional
isFreebooleanoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable UUID of the updated tariff.
example: "d4e5f6a7-b8c9-4012-8345-6789abcdef01"
updatedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
PUT /cpms/v1/tariffs/{tariffUuid}X-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/tariffs/{tariffUuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "d4e5f6a7-b8c9-4012-8345-6789abcdef01",
"updated": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Soft-delete a tariff (cascade-deactivates its assignments)
DELETE/cpms/v1/tariffs/{tariffUuid}
Path & query parameters
tariffUuidstring · uuid · pathrequired
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable UUID of the soft-deleted tariff.
example: "d4e5f6a7-b8c9-4012-8345-6789abcdef01"
deletedbooleanoptional
Always true on success.
example: true
deactivatedAssignmentsinteger · int32optional
How many active tariff assignments were cascade-deactivated by the delete.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
DELETE /cpms/v1/tariffs/{tariffUuid}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/tariffs/{tariffUuid}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "d4e5f6a7-b8c9-4012-8345-6789abcdef01",
"deleted": true,
"deactivatedAssignments": 3
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Assign a tariff to a network, location, charger, or connector
POST/cpms/v1/tariffs/{tariffUuid}/assign
Path & query parameters
tariffUuidstring · uuid · pathrequired
Request body
locationUuidstring · uuidoptional
chargerUuidstring · uuidoptional
connectorUuidstring · uuidoptional
Response — 201
dataobjectoptional
assignmentIdstring · uuidoptional
Stable UUID of the new tariff assignment.
example: "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b"
tariffIdstring · uuidoptional
UUID of the tariff that was assigned.
example: "b2c3d4e5-6f70-8192-a3b4-c5d6e7f8a9b0"
levelstringoptional
Resolved assignment level (Network, Location, Charger, or Connector) — most-specific target wins.
example: "Charger"
locationUuidstring · uuidoptional
Location target UUID if supplied, else null.
example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
chargerUuidstring · uuidoptional
Charger target UUID if supplied, else null.
example: "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b"
connectorUuidstring · uuidoptional
Connector target UUID if supplied, else null.
example: "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d"
assignedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/tariffs/{tariffUuid}/assignX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/tariffs/{tariffUuid}/assign' \
-H 'X-API-Key: pr_live_…'Response · 201
{
"data": {
"assignmentId": "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b",
"tariffId": "b2c3d4e5-6f70-8192-a3b4-c5d6e7f8a9b0",
"level": "Charger",
"locationUuid": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"chargerUuid": "4b2e9c10-7d8a-4a6e-9b1f-2c3d4e5f6a7b",
"connectorUuid": "9f1c2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"assigned": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List active assignments for a tariff
GET/cpms/v1/tariffs/{tariffUuid}/assignments
Path & query parameters
tariffUuidstring · uuid · pathrequired
Response — 200
dataarray of objectoptional
The tariff's active assignments.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/tariffs/{tariffUuid}/assignmentsX-API-Key
curl 'https://api.proranked.com/cpms/v1/tariffs/{tariffUuid}/assignments' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": [
{
"assignmentId": "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b",
"level": "Charger",
"locationId": 12,
"chargerId": 45,
"connectorId": 89,
"startDate": "2026-06-01T12:00:00Z",
"priority": 0
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Detach (deactivate) a tariff assignment
DELETE/cpms/v1/tariffs/assignments/{assignmentId}
Path & query parameters
assignmentIdstring · uuid · pathrequired
Response — 200
dataobjectoptional
assignmentIdstring · uuidoptional
UUID of the assignment that was detached.
example: "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b"
detachedbooleanoptional
True once the assignment has been deactivated.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
DELETE /cpms/v1/tariffs/assignments/{assignmentId}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/tariffs/assignments/{assignmentId}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"assignmentId": "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b",
"detached": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List the operator's team members
GET/cpms/v1/team
Query parameters
networkUuidstring · uuid · queryoptional
Response — 200
dataarray of objectoptional
The operator's team members.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/teamX-API-Key
curl 'https://api.proranked.com/cpms/v1/team' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "11111111-2222-4333-8444-555566667777",
"email": "manager@islaverde.example.com",
"firstName": "Maria",
"lastName": "Rivera",
"role": "Manager",
"joinedAt": "2026-03-12T08:00:00Z",
"lastActiveAt": "2026-06-19T17:55:00Z"
}
],
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Add an existing platform user to the operator's team
POST/cpms/v1/team
Query parameters
networkUuidstring · uuid · queryoptional
Request body
emailstringoptional
rolestringoptional
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable user UUID of the added member.
example: "11111111-2222-4333-8444-555566667777"
emailstringoptional
Added member's email address.
example: "manager@islaverde.example.com"
rolestringoptional
Role the member was granted.
example: "Manager"
addedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/teamX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/team' \ -H 'X-API-Key: pr_live_…'
Response · 201
{
"data": {
"id": "11111111-2222-4333-8444-555566667777",
"email": "manager@islaverde.example.com",
"role": "Manager",
"added": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Update a team member's role
PUT/cpms/v1/team/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
networkUuidstring · uuid · queryoptional
Request body
rolestringoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable user UUID of the updated member.
example: "11111111-2222-4333-8444-555566667777"
rolestringoptional
The role now assigned.
example: "Admin"
updatedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
PUT /cpms/v1/team/{id}X-API-Key
curl -X PUT 'https://api.proranked.com/cpms/v1/team/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "11111111-2222-4333-8444-555566667777",
"role": "Admin",
"updated": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Remove a team member from the operator's network
DELETE/cpms/v1/team/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
networkUuidstring · uuid · queryoptional
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable user UUID of the removed member.
example: "11111111-2222-4333-8444-555566667777"
removedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
DELETE /cpms/v1/team/{id}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/team/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "11111111-2222-4333-8444-555566667777",
"removed": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Operator CDR / transaction ledger (paged; filters: chargerId, from, to) with cost/profit/payout fields
GET/cpms/v1/transactions
Query parameters
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
chargerIdstring · uuid · queryoptional
Filter by charger UUID.
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
Response — 200
dataarray of objectoptional
The page of transactions (CDRs).
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items requested per page (1–100; defaults to 50).
example: 50
totalinteger · int32optional
Total number of items across all pages.
example: 412
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 9
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/transactionsX-API-Key
curl 'https://api.proranked.com/cpms/v1/transactions' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "7c1a2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"ocpiId": "CDR-2026-000123",
"sessionId": "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f",
"chargerUid": "CP-IslaVerde-01",
"locationName": "Isla Verde Plaza",
"startTime": "2026-06-19T14:02:11Z",
"endTime": "2026-06-19T14:48:53Z",
"energyKwh": 23.4,
"amount": 9.82,
"currency": "USD",
"paymentStatus": "succeeded",
"paymentMethod": "card",
"paymentReference": "pi_3PXyZ2EXAMPLE0001",
"energyCost": 4.1,
"timeCost": 0,
"sessionFee": 0.5,
"processingFees": 0.41,
"totalCosts": 5.01,
"grossProfit": 5.31,
"netProfit": 4.81,
"profitMarginPercent": 48.9,
"taxAmount": 0,
"payoutId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"isFree": false
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"total": 412,
"totalPages": 9
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Export the operator's CDRs for a date range as CSV (Form 480 / reconciliation)
GET/cpms/v1/transactions/export
Query parameters
fromobject · date-time · queryoptional
Start of the time range (inclusive), ISO-8601.
toobject · date-time · queryoptional
End of the time range (inclusive), ISO-8601.
chargerIdstring · uuid · queryoptional
Filter by charger UUID.
GET /cpms/v1/transactions/exportX-API-Key
curl 'https://api.proranked.com/cpms/v1/transactions/export' \ -H 'X-API-Key: pr_live_…'
Try itruns against your network · response is live
Operator transaction (CDR) detail with full cost breakdown, profit summary, and payout id
GET/cpms/v1/transactions/{id}
Path & query parameters
idstring · uuid · pathrequired
The resource identifier.
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable CDR UUID.
example: "7c1a2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d"
ocpiIdstringoptional
OCPI CDR id, or null.
example: "CDR-2026-000123"
sessionIdstring · uuidoptional
UUID of the linked charging session, or null.
example: "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f"
startTimeobject · date-timeoptional
UTC timestamp the session started.
example: "2026-06-19T14:02:11Z"
endTimeobject · date-timeoptional
UTC timestamp the session ended.
example: "2026-06-19T14:48:53Z"
energyKwhnumber · doubleoptional
Total energy delivered, in kWh.
example: 23.4
totalTimeMinutesnumber · doubleoptional
Total occupancy time of the session, in minutes (CDR time is stored in hours).
example: 46.7
currencystringoptional
ISO-4217 currency of the amounts.
example: "USD"
amountnumber · doubleoptional
Total amount charged to the driver.
example: 9.82
paymentStatusstringoptional
Payment status of the CDR.
example: "succeeded"
paymentMethodstringoptional
Payment method used.
example: "card"
paymentReferencestringoptional
Payment-processor reference for the charge.
example: "pi_3PXyZ2EXAMPLE0001"
authMethodstringoptional
How the session was authorized (e.g. RFID, AppUser, AuthRequest).
example: "AppUser"
authorizationReferencestringoptional
Authorization reference for the session (e.g. the Stripe PaymentIntent id).
example: "pi_3PXyZ2EXAMPLE0001"
isFreebooleanoptional
True when the session was free.
example: false
locationNamestringoptional
Name of the session's location, or null.
example: "Isla Verde Plaza"
locationAddressstringoptional
Street address of the session's location, or null.
example: "100 Av. Isla Verde, Carolina"
chargerUidstringoptional
OCPP charge-point identity of the station, or null.
example: "CP-IslaVerde-01"
connectorNumberinteger · int32optional
Connector number used (1-based), or null.
example: 1
costBreakdownobjectoptional
energyCostnumber · doubleoptional
Operator cost attributable to delivered energy.
example: 4.1
timeCostnumber · doubleoptional
Operator cost attributable to occupancy time.
example: 0
sessionFeenumber · doubleoptional
Fixed per-session cost component.
example: 0.5
processingFeesnumber · doubleoptional
Payment-processing fees borne for this CDR.
example: 0.41
subtotalnumber · doubleoptional
energyCost + timeCost + sessionFee, before tax.
example: 4.6
taxnumber · doubleoptional
Tax applied to this CDR (0 when none).
example: 0
taxRatenumber · doubleoptional
Tax rate (percent) applied, or null when no tax rate is set.
example: 11.5
totalnumber · doubleoptional
Total amount charged to the driver (matches the CDR amount).
example: 9.82
totalCostsnumber · doubleoptional
Sum of all operator costs for this CDR.
example: 5.01
profitobjectoptional
grossProfitnumber · doubleoptional
Gross profit (amount minus direct costs).
example: 5.31
netProfitnumber · doubleoptional
Net profit after fees.
example: 4.81
profitMarginPercentnumber · doubleoptional
Net profit as a percentage of the amount charged.
example: 48.9
payoutobjectoptional
invoiceNumberstringoptional
Invoice number, if an invoice was generated.
example: "INV-2026-000123"
invoiceDateobject · date-timeoptional
UTC date the invoice was generated, or null.
example: "2026-06-20T00:00:00Z"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
GET /cpms/v1/transactions/{id}X-API-Key
curl 'https://api.proranked.com/cpms/v1/transactions/{id}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "7c1a2b30-4d5e-6a7b-8c9d-0e1f2a3b4c5d",
"ocpiId": "CDR-2026-000123",
"sessionId": "3f5d6e70-8a9b-4c1d-2e3f-4a5b6c7d8e9f",
"startTime": "2026-06-19T14:02:11Z",
"endTime": "2026-06-19T14:48:53Z",
"energyKwh": 23.4,
"totalTimeMinutes": 46.7,
"currency": "USD",
"amount": 9.82,
"paymentStatus": "succeeded",
"paymentMethod": "card",
"paymentReference": "pi_3PXyZ2EXAMPLE0001",
"authMethod": "AppUser",
"authorizationReference": "pi_3PXyZ2EXAMPLE0001",
"isFree": false,
"locationName": "Isla Verde Plaza",
"locationAddress": "100 Av. Isla Verde, Carolina",
"chargerUid": "CP-IslaVerde-01",
"connectorNumber": 1,
"costBreakdown": {
"energyCost": 4.1,
"timeCost": 0,
"sessionFee": 0.5,
"processingFees": 0.41,
"subtotal": 4.6,
"tax": 0,
"taxRate": 11.5,
"total": 9.82,
"totalCosts": 5.01
},
"profit": {
"grossProfit": 5.31,
"netProfit": 4.81,
"profitMarginPercent": 48.9
},
"payout": null,
"invoiceNumber": "INV-2026-000123",
"invoiceDate": "2026-06-20T00:00:00Z"
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
API consumption rollup (metering) for this key's networks
GET/cpms/v1/usage
Query parameters
daysinteger · int32 · queryoptional
Look-back window, in days.
Response — 200
dataobjectoptional
totalRequestsinteger · int64optional
Sum of requests across every returned day.
example: 54210
totalUnitsinteger · int64optional
Sum of metered units across every returned day.
example: 54210
sinceUtcobject · date-timeoptional
Start of the rollup window (UTC, inclusive).
example: "2026-05-20T00:00:00Z"
dailyarray of objectoptional
Per-day consumption rows, newest first.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/usageX-API-Key
curl 'https://api.proranked.com/cpms/v1/usage' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": {
"totalRequests": 54210,
"totalUnits": 54210,
"sinceUtc": "2026-05-20T00:00:00Z",
"daily": [
{
"date": "2026-06-19T00:00:00Z",
"family": "cpms",
"env": "live",
"requests": 1842,
"units": 1842
}
]
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List the operator's webhook subscriptions
GET/cpms/v1/webhooks
Response — 200
dataarray of objectoptional
The operator's webhook subscriptions.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/webhooksX-API-Key
curl 'https://api.proranked.com/cpms/v1/webhooks' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
{
"id": "c7e1a2b3-4d5e-6f70-8192-a3b4c5d6e7f8",
"url": "https://example.com/webhooks/phevnix",
"events": "session.started,session.completed",
"description": "Billing pipeline",
"is_active": true,
"consecutive_failures": 0,
"disabled_at": "2026-06-19T18:42:07Z",
"disabled_reason": "Too many consecutive delivery failures",
"created_at": "2026-06-01T12:00:00Z",
"updated_at": "2026-06-19T18:42:09Z"
}
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Create a webhook subscription for the operator's network
POST/cpms/v1/webhooks
Request body
urlstringrequired
eventsstringrequired
descriptionstringrequired
Response — 201
dataobjectoptional
idstring · uuidoptional
Stable UUID of the new webhook subscription. Use it in DELETE /webhooks/{webhookId}.
example: "e1d2c3b4-a596-4877-8c9d-0e1f2a3b4c5d"
urlstringoptional
The HTTPS endpoint events will be POSTed to.
example: "https://hooks.example.com/phevnix"
eventsstringoptional
Comma-separated event types subscribed to, or '*' for all events.
example: "session.started,session.completed"
descriptionstringoptional
Operator-chosen description of the subscription.
example: "Billing reconciliation hook"
hmac_secretstringoptional
The HMAC signing secret for verifying delivery signatures. Returned ONCE on create — store it now.
example: "whsec_3f9a2c8e7b1d4f60a5c3e2d1b0a9f8e7"
is_activebooleanoptional
True when the subscription is active and will receive deliveries.
example: true
created_atobject · date-timeoptional
UTC timestamp the subscription was created.
example: "2026-06-20T18:42:09Z"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
POST /cpms/v1/webhooksX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/webhooks' \ -H 'X-API-Key: pr_live_…'
Response · 201
{
"data": {
"id": "e1d2c3b4-a596-4877-8c9d-0e1f2a3b4c5d",
"url": "https://hooks.example.com/phevnix",
"events": "session.started,session.completed",
"description": "Billing reconciliation hook",
"hmac_secret": "whsec_3f9a2c8e7b1d4f60a5c3e2d1b0a9f8e7",
"is_active": true,
"created_at": "2026-06-20T18:42:09Z"
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Update / re-enable a webhook subscription owned by the operator
PATCH/cpms/v1/webhooks/{webhookId}
Path & query parameters
webhookIdstring · uuid · pathrequired
Request body
urlstringrequired
eventsarray of stringrequired
descriptionstringrequired
isActivebooleanrequired
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable webhook subscription UUID.
example: "c7e1a2b3-4d5e-6f70-8192-a3b4c5d6e7f8"
urlstringoptional
HTTPS endpoint deliveries are POSTed to.
example: "https://example.com/webhooks/phevnix"
eventsstringoptional
Subscribed event types as a comma-separated list, or '*' for all events.
example: "session.started,session.completed"
descriptionstringoptional
Optional operator-set label for the subscription.
example: "Billing pipeline"
is_activebooleanoptional
Whether the subscription is currently active (false once auto-disabled by repeated failures).
example: true
consecutive_failuresinteger · int32optional
Count of consecutive failed deliveries; resets to 0 on a success or on re-enable.
example: 0
disabled_atobject · date-timeoptional
UTC time the subscription was auto-disabled, or null if active.
example: "2026-06-19T18:42:07Z"
disabled_reasonstringoptional
Why the subscription was disabled, or null if active.
example: "Too many consecutive delivery failures"
created_atobject · date-timeoptional
UTC time the subscription was created.
example: "2026-06-01T12:00:00Z"
updated_atobject · date-timeoptional
UTC time the subscription was last updated.
example: "2026-06-19T18:42:09Z"
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
PATCH /cpms/v1/webhooks/{webhookId}X-API-Key
curl -X PATCH 'https://api.proranked.com/cpms/v1/webhooks/{webhookId}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "c7e1a2b3-4d5e-6f70-8192-a3b4c5d6e7f8",
"url": "https://example.com/webhooks/phevnix",
"events": "session.started,session.completed",
"description": "Billing pipeline",
"is_active": true,
"consecutive_failures": 0,
"disabled_at": "2026-06-19T18:42:07Z",
"disabled_reason": "Too many consecutive delivery failures",
"created_at": "2026-06-01T12:00:00Z",
"updated_at": "2026-06-19T18:42:09Z"
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Delete a webhook subscription owned by the operator
DELETE/cpms/v1/webhooks/{webhookId}
Path & query parameters
webhookIdstring · uuid · pathrequired
Response — 200
dataobjectoptional
idstring · uuidoptional
Stable UUID of the deleted webhook subscription.
example: "e1d2c3b4-a596-4877-8c9d-0e1f2a3b4c5d"
deletedbooleanoptional
Always true on success.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-20T18:42:09Z"
DELETE /cpms/v1/webhooks/{webhookId}X-API-Key
curl -X DELETE 'https://api.proranked.com/cpms/v1/webhooks/{webhookId}' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"id": "e1d2c3b4-a596-4877-8c9d-0e1f2a3b4c5d",
"deleted": true
},
"success": true,
"timestamp": "2026-06-20T18:42:09Z"
}Try itruns against your network · response is live
Send a test event to a webhook subscription
POST/cpms/v1/webhooks/{webhookId}/test
Path & query parameters
webhookIdstring · uuid · pathrequired
Response — 200
dataobjectoptional
webhook_idstring · uuidoptional
UUID of the subscription the test event was enqueued for.
example: "c7e1a2b3-4d5e-6f70-8192-a3b4c5d6e7f8"
test_enqueuedbooleanoptional
Always true once the synthetic webhook.test event has been enqueued.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/webhooks/{webhookId}/testX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/webhooks/{webhookId}/test' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": {
"webhook_id": "c7e1a2b3-4d5e-6f70-8192-a3b4c5d6e7f8",
"test_enqueued": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
List recent delivery attempts for a webhook subscription
GET/cpms/v1/webhooks/{webhookId}/deliveries
Path & query parameters
webhookIdstring · uuid · pathrequired
pageinteger · int32 · queryoptional
Page number (1-based). Defaults to 1.
pageSizeinteger · int32 · queryoptional
Number of items per page (1–100). Defaults to 50.
Response — 200
dataarray of objectoptional
The page of delivery attempts, most recent first.
paginationobjectoptional
pageinteger · int32optional
1-based page index of this result set.
example: 1
pageSizeinteger · int32optional
Items requested per page (1–100; defaults to 20).
example: 20
totalinteger · int32optional
Total number of deliveries across all pages.
example: 42
totalPagesinteger · int32optional
Total number of pages at the current pageSize.
example: 3
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/webhooks/{webhookId}/deliveriesX-API-Key
curl 'https://api.proranked.com/cpms/v1/webhooks/{webhookId}/deliveries' \
-H 'X-API-Key: pr_live_…'Response · 200
{
"data": [
{
"id": "d1e2f3a4-5b6c-7d8e-9f01-2a3b4c5d6e7f",
"event_type": "session.completed",
"http_status": 200,
"success": true,
"status": "Delivered",
"attempts": 1,
"max_attempts": 5,
"duration_ms": 142,
"next_retry_at": "2026-06-19T18:47:09Z",
"created_at": "2026-06-19T18:42:00Z",
"completed_at": "2026-06-19T18:42:09Z"
}
],
"pagination": {
"page": 1,
"pageSize": 20,
"total": 42,
"totalPages": 3
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Retry a webhook delivery attempt
POST/cpms/v1/webhooks/{webhookId}/deliveries/{deliveryId}/retry
Path & query parameters
webhookIdstring · uuid · pathrequired
deliveryIdstring · uuid · pathrequired
Response — 202
dataobjectoptional
delivery_idstring · uuidoptional
UUID of the delivery that was re-enqueued.
example: "d1e2f3a4-5b6c-7d8e-9f01-2a3b4c5d6e7f"
retry_enqueuedbooleanoptional
Always true once the delivery has been marked Pending for retry.
example: true
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
POST /cpms/v1/webhooks/{webhookId}/deliveries/{deliveryId}/retryX-API-Key
curl -X POST 'https://api.proranked.com/cpms/v1/webhooks/{webhookId}/deliveries/{deliveryId}/retry' \
-H 'X-API-Key: pr_live_…'Response · 202
{
"data": {
"delivery_id": "d1e2f3a4-5b6c-7d8e-9f01-2a3b4c5d6e7f",
"retry_enqueued": true
},
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live
Catalog of available webhook event types
GET/cpms/v1/webhooks/event-types
Response — 200
dataarray of stringoptional
The canonical catalog of subscribable webhook event types.
successbooleanoptional
Always true on a 2xx response.
example: true
timestampobject · date-timeoptional
UTC time the response was generated.
example: "2026-06-19T18:42:09Z"
GET /cpms/v1/webhooks/event-typesX-API-Key
curl 'https://api.proranked.com/cpms/v1/webhooks/event-types' \ -H 'X-API-Key: pr_live_…'
Response · 200
{
"data": [
"string"
],
"success": true,
"timestamp": "2026-06-19T18:42:09Z"
}Try itruns against your network · response is live