Get Vehicle State Of Health
curl --request GET \
--url https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health', 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.volteras.com/v1/vehicles/{vehicle_id}/state-of-health",
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.volteras.com/v1/vehicles/{vehicle_id}/state-of-health"
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.volteras.com/v1/vehicles/{vehicle_id}/state-of-health")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health")
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{
"vehicleId": "<string>",
"calculationDate": "2023-12-25",
"stateOfHealth": "<string>",
"batteryCapacity": {
"nominal": "<string>",
"real": "<string>"
}
}Vehicle State of Health
Get Vehicle State Of Health
Retrieves state of health related information for the specified vehicle.
- Nominal battery pack capacity refers to the total amount of energy in kWh that the battery pack of the vehicle can store, as per its specifications.
- Real battery pack capacity refers to the total amount of energy in kWh that the battery pack of the vehicle can currently store, it’s reflective of the actual state of the battery rather than a specification.
- State of health is defined as real battery pack capacity over nominal battery pack capacity, as percentage.
Parameters:
vehicle_id: A unique identifier for the vehicle, which must correspond to a vehicle registered in our system.
Returns:
- A vehicle state of health instance encapsulating detailed battery pack information for the vehicle. The data includes both the nominal battery pack capacity and the real (observed) maximum battery pack capacity based on data retrieved directly from the vehicle and the specifications published by the OEMs.
Raises:
APIException: Raised when the system cannot locate the vehicle’s state of health details, due to an invalid ‘vehicle_id’ or absence of battery data. This results in a 404 Not Found status code.
Note:
- Endpoint is first available after observing a charging session that added at least 15% of state of charge and was started above 20% state of charge.
- We recommend charging the vehicle overnight should the endpoint not be available immediately.
- This endpoint is reliant on the availability of the trim of the vehicle and supports certain OEMs. Please see state of health for a list of supported OEMs
- Identifying the trim requires the registration country of the vehicle to be known and to be one we hold specification data for, currently Canada, France, Germany, Ireland, Italy, Spain, the United Kingdom, and the United States. Vehicles registered elsewhere may not have state of health available.
Possible Codes in Error Response (see Errors for error response schema and meaning of codes):
- AUTHENTICATION_ERROR
- REQUEST_VALIDATION_ERROR
- RESOURCE_NOT_FOUND
- SERVER_ERROR
GET
/
v1
/
vehicles
/
{vehicle_id}
/
state-of-health
Get Vehicle State Of Health
curl --request GET \
--url https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health', 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.volteras.com/v1/vehicles/{vehicle_id}/state-of-health",
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.volteras.com/v1/vehicles/{vehicle_id}/state-of-health"
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.volteras.com/v1/vehicles/{vehicle_id}/state-of-health")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.volteras.com/v1/vehicles/{vehicle_id}/state-of-health")
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{
"vehicleId": "<string>",
"calculationDate": "2023-12-25",
"stateOfHealth": "<string>",
"batteryCapacity": {
"nominal": "<string>",
"real": "<string>"
}
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Unique internal identifier for the vehicle.

