curl --request GET \
--url https://api.voltview.co.uk/v1/assets/solar \
--header 'x-api-key: <api-key>'import requests
url = "https://api.voltview.co.uk/v1/assets/solar"
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/solar', 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/solar",
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/solar"
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/solar")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voltview.co.uk/v1/assets/solar")
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>",
"exportMpan": "<string>",
"installedCapacityKwp": 123,
"commissioningDate": "2023-12-25",
"portal": "<string>",
"acPowerKw": 123,
"generationKwh": 123,
"lifetimeYieldKwh": 123,
"selfConsumedKwh": 123,
"exportedKwh": 123,
"status": "ONLINE"
}
]{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Invalid request"
}
}Solar
Read-only solar generation for arrays mapped to a site and its import MPAN. Returns instantaneous AC power, interval generation, yield, and status from the inverter portal. Derived self-consumption and export are labelled as derived.
curl --request GET \
--url https://api.voltview.co.uk/v1/assets/solar \
--header 'x-api-key: <api-key>'import requests
url = "https://api.voltview.co.uk/v1/assets/solar"
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/solar', 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/solar",
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/solar"
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/solar")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voltview.co.uk/v1/assets/solar")
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>",
"exportMpan": "<string>",
"installedCapacityKwp": 123,
"commissioningDate": "2023-12-25",
"portal": "<string>",
"acPowerKw": 123,
"generationKwh": 123,
"lifetimeYieldKwh": 123,
"selfConsumedKwh": 123,
"exportedKwh": 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
Solar systems retrieved successfully
Solar system identifier
Site the array is mapped to
Import MPAN the array offsets
Export MPAN if the site has one
Installed capacity in kWp
Commissioning date if known
OEM or installer monitoring portal
Instantaneous AC power in kW
Energy generated in the interval in kWh
Lifetime or period yield in kWh
Derived self-consumed generation in kWh
Derived or metered exported generation in kWh
Inverter / portal status
ONLINE, FAULT, OFFLINE