List showers
curl --request GET \
--url https://api.orbital-systems.com/client/showers \
--header 'x-api-key: <api-key>'import requests
url = "https://api.orbital-systems.com/client/showers"
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.orbital-systems.com/client/showers', 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.orbital-systems.com/client/showers",
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.orbital-systems.com/client/showers"
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.orbital-systems.com/client/showers")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbital-systems.com/client/showers")
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{
"Count": 123,
"Items": [
{
"id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"name": "Bathroom",
"state": "active",
"saved_water": 18250.4,
"saved_energy": 742.18,
"sessions": 512,
"latest_session": "2026-11-02T06:20:00.000Z",
"filter_status": 72,
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"last_connected": "2026-11-02T06:40:12.000Z",
"last_disconnected": "2026-11-01T23:10:05.000Z",
"created_at": "2026-03-14T09:12:44.000Z",
"build_id": "v3.17.8",
"replace_uv": false,
"is_cleaning_program_required": false,
"clean_sensor_tank": false,
"no_recirculation": false,
"float_leak": false,
"operating": {
"cleaning_programs": 12,
"inner_heat_treatments": 498,
"outer_heat_treatments": 64,
"sessions": 1203,
"sessions_since_cleaning_program": 8,
"sessions_since_inner_heat_treatment": 1,
"sessions_since_outer_heat_treatment": 5,
"liters_since_last_descaling": 640
},
"oas_revision": 3,
"serial_number": "2214-0005",
"wifi_ssid": "HomeNetwork",
"installation_info": {
"installation_name": "installer@example.com",
"installation_date": "2026-03-14T10:02:00.000Z"
},
"installation_test": {
"id": "9c8b7a6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d"
},
"type": "shower",
"base": 19,
"control_dial_notifications": true,
"control_dial_ui": "swipe",
"hibernating": false,
"updated_at": "2026-10-28T17:03:10.000Z",
"descaling_status": 64,
"role": "owner"
}
]
}{
"message": "Internal server error"
}Showers.
List showers
GET
/
client
/
showers
List showers
curl --request GET \
--url https://api.orbital-systems.com/client/showers \
--header 'x-api-key: <api-key>'import requests
url = "https://api.orbital-systems.com/client/showers"
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.orbital-systems.com/client/showers', 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.orbital-systems.com/client/showers",
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.orbital-systems.com/client/showers"
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.orbital-systems.com/client/showers")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbital-systems.com/client/showers")
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{
"Count": 123,
"Items": [
{
"id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"name": "Bathroom",
"state": "active",
"saved_water": 18250.4,
"saved_energy": 742.18,
"sessions": 512,
"latest_session": "2026-11-02T06:20:00.000Z",
"filter_status": 72,
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"last_connected": "2026-11-02T06:40:12.000Z",
"last_disconnected": "2026-11-01T23:10:05.000Z",
"created_at": "2026-03-14T09:12:44.000Z",
"build_id": "v3.17.8",
"replace_uv": false,
"is_cleaning_program_required": false,
"clean_sensor_tank": false,
"no_recirculation": false,
"float_leak": false,
"operating": {
"cleaning_programs": 12,
"inner_heat_treatments": 498,
"outer_heat_treatments": 64,
"sessions": 1203,
"sessions_since_cleaning_program": 8,
"sessions_since_inner_heat_treatment": 1,
"sessions_since_outer_heat_treatment": 5,
"liters_since_last_descaling": 640
},
"oas_revision": 3,
"serial_number": "2214-0005",
"wifi_ssid": "HomeNetwork",
"installation_info": {
"installation_name": "installer@example.com",
"installation_date": "2026-03-14T10:02:00.000Z"
},
"installation_test": {
"id": "9c8b7a6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d"
},
"type": "shower",
"base": 19,
"control_dial_notifications": true,
"control_dial_ui": "swipe",
"hibernating": false,
"updated_at": "2026-10-28T17:03:10.000Z",
"descaling_status": 64,
"role": "owner"
}
]
}{
"message": "Internal server error"
}Authorizations
Send your API key in the x-api-key header of every request. The key belongs to one Orbital account, and requests act as that account: they see and control only the devices it owns or has been given access to. A missing or unknown key gets 403 with { "message": "Forbidden" }.
Was this page helpful?