Skip to content

List Profiles

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

Get list of charger profiles. 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"]
x-exo-charger-counts
string

Set to any value but false, 0 or empty to add the chargers counts to every profile

Example

true

List of profiles

Array<object>

Charger configuration profile

object
id

Profile ID

integer
tenantId

Tenant ID

integer
displayName

Profile display name

string
dynamic

Whether this is a dynamically generated profile

boolean
cpmsId

First associated CPMS backend ID

integer
cpmsIds

Associated CPMS backend IDs

Array<integer>
labId

Associated lab environment ID (if applicable)

integer
nullable
chargers

Charger counts, only with the x-exo-charger-counts header

object
total
integer
connected

Chargers connected to the platform

integer
cpmsConnected

Chargers connected to their CPMS

integer
createdAt
string format: date-time
updatedAt
string format: date-time
deletedAt
string format: date-time
nullable

Example

[
{
"id": 1,
"displayName": "Default Profile",
"dynamic": false
}
]

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