Create meter read
curl --request POST \
--url https://api.voltview.co.uk/v1/meters/{meterId}/reads \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"readValue": 123,
"readDate": "2023-11-07T05:31:56Z",
"notes": "<string>"
}
'import requests
url = "https://api.voltview.co.uk/v1/meters/{meterId}/reads"
payload = {
"readValue": 123,
"readDate": "2023-11-07T05:31:56Z",
"notes": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({readValue: 123, readDate: '2023-11-07T05:31:56Z', notes: '<string>'})
};
fetch('https://api.voltview.co.uk/v1/meters/{meterId}/reads', 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/meters/{meterId}/reads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'readValue' => 123,
'readDate' => '2023-11-07T05:31:56Z',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voltview.co.uk/v1/meters/{meterId}/reads"
payload := strings.NewReader("{\n \"readValue\": 123,\n \"readDate\": \"2023-11-07T05:31:56Z\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voltview.co.uk/v1/meters/{meterId}/reads")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"readValue\": 123,\n \"readDate\": \"2023-11-07T05:31:56Z\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voltview.co.uk/v1/meters/{meterId}/reads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"readValue\": 123,\n \"readDate\": \"2023-11-07T05:31:56Z\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"meterId": "<string>",
"readValue": 123,
"readDate": "2023-11-07T05:31:56Z",
"readType": "ACTUAL",
"registerCode": "TOTAL",
"source": "MANUAL",
"notes": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Invalid request"
}
}Meters
Create meter read
Create a new meter read.
API key: requires the meters:write scope.
POST
/
v1
/
meters
/
{meterId}
/
reads
Create meter read
curl --request POST \
--url https://api.voltview.co.uk/v1/meters/{meterId}/reads \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"readValue": 123,
"readDate": "2023-11-07T05:31:56Z",
"notes": "<string>"
}
'import requests
url = "https://api.voltview.co.uk/v1/meters/{meterId}/reads"
payload = {
"readValue": 123,
"readDate": "2023-11-07T05:31:56Z",
"notes": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({readValue: 123, readDate: '2023-11-07T05:31:56Z', notes: '<string>'})
};
fetch('https://api.voltview.co.uk/v1/meters/{meterId}/reads', 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/meters/{meterId}/reads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'readValue' => 123,
'readDate' => '2023-11-07T05:31:56Z',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voltview.co.uk/v1/meters/{meterId}/reads"
payload := strings.NewReader("{\n \"readValue\": 123,\n \"readDate\": \"2023-11-07T05:31:56Z\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voltview.co.uk/v1/meters/{meterId}/reads")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"readValue\": 123,\n \"readDate\": \"2023-11-07T05:31:56Z\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voltview.co.uk/v1/meters/{meterId}/reads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"readValue\": 123,\n \"readDate\": \"2023-11-07T05:31:56Z\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"meterId": "<string>",
"readValue": 123,
"readDate": "2023-11-07T05:31:56Z",
"readType": "ACTUAL",
"registerCode": "TOTAL",
"source": "MANUAL",
"notes": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Invalid request"
}
}Authorizations
apiKeyAuthsessionJwt
VoltView API key. Acts as its owner, limited to the key's scopes and sites. Each endpoint lists the scope it needs.
Path Parameters
UUID of the meter
Body
application/json
Meter reading value
Date of the reading (ISO 8601)
Type of reading
Available options:
ACTUAL, ESTIMATED, CUSTOMER Register code
Available options:
TOTAL, DAY, NIGHT, PEAK, OFF_PEAK Source of the reading
Available options:
MANUAL, INVOICE, SMART_METER, SUPPLIER_API Additional notes
Response
Meter read created successfully
Meter read identifier
Associated meter identifier
Meter reading value
Date of the reading
Type of reading
Available options:
ACTUAL, ESTIMATED, CUSTOMER Register code
Available options:
TOTAL, DAY, NIGHT, PEAK, OFF_PEAK Source of the reading
Available options:
MANUAL, INVOICE, SMART_METER, SUPPLIER_API Additional notes
Creation timestamp