curl --request GET \
--url https://api.voltview.co.uk/v1/assets/batteries \
--header 'x-api-key: <api-key>'import requests
url = "https://api.voltview.co.uk/v1/assets/batteries"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.voltview.co.uk/v1/assets/batteries', 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.voltview.co.uk/v1/assets/batteries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.voltview.co.uk/v1/assets/batteries"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.voltview.co.uk/v1/assets/batteries")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voltview.co.uk/v1/assets/batteries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"siteId": "<string>",
"importMpan": "<string>",
"usableCapacityKwh": 123,
"coupledSolarId": "<string>",
"portal": "<string>",
"stateOfChargePct": 123,
"energyRemainingKwh": 123,
"chargePowerKw": 123,
"dischargePowerKw": 123,
"chargeEnergyKwh": 123,
"dischargeEnergyKwh": 123,
"status": "ONLINE"
}
]{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Invalid request"
}
}Batteries
Read-only battery state of charge and charge/discharge power. A battery is one storage system on a site, mapped to the same import MPAN as the solar it sits with if any. VoltView does not dispatch the battery.
curl --request GET \
--url https://api.voltview.co.uk/v1/assets/batteries \
--header 'x-api-key: <api-key>'import requests
url = "https://api.voltview.co.uk/v1/assets/batteries"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.voltview.co.uk/v1/assets/batteries', 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.voltview.co.uk/v1/assets/batteries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.voltview.co.uk/v1/assets/batteries"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.voltview.co.uk/v1/assets/batteries")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voltview.co.uk/v1/assets/batteries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"siteId": "<string>",
"importMpan": "<string>",
"usableCapacityKwh": 123,
"coupledSolarId": "<string>",
"portal": "<string>",
"stateOfChargePct": 123,
"energyRemainingKwh": 123,
"chargePowerKw": 123,
"dischargePowerKw": 123,
"chargeEnergyKwh": 123,
"dischargeEnergyKwh": 123,
"status": "ONLINE"
}
]{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Invalid request"
}
}Authorizations
VoltView API key
Query Parameters
Data aggregation granularity
hour, day, month, year Start date and time (ISO 8601)
"2024-01-01T00:00:00.000Z"
End date and time (ISO 8601)
"2024-12-31T23:59:59.999Z"
Response
Batteries retrieved successfully
Battery identifier
Site the battery is mapped to
Import MPAN the battery can offset
Usable capacity in kWh
Linked solar system if present
OEM or installer monitoring portal
State of charge as a percentage
Energy remaining in kWh
Charge power in kW, positive into the battery
Discharge power in kW, positive out of the battery
Charge energy in the interval in kWh
Discharge energy in the interval in kWh
Battery status from the portal
ONLINE, CHARGING, DISCHARGING, IDLE, FAULT