How to get dynamic status for charging locations
How to get dynamic status updates
This tutorial provides instructions on how to use the HERE EV Charge Points API v3 to get the dynamic status for a single EV charging location. Dynamic status refers to the real-time status of an Electric Vehicle Supply Equipment (EVSE). The status may be, for example, available or charging. The possible statuses are defined in the API reference.
Note
Not all EV charging locations send dynamic status updates.
Prerequisites
Before you start, complete your HERE platform onboarding and obtain application credentials. For more information about onboarding and credentials, see Get started.
This section requires you to understand basic requests in the HERE EV Charge Points API v3 as covered in Get one or multiple charging locations.
HTTP call to the endpoint
To access the HERE EV Charge Points API v3 locations endpoint, send this request:
GET /v3/locations
Host: evcp.hereapi.com
User-Agent: curl/8.6.0
Accept: application/json
Authorization: Bearer ACCESS_TOKEN
The following examples all use cURL syntax. As the location id: 246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz supports dynamic status updates, the requests in this tutorial use this ID to reference the associated EV charging location.
Call HERE EV Charge Points API v3 with evses parameter
To get the dynamic status for each EVSE, use the query parameter fields=evses (see API reference for details):
curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://evcp.hereapi.com/v3/locations/246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz?fields=evses" | jq
The response is as follows:
{
"id": "here:evcp:charginglocation:246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz",
"location": {
"lat": 61.493773,
"lng": 23.820261
},
"supportedVehicles": [
"car"
],
"name": "K-Lataus",
"operator": {
"name": "K-Lataus",
"partnerId": "23e03006-cca5-11ed-91ab-42010aa40002",
"website": "https://k-lataus.fi/"
},
"evses": [
{
"uid": "61012d39974e34d300daf902",
"connectors": [
{
"id": "61012d39974e34d300daf902",
"standard": "IEC_62196_T2_COMBO",
"format": "cable",
"powerType": "dc",
"maxVoltage": 400,
"maxCurrent": 375,
"maxPower": 150000
}
],
"status": "available",
"modified": "2025-02-25T13:15:55Z",
"evseId": "FI*KCH*7695",
"physicalReference": "7695",
"id": "here:evcp:evse:06c7f002d6c72a46c557de16ab56b12ebc28daf97dea4b4204f89a00fee49c19",
"paymentSupports": [
"mobilePayment",
"operatorApp",
"rfidReader"
]
},
{
"uid": "60d049f75620ac3845d5cc2c",
"connectors": [
{
"id": "60d049f75620ac3845d5cc2c",
"standard": "IEC_62196_T2",
"format": "socket",
"powerType": "ac3Phase",
"maxVoltage": 230,
"maxCurrent": 16,
"maxPower": 11000
}
],
"status": "available",
"modified": "2025-02-25T13:59:36Z",
"evseId": "FI*KCH*7529",
"physicalReference": "7529",
"id": "here:evcp:evse:4723299dbc7e72aad883cd476435d39f9adae594226905dca3c14fd7d5be6aea",
"paymentSupports": [
"mobilePayment",
"operatorApp",
"rfidReader"
]
},
{
"uid": "60d41de176d170289517435a",
"connectors": [
{
"id": "60d41de176d170289517435a",
"standard": "IEC_62196_T2",
"format": "socket",
"powerType": "ac3Phase",
"maxVoltage": 230,
"maxCurrent": 16,
"maxPower": 11000
}
],
"status": "available",
"modified": "2025-02-25T06:33:11Z",
"evseId": "FI*KCH*7547",
"physicalReference": "7547",
"id": "here:evcp:evse:9c0514b69854e38ed541bb6d5e8d8112c3001ac81117dcc5400b20a2fd2399e0",
"paymentSupports": [
"mobilePayment",
"operatorApp",
"rfidReader"
]
},
{
"uid": "61012cf2c6edec8f60f1400d",
"connectors": [
{
"id": "61012cf2c6edec8f60f1400d",
"standard": "IEC_62196_T2_COMBO",
"format": "cable",
"powerType": "dc",
"maxVoltage": 400,
"maxCurrent": 375,
"maxPower": 150000
}
],
"status": "unknown",
"modified": "2025-02-25T14:02:29Z",
"evseId": "FI*KCH*7693",
"physicalReference": "7693",
"id": "here:evcp:evse:bb3c1fda2196af35255922ee905ca2e69d9dfdebed7356cab39d24c4e04563b2",
"paymentSupports": [
"mobilePayment",
"operatorApp",
"rfidReader"
]
},
{
"uid": "61012cf6fe193d7ed1d3b0d7",
"connectors": [
{
"id": "61012cf6fe193d7ed1d3b0d7",
"standard": "CHADEMO",
"format": "cable",
"powerType": "dc",
"maxVoltage": 400,
"maxCurrent": 125,
"maxPower": 50000
}
],
"status": "charging",
"modified": "2025-02-25T14:02:54Z",
"evseId": "FI*KCH*7694",
"physicalReference": "7694",
"id": "here:evcp:evse:deb8d230c3acf81bf59856a5cfea400bff6ab98a3cda107bfcce0cfcc8228168",
"paymentSupports": [
"mobilePayment",
"operatorApp",
"rfidReader"
]
}
]
}In the response, each EVSE carries a field status, which provides the current dynamic status of the EVSE. In the example, the EVSE with id=61012cf6fe193d7ed1d3b0d7 has the status available, whereas the EVSE id=61012d39974e34d300daf902 has the status charging. Note that the statuses are updated continuously and the status may be different when calling the HERE EV Charge Points API v3 next time.
Call HERE EV Charge Points API v3 with connectorGroups parameter
Another way to get information on the dynamic statuses is by using the query parameter fields=connectorGroups (see API reference for details):
curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://evcp.hereapi.com/v3/locations/246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz?fields=connectorGroups" | jq
The response to the request is as follows:
{
"id": "here:evcp:charginglocation:246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz",
"location": {
"lat": 61.493773,
"lng": 23.820261
},
"supportedVehicles": [
"car"
],
"name": "K-Lataus",
"operator": {
"name": "K-Lataus",
"partnerId": "23e03006-cca5-11ed-91ab-42010aa40002",
"website": "https://k-lataus.fi/"
},
"connectorGroups": [
{
"standard": "CHADEMO",
"maxPower": 50000,
"connectorCount": 1,
"availableConnectorCount": 0
},
{
"standard": "IEC_62196_T2",
"maxPower": 11000,
"connectorCount": 2,
"availableConnectorCount": 2
},
{
"standard": "IEC_62196_T2_COMBO",
"maxPower": 150000,
"connectorCount": 2,
"availableConnectorCount": 1
}
]
}The fields=connectorGroups query parameter provides aggregate information on the dynamic statuses in the form of the number of connectors (connectorCount) with a specific connector (standard) and power (maxPower) as well as how many of those are available now (availableCount). For example, in this case there are two IEC_62196_T2_COMBO connectors at the location ("connectorCount": 2) with one connector being occupied and the other being free ("availableCount": 1).
The status information via fields=evses and fields=connectorGroups provides different views to the same data. Which one to use depends on your use case.
Updated 2 days ago