Devices
Gateways, access points, and switches synced from your NMS integrations. Location fields (latitude, longitude, administrativeArea, locality) are resolved from the Starlink terminal serving the same site.
The device object
projectNamestringThe project or workspace name this device belongs to.
siteCodestringUnique site identifier for the device.
siteNamestringHuman-readable site name.
deviceNamestringDisplay name of the device.
serialNumberstring | nullHardware serial number.
ipAddressstring | nullLast known IP address.
macAddressstring | nullMAC address.
gatewayIdstring | nullSerial number of the upstream gateway this device connects through. For a gateway row this is its own serial; for downstream access points and switches this is the nearest gateway in the uplink chain. Matches
gatewayIdon/v1/connected_clients.gatewayMacAddressstring | nullMAC address of the upstream gateway.
latitudefloat | nullDevice latitude coordinate.
longitudefloat | nullDevice longitude coordinate.
administrativeAreastring | nullProvince, state, or region.
localitystring | nullCity or locality.
uptimeinteger | nullCurrent uptime in seconds.
alertsstring | nullActive alert codes from the device, if any.
List all devices GET /v1/devices
Returns devices accessible by your token, paginated.
Query parameters
pageSizeintegerNumber of records to return. Default
50, min1, max500.pageTokenstringCursor from the previous response's
pageInfo.nextPageToken. Omit for the first page.exclude_endedbooleanOmits devices whose Starlink service line has ended (terminated subscriptions). Defaults to
true. Passexclude_ended=falseto include them.
Pagination
The response includes a pageInfo object. Pass pageInfo.nextPageToken as pageToken in the next request to retrieve the following page. When hasNextPage is false you have reached the end.
- cURL
- JavaScript
- Go
- PHP
curl "https://polaris.revlv.com/v1/devices?pageSize=100" \
-H "Authorization: Bearer {token}"
const res = await fetch('https://polaris.revlv.com/v1/devices?pageSize=100', {
headers: { 'Authorization': 'Bearer {token}' },
});
const { data, pageInfo } = await res.json();
// Fetch next page
if (pageInfo.hasNextPage) {
const next = await fetch(
`https://polaris.revlv.com/v1/devices?pageToken=${pageInfo.nextPageToken}`,
{ headers: { 'Authorization': 'Bearer {token}' } },
);
}
req, _ := http.NewRequest("GET", "https://polaris.revlv.com/v1/devices?pageSize=100", nil)
req.Header.Add("Authorization", "Bearer {token}")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
$response = $client->get('https://polaris.revlv.com/v1/devices', [
'headers' => ['Authorization' => 'Bearer {token}'],
'query' => ['pageSize' => 100],
]);
echo $response->getBody();
{
"data": [
{
"projectName": "Main Fleet",
"siteCode": "REV-001-001",
"siteName": "Site A",
"deviceName": "Site A Gateway",
"serialNumber": "0000000000-00000000",
"ipAddress": "192.168.1.1",
"macAddress": "aa:bb:cc:dd:ee:ff",
"gatewayId": "0000000000-00000000",
"gatewayMacAddress": "aa:bb:cc:dd:ee:ff",
"latitude": 10.5924,
"longitude": 122.6904,
"administrativeArea": "Iloilo",
"locality": "San Lorenzo",
"uptime": 86400,
"alerts": null
}
],
"pageInfo": {
"hasNextPage": true,
"nextPageToken": "ZjQ3YWMxMGItNThjYy00MzcyLWE1NjctMGUwMmIyYzNkNDc5"
}
}