User Charging Sessions
Get all currently-open charging sessions for a user
Returns { "sessions": [...] } with one full detail per open session (a user can have several EVs and wallboxes charging at once). Returns 200 with an empty list when nothing is active, so clients can poll without exception handling. Wallbox energy/savings and command counters are running totals computed as of the request time for open sessions.
GET
/
api
/
partners
/
v2.0
/
org
/
{org_id}
/
users
/
{user_id}
/
charging-sessions
/
current
Get all currently-open charging sessions for a user
curl --request GET \
--url https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sessions": [
{
"session": {
"id": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"is_active": true,
"electric_vehicle_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wallbox_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ocpp_transaction_id": 123,
"final_hems_state": "<string>",
"hems_activated": true,
"is_at_home": true,
"desired_steering": "<string>",
"optimization_skip_reason": "<string>",
"energy_delivered_kwh": 123,
"energy_from_solar_kwh": 123,
"energy_from_grid_kwh": 123,
"avg_charge_power_kw": 123,
"peak_charge_power_kw": 123,
"initial_soc_pct": 123,
"final_soc_pct": 123,
"target_soc_pct": 123,
"soc_source": "<string>",
"charge_deadline": "2023-11-07T05:31:56Z",
"target_reachable": true,
"reachable_soc_pct": 123,
"optimized_cost_eur": 123,
"unoptimized_cost_eur": 123,
"spot_savings_eur": 123,
"solar_savings_eur": 123,
"total_savings_eur": 123,
"projected_savings_eur": 123,
"has_complete_price_coverage": true,
"commands_sent": 123,
"commands_applied": 123,
"commands_ineffective": 123,
"commands_rejected": 123,
"steering_was_effective": true,
"dominant_command_error": "<string>",
"was_boosted": true,
"boost_triggered_at": "2023-11-07T05:31:56Z",
"boost_ended_at": "2023-11-07T05:31:56Z",
"boost_end_reason": "<string>",
"desired_charging_start_time": "2023-11-07T05:31:56Z",
"desired_charging_end_time": "2023-11-07T05:31:56Z",
"outcome": "<string>"
},
"decisions": [
{
"time": "2023-11-07T05:31:56Z",
"device_type": "<string>",
"device_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "<string>",
"reason": "<string>",
"dispatched": true,
"steering_command_id": 123,
"export_w": 123,
"target_w": 123,
"phases": 123,
"battery_w": 123
}
],
"commands": [
{
"id": 123,
"time": "2023-11-07T05:31:56Z",
"commanded_watts": 123,
"commanded_amps": 123,
"commanded_phases": 123,
"dispatch_status": "<string>",
"observed_current_offered_a": 123,
"observed_power_w": 123,
"observed_phases": 123
}
],
"home_energy": {
"pv_production_kwh": 123,
"battery_charged_kwh": 123,
"battery_discharged_kwh": 123,
"grid_import_kwh": 123,
"grid_export_kwh": 123,
"inverter_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The organization ID
The user ID
Response
200 - application/json
OK
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Get all currently-open charging sessions for a user
curl --request GET \
--url https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/current")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sessions": [
{
"session": {
"id": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"is_active": true,
"electric_vehicle_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wallbox_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ocpp_transaction_id": 123,
"final_hems_state": "<string>",
"hems_activated": true,
"is_at_home": true,
"desired_steering": "<string>",
"optimization_skip_reason": "<string>",
"energy_delivered_kwh": 123,
"energy_from_solar_kwh": 123,
"energy_from_grid_kwh": 123,
"avg_charge_power_kw": 123,
"peak_charge_power_kw": 123,
"initial_soc_pct": 123,
"final_soc_pct": 123,
"target_soc_pct": 123,
"soc_source": "<string>",
"charge_deadline": "2023-11-07T05:31:56Z",
"target_reachable": true,
"reachable_soc_pct": 123,
"optimized_cost_eur": 123,
"unoptimized_cost_eur": 123,
"spot_savings_eur": 123,
"solar_savings_eur": 123,
"total_savings_eur": 123,
"projected_savings_eur": 123,
"has_complete_price_coverage": true,
"commands_sent": 123,
"commands_applied": 123,
"commands_ineffective": 123,
"commands_rejected": 123,
"steering_was_effective": true,
"dominant_command_error": "<string>",
"was_boosted": true,
"boost_triggered_at": "2023-11-07T05:31:56Z",
"boost_ended_at": "2023-11-07T05:31:56Z",
"boost_end_reason": "<string>",
"desired_charging_start_time": "2023-11-07T05:31:56Z",
"desired_charging_end_time": "2023-11-07T05:31:56Z",
"outcome": "<string>"
},
"decisions": [
{
"time": "2023-11-07T05:31:56Z",
"device_type": "<string>",
"device_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "<string>",
"reason": "<string>",
"dispatched": true,
"steering_command_id": 123,
"export_w": 123,
"target_w": 123,
"phases": 123,
"battery_w": 123
}
],
"commands": [
{
"id": 123,
"time": "2023-11-07T05:31:56Z",
"commanded_watts": 123,
"commanded_amps": 123,
"commanded_phases": 123,
"dispatch_status": "<string>",
"observed_current_offered_a": 123,
"observed_power_w": 123,
"observed_phases": 123
}
],
"home_energy": {
"pv_production_kwh": 123,
"battery_charged_kwh": 123,
"battery_discharged_kwh": 123,
"grid_import_kwh": 123,
"grid_export_kwh": 123,
"inverter_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
]
}