curl --request GET \
--url https://api.nox.energy/v1/devices/battery/telemetry/current \
--header 'x-api-key: <api-key>'import requests
url = "https://api.nox.energy/v1/devices/battery/telemetry/current"
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.nox.energy/v1/devices/battery/telemetry/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.nox.energy/v1/devices/battery/telemetry/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 => [
"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.nox.energy/v1/devices/battery/telemetry/current"
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.nox.energy/v1/devices/battery/telemetry/current")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nox.energy/v1/devices/battery/telemetry/current")
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{
"data": [
{
"device_id": "e4da3b7f-bbce-4a45-9d2b-1c0e8f7a6b5c",
"measured_at": "2026-10-17T12:03:00Z",
"soc_pct": 70,
"power_kw": 0.4,
"mode": "auto"
}
],
"meta": {
"energy_supplier": "Energy Supplier A"
}
}{
"detail": "Energy Supplier A is not authorized to access this feature."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "This endpoint is not available yet."
}Get Devices Battery Telemetry Current
Preview: not available yet. This endpoint is documented ahead of its release and currently
answers 501 Not Implemented. Its contract may still change before release.
Get the latest telemetry of your batteries: state of charge, power and current battery mode.
power_kw follows the consumption sign convention used by all power fields of the API: positive
when the battery charges (it consumes power), negative when it discharges.
curl --request GET \
--url https://api.nox.energy/v1/devices/battery/telemetry/current \
--header 'x-api-key: <api-key>'import requests
url = "https://api.nox.energy/v1/devices/battery/telemetry/current"
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.nox.energy/v1/devices/battery/telemetry/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.nox.energy/v1/devices/battery/telemetry/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 => [
"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.nox.energy/v1/devices/battery/telemetry/current"
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.nox.energy/v1/devices/battery/telemetry/current")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nox.energy/v1/devices/battery/telemetry/current")
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{
"data": [
{
"device_id": "e4da3b7f-bbce-4a45-9d2b-1c0e8f7a6b5c",
"measured_at": "2026-10-17T12:03:00Z",
"soc_pct": 70,
"power_kw": 0.4,
"mode": "auto"
}
],
"meta": {
"energy_supplier": "Energy Supplier A"
}
}{
"detail": "Energy Supplier A is not authorized to access this feature."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "This endpoint is not available yet."
}Authorizations
API Key authentication. Enter your API key in the format: YOUR_API_KEY
Query Parameters
The maximum number of items to return per page of results.
This should be used together with the next_token parameter to paginate through results.
Read the pagination parameter documentation for more details.
1 <= x <= 1000The next_token is a token used to retrieve the next page of results when there are more results
than can fit in a single page(=API response).
By default, the API will return a next_token of the first page if no token was given as a parameter.
If the token is null you have reached the end of the results.
This should be used together with the limit parameter to paginate through results.
To get all results of your call, you can keep calling the same API call with the previously returned next_token until it returns null.
Battery device ID to get data of. If None, all batteries are included.