curl --request PUT \
--url https://api.orbital-systems.com/client/user/invites/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"email": "friend@example.com",
"group_id": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"device_id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"accepted": true,
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "user"
}
'import requests
url = "https://api.orbital-systems.com/client/user/invites/{id}"
payload = {
"email": "friend@example.com",
"group_id": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"device_id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"accepted": True,
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "user"
}
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({
email: 'friend@example.com',
group_id: '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
device_id: '0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d',
accepted: true,
updated_at: '2026-10-28T17:03:10.000Z',
role: 'user'
})
};
fetch('https://api.orbital-systems.com/client/user/invites/{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/user/invites/{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([
'email' => 'friend@example.com',
'group_id' => '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
'device_id' => '0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d',
'accepted' => true,
'updated_at' => '2026-10-28T17:03:10.000Z',
'role' => 'user'
]),
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/user/invites/{id}"
payload := strings.NewReader("{\n \"email\": \"friend@example.com\",\n \"group_id\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"device_id\": \"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d\",\n \"accepted\": true,\n \"updated_at\": \"2026-10-28T17:03:10.000Z\",\n \"role\": \"user\"\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/user/invites/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"friend@example.com\",\n \"group_id\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"device_id\": \"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d\",\n \"accepted\": true,\n \"updated_at\": \"2026-10-28T17:03:10.000Z\",\n \"role\": \"user\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbital-systems.com/client/user/invites/{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 \"email\": \"friend@example.com\",\n \"group_id\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"device_id\": \"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d\",\n \"accepted\": true,\n \"updated_at\": \"2026-10-28T17:03:10.000Z\",\n \"role\": \"user\"\n}"
response = http.request(request)
puts response.read_body{
"id": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"inviter": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"inviter_email": "owner@example.com",
"email": "friend@example.com",
"group_id": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"accepted": false,
"device_id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"created_at": "2026-03-14T09:12:44.000Z",
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "user"
}{
"message": "Unauthorized",
"statusCode": 401,
"name": "UnauthorizedError"
}{
"message": "Invite not found",
"statusCode": 404,
"name": "NotFoundError"
}{
"message": "Internal server error"
}Update user invite
curl --request PUT \
--url https://api.orbital-systems.com/client/user/invites/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"email": "friend@example.com",
"group_id": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"device_id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"accepted": true,
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "user"
}
'import requests
url = "https://api.orbital-systems.com/client/user/invites/{id}"
payload = {
"email": "friend@example.com",
"group_id": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"device_id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"accepted": True,
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "user"
}
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({
email: 'friend@example.com',
group_id: '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
device_id: '0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d',
accepted: true,
updated_at: '2026-10-28T17:03:10.000Z',
role: 'user'
})
};
fetch('https://api.orbital-systems.com/client/user/invites/{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/user/invites/{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([
'email' => 'friend@example.com',
'group_id' => '6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b',
'device_id' => '0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d',
'accepted' => true,
'updated_at' => '2026-10-28T17:03:10.000Z',
'role' => 'user'
]),
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/user/invites/{id}"
payload := strings.NewReader("{\n \"email\": \"friend@example.com\",\n \"group_id\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"device_id\": \"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d\",\n \"accepted\": true,\n \"updated_at\": \"2026-10-28T17:03:10.000Z\",\n \"role\": \"user\"\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/user/invites/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"friend@example.com\",\n \"group_id\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"device_id\": \"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d\",\n \"accepted\": true,\n \"updated_at\": \"2026-10-28T17:03:10.000Z\",\n \"role\": \"user\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbital-systems.com/client/user/invites/{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 \"email\": \"friend@example.com\",\n \"group_id\": \"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b\",\n \"device_id\": \"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d\",\n \"accepted\": true,\n \"updated_at\": \"2026-10-28T17:03:10.000Z\",\n \"role\": \"user\"\n}"
response = http.request(request)
puts response.read_body{
"id": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"inviter": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"inviter_email": "owner@example.com",
"email": "friend@example.com",
"group_id": "6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b",
"accepted": false,
"device_id": "0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d",
"created_at": "2026-03-14T09:12:44.000Z",
"updated_at": "2026-10-28T17:03:10.000Z",
"role": "user"
}{
"message": "Unauthorized",
"statusCode": 401,
"name": "UnauthorizedError"
}{
"message": "Invite 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
Invite ID
Body
Email address of the Orbital user to invite. They must already have an account.
"friend@example.com"
ID of your group, to share all your devices. Set this or device_id.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
ID of a device you own, to share only that device. Set this or group_id.
"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d"
Set to true to accept an invite you received.
true
When the change was made (ISO 8601). Defaults to the current time.
"2026-10-28T17:03:10.000Z"
Access to give: user or maintenance. Defaults to user. Only the person who sent the invite can change it.
maintenance, user "user"
Response
Success
Unique ID of the invite.
"5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a"
User ID of the person who sent the invite.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
Email address of the person who sent the invite.
"owner@example.com"
Email address of the person invited.
"friend@example.com"
ID of the shared group, when a group is shared.
"6f1c2e0a-3d4b-4e8f-9a7c-2b5d1e3f4a6b"
Whether the invite has been accepted.
false
ID of the shared device, when a single device is shared.
"0b7a6c1e-5f2d-4c3b-8a9e-1d2f3a4b5c6d"
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"
Access the invite gives: user or maintenance. Missing means user.
maintenance, user "user"
Was this page helpful?