Skip to content

List CPMS

GET
/tenant/{tenantId}/cpms
curl --request GET \
--url https://api.exolink.cloud/tenant/example/cpms \
--header 'Authorization: Bearer <token>' \
--header 'x-exo-fields: ["id","displayName"]' \
--header 'x-exo-filter: ["eq","profileId",3]' \
--header 'x-exo-sort: ["asc","displayName"]'

Return the list of CPMS for the given tenant. Send Content-Type: text/csv to receive CSV.

tenantId
required
string

Tenant domain prefix

x-exo-fields
string

JSON array of the fields to return

Example

["id","displayName"]
x-exo-filter
string

JSON filter expression [operator, field, value]. Operators: eq, ne, gt, gte, lt, lte, in, nin, like, ilike, nlike, nilike, null, nnull, and eqc, nec, gtc, gtec, ltc, ltec to compare two fields. Combine expressions with ["and", ...] or ["or", ...].

Example

["eq","profileId",3]
x-exo-page
integer
>= 1

Page number, starting at 1. Applies together with x-exo-size.

x-exo-size
integer
>= 1

Page size. Every returned row then carries __total, the number of matching rows.

x-exo-sort
string

JSON sort [direction, field] with direction asc or desc, or a list of them

Example

["asc","displayName"]

List of CPMS

Array
object
id

Unique identifier for the CPMS backend

integer
tenantId

ID of the tenant that owns this CPMS backend

integer
displayName

User-friendly name for the CPMS backend

string
url

WebSocket URL endpoint for the CPMS backend connection

string
createdAt

Timestamp when the CPMS backend record was created

string
updatedAt

Timestamp when the CPMS backend record was last updated

string
deletedAt

Timestamp when the CPMS backend record was soft-deleted (null if active)

string
nullable
connectedChargers

Chargers currently connected to this CPMS; null when unknown

integer
nullable

Examples

ExampleOK

OK

List of CPMS

[
{
"id": 3,
"tenantId": 1,
"displayName": "My CPMS",
"url": "ws://cpms.example.com",
"createdAt": "2025-10-15T15:11:57.900Z",
"updatedAt": "2025-10-15T15:11:57.900Z",
"deletedAt": null,
"connectedChargers": 2
}
]

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"
}