curl --request PUT \
--url https://api.orbital-systems.com/client/taps/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "Kitchen sink",
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"state": "active",
"updated_at": "2026-10-28T17:03:10.000Z"
}
'import requests
url = "https://api.orbital-systems.com/client/taps/{id}"
payload = {
"name": "Kitchen sink",
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"state": "active",
"updated_at": "2026-10-28T17:03:10.000Z"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Kitchen sink',
device_group: '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
owner: '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
state: 'active',
updated_at: '2026-10-28T17:03:10.000Z'
})
};
fetch('https://api.orbital-systems.com/client/taps/{id}', 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/taps/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Kitchen sink',
'device_group' => '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
'owner' => '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
'state' => 'active',
'updated_at' => '2026-10-28T17:03:10.000Z'
]),
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.orbital-systems.com/client/taps/{id}"
payload := strings.NewReader("{\n \"name\": \"Kitchen sink\",\n \"device_group\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"owner\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"state\": \"active\",\n \"updated_at\": \"2026-10-28T17:03:10.000Z\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.orbital-systems.com/client/taps/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Kitchen sink\",\n \"device_group\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"owner\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"state\": \"active\",\n \"updated_at\": \"2026-10-28T17:03:10.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbital-systems.com/client/taps/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Kitchen sink\",\n \"device_group\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"owner\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"state\": \"active\",\n \"updated_at\": \"2026-10-28T17:03:10.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"id": "e3d2c1b0-a9f8-4e7d-9c6b-5a4f3e2d1c0b",
"name": "Kitchen sink",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"state": "active",
"last_connected": "2026-11-02T06:40:12.000Z",
"last_disconnected": "2026-11-01T23:10:05.000Z",
"build_id": "tap-1.2.1",
"wifi_ssid": "HomeNetwork",
"type": "tap",
"created_at": "2026-03-14T09:12:44.000Z",
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "owner"
}{
"message": "Unauthorized",
"statusCode": 401,
"name": "UnauthorizedError"
}{
"message": "Tap not found",
"statusCode": 404,
"name": "NotFoundError"
}{
"message": "Internal server error"
}Update tap
curl --request PUT \
--url https://api.orbital-systems.com/client/taps/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "Kitchen sink",
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"state": "active",
"updated_at": "2026-10-28T17:03:10.000Z"
}
'import requests
url = "https://api.orbital-systems.com/client/taps/{id}"
payload = {
"name": "Kitchen sink",
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"state": "active",
"updated_at": "2026-10-28T17:03:10.000Z"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Kitchen sink',
device_group: '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
owner: '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
state: 'active',
updated_at: '2026-10-28T17:03:10.000Z'
})
};
fetch('https://api.orbital-systems.com/client/taps/{id}', 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/taps/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Kitchen sink',
'device_group' => '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
'owner' => '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
'state' => 'active',
'updated_at' => '2026-10-28T17:03:10.000Z'
]),
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.orbital-systems.com/client/taps/{id}"
payload := strings.NewReader("{\n \"name\": \"Kitchen sink\",\n \"device_group\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"owner\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"state\": \"active\",\n \"updated_at\": \"2026-10-28T17:03:10.000Z\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.orbital-systems.com/client/taps/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Kitchen sink\",\n \"device_group\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"owner\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"state\": \"active\",\n \"updated_at\": \"2026-10-28T17:03:10.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbital-systems.com/client/taps/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Kitchen sink\",\n \"device_group\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"owner\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"state\": \"active\",\n \"updated_at\": \"2026-10-28T17:03:10.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"id": "e3d2c1b0-a9f8-4e7d-9c6b-5a4f3e2d1c0b",
"name": "Kitchen sink",
"owner": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"device_group": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"state": "active",
"last_connected": "2026-11-02T06:40:12.000Z",
"last_disconnected": "2026-11-01T23:10:05.000Z",
"build_id": "tap-1.2.1",
"wifi_ssid": "HomeNetwork",
"type": "tap",
"created_at": "2026-03-14T09:12:44.000Z",
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "owner"
}{
"message": "Unauthorized",
"statusCode": 401,
"name": "UnauthorizedError"
}{
"message": "Tap not found",
"statusCode": 404,
"name": "NotFoundError"
}{
"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" }.
Path Parameters
The unique identifier for the tap
Body
Display name of the device.
"Kitchen sink"
ID of the group the device belongs to. Pairing sets it to your user ID.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
User ID of the owner. null when the device isn’t paired.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
Lifecycle state. A device is pending until it is first paired, then active. Lists only include pending and active devices.
pending, active, archived, service, replaced "active"
When the change was made (ISO 8601). Defaults to the current time.
"2026-10-28T17:03:10.000Z"
Response
Success
Unique ID of the device (UUID).
"e3d2c1b0-a9f8-4e7d-9c6b-5a4f3e2d1c0b"
Display name of the device.
"Kitchen sink"
User ID of the owner. null when the device isn’t paired.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
ID of the group the device belongs to. Pairing sets it to your user ID.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
Lifecycle state. A device is pending until it is first paired, then active. Lists only include pending and active devices.
pending, active, archived, service, replaced "active"
When the device last connected (ISO 8601).
"2026-11-02T06:40:12.000Z"
When the device last disconnected (ISO 8601). The device is offline when this is later than last_connected.
"2026-11-01T23:10:05.000Z"
Firmware build running on the tap.
"tap-1.2.1"
Name of the Wi-Fi network the tap is on.
"HomeNetwork"
Always tap.
tap "tap"
When the record was created (ISO 8601).
"2026-03-14T09:12:44.000Z"
When the record was last changed (ISO 8601).
"2026-10-28T17:03:10.000Z"
Your access to the device: owner (you paired it) or, for a device shared with you, user or maintenance. maintenance can read the device but not change it, control it or see its sessions. Only included by GET /client/taps and GET /client/taps/{id}.
owner, maintenance, user "owner"
Was this page helpful?