Skip to content

Get Metrics

GET
/tenant/{tenantId}/metrics
curl --request GET \
--url https://api.exolink.cloud/tenant/example/metrics \
--header 'Authorization: Bearer <token>'

Get tenant usage metrics

tenantId
required
string

Tenant domain prefix

Tenant metrics

Media typeapplication/json

Tenant usage and performance metrics

object
chargerConnections
object
registeredChargers

Total number of chargers

integer
connectedChargers

Chargers connected to the platform

integer
chargersByProfile

Number of chargers per profile name

object
key
additional properties
integer
chargersByVendor

Number of chargers per vendor

object
key
additional properties
integer
statusCount

Connectors per last reported status over the last 24 hours

object
Available
integer
Preparing
integer
Charging
integer
SuspendedEVSE
integer
SuspendedEV
integer
Finishing
integer
Reserved
integer
Unavailable
integer
Faulted
integer
msgTypes

OCPP messages per type over the last 24 hours

object
CALL
integer
CALLRESULT
integer
CALLERROR
integer
closeCodes

WebSocket close codes per CPMS name over the last 24 hours

object
key
additional properties

Number of closes per close code

object
key
additional properties
integer
BootNotificationCounts

BootNotifications per charger identity over the last 24 hours

object
key
additional properties
integer
latency

Average heartbeat latency in milliseconds per CPMS name over the last hour

object
key
additional properties
integer

Example generated

{
"chargerConnections": {
"registeredChargers": 1,
"connectedChargers": 1
},
"chargersByProfile": {
"additionalProperty": 1
},
"chargersByVendor": {
"additionalProperty": 1
},
"statusCount": {
"Available": 1,
"Preparing": 1,
"Charging": 1,
"SuspendedEVSE": 1,
"SuspendedEV": 1,
"Finishing": 1,
"Reserved": 1,
"Unavailable": 1,
"Faulted": 1
},
"msgTypes": {
"CALL": 1,
"CALLRESULT": 1,
"CALLERROR": 1
},
"closeCodes": {
"additionalProperty": {
"additionalProperty": 1
}
},
"BootNotificationCounts": {
"additionalProperty": 1
},
"latency": {
"additionalProperty": 1
}
}

Missing, invalid or expired credentials

Media typeapplication/json

Error response. Some rejections carry only message.

object
message
required

Error message

string
errorCode

Error code

string
Allowed values: ERR_API_BAD_REQUEST ERR_API_NOT_AUTHORIZED ERR_API_PAYMENT_REQUIRED ERR_API_FORBIDDEN ERR_API_RESOURCE_NOT_FOUND ERR_API_RESOURCE_IN_USE ERR_API_RESOURCE_ALREADY_EXISTS ERR_API_UNEXPECTED_STATE ERR_API_CONTENT_TOO_LARGE ERR_API_VALIDATION_FAILED ERR_API_VERIFICATION_FAILED ERR_API_NO_TENANT ERR_API_INVALID_INVITATION ERR_API_USER_DISABLED ERR_API_FAILED_DEPENDENCY ERR_EXOLINK_GENERIC
details

Failed validations, for requests checked against a schema

Array<object>
object
path

Path of the invalid field

string
message
string
code
string

Example

{
"message": "Not authorized",
"errorCode": "ERR_API_NOT_AUTHORIZED"
}

The caller may not perform this action

Media typeapplication/json

Error response. Some rejections carry only message.

object
message
required

Error message

string
errorCode

Error code

string
Allowed values: ERR_API_BAD_REQUEST ERR_API_NOT_AUTHORIZED ERR_API_PAYMENT_REQUIRED ERR_API_FORBIDDEN ERR_API_RESOURCE_NOT_FOUND ERR_API_RESOURCE_IN_USE ERR_API_RESOURCE_ALREADY_EXISTS ERR_API_UNEXPECTED_STATE ERR_API_CONTENT_TOO_LARGE ERR_API_VALIDATION_FAILED ERR_API_VERIFICATION_FAILED ERR_API_NO_TENANT ERR_API_INVALID_INVITATION ERR_API_USER_DISABLED ERR_API_FAILED_DEPENDENCY ERR_EXOLINK_GENERIC
details

Failed validations, for requests checked against a schema

Array<object>
object
path

Path of the invalid field

string
message
string
code
string

Example

{
"message": "Forbidden",
"errorCode": "ERR_API_FORBIDDEN"
}