NAV Navigation
curl JavaScript Go Python Ruby

myViewBoard Open API Doc v2.4

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

This API allow user to integrate myViewBoard control system with the myViewBoard Manager. User can obtain a valid API Key and use it to make operations on remote devices.

Base URLs:

Authentication

Groups

Get list

Code samples

# You can also use wget
curl -X GET https://oapi.myviewboard.com/groups?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41 \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'

const headers = {
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/groups?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://oapi.myviewboard.com/groups", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.get('https://oapi.myviewboard.com/groups', params={
'entity_id': '0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41'
}, headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.get 'https://oapi.myviewboard.com/groups',
params: {
'entity_id' => 'string'
}, headers: headers

p JSON.parse(result)

GET /groups

Get the list of group information

Parameters

Name In Type Required Description
entity_id query string true entity ID
count query string false the number of groups per page, 100 by default
page query string false the page number, it will start at 1 by default

Example responses

200 Response

[
{
"id": "b2f11006-3809-4f60-8ec1-0fabcae95b3a",
"name": "Room A",
"number_of_devices": 10
},
{
"id": "a66512d5-a01e-4859-aee8-c4fc4c2870bb",
"name": "Room B",
"number_of_devices": 2
}
]

Responses

Status Meaning Description Schema
200 OK 200 response GroupInfoList

Get device list

Code samples

# You can also use wget
curl -X GET https://oapi.myviewboard.com/groups/devices?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41&group_id=b2f11006-3809-4f60-8ec1-0fabcae95b3a \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'

const headers = {
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/groups/devices?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41&group_id=b2f11006-3809-4f60-8ec1-0fabcae95b3a',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://oapi.myviewboard.com/groups/devices", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.get('https://oapi.myviewboard.com/groups/devices', params={
'entity_id': '0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41', 'group_id': 'b2f11006-3809-4f60-8ec1-0fabcae95b3a'
}, headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.get 'https://oapi.myviewboard.com/groups/devices',
params: {
'entity_id' => 'string',
'group_id' => 'string'
}, headers: headers

p JSON.parse(result)

GET /groups/devices

Get the list of device information

Parameters

Name In Type Required Description
entity_id query string true entity ID
group_id query string true group ID
count query string false the number of devices per page, 100 by default
page query string false the page number, it will start at 1 by default

Example responses

200 Response

[
{
"id": "df0bbb1c-817c-47dc-ad25-ba6e9fbec5dd",
"name": "IFP50-3",
"model": "IFP5550-3",
"status": true,
"last_connected": "2024-01-29T09:29:10.001Z",
"local_ip_address": "172.21.4.200",
"note": ""
},
{
"id": "8d846075-7b6f-413c-808c-ae7a754bc662",
"name": "IFP50-10F",
"model": "IFP7550-5",
"status": false,
"last_connected": "2024-08-29T09:42:56.760Z",
"local_ip_address": "172.21.8.221",
"note": ""
}
]

Responses

Status Meaning Description Schema
200 OK 200 response GroupDeviceInfoList

Devices

Get list

Code samples

# You can also use wget
curl -X GET https://oapi.myviewboard.com/devices?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41 \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'

const headers = {
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/devices?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://oapi.myviewboard.com/devices", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.get('https://oapi.myviewboard.com/devices', params={
'entity_id': '0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41'
}, headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.get 'https://oapi.myviewboard.com/devices',
params: {
'entity_id' => 'string'
}, headers: headers

p JSON.parse(result)

GET /devices

Get the list of device information

Parameters

Name In Type Required Description
entity_id query string true entity ID
count query string false the number of devices per page, 100 by default
page query string false the page number, it will start at 1 by default

Example responses

200 Response

[
{
"id": "94096a07-d437-4873-835d-4ea5d279f38c",
"name": "CDE92-9F",
"model": "CDE92UW",
"status": true,
"serial_number": "VSCDE1231230",
"asset_tag": "101",
"fw_version": "20241021",
"mac_address": "f4:20:15:49:27:1f",
"os_version": "Android 13",
"agent_version": "1.52.0",
"note": "",
"advanced": true,
"volume": "30",
"date_of_enrollment": "2024-10-29T08:20:05.744Z",
"wifi_ssid": "Office 1"
},
{
"id": "8d846075-7b6f-413c-808c-ae7a754bc662",
"name": "IFP50-10F",
"model": "IFP7550-5",
"status": false,
"serial_number": "X8F232752001",
"asset_tag": "102",
"fw_version": "20240103",
"mac_address": "18:84:c1:82:57:ac",
"os_version": "Android 11",
"agent_version": "1.50.0",
"note": "",
"advanced": true,
"volume": "60",
"date_of_enrollment": "2024-01-22T06:57:08.798Z",
"wifi_ssid": "Office 2"
}
]

Responses

Status Meaning Description Schema
200 OK list of devices DeviceProfileList

Get usage

Code samples

# You can also use wget
curl -X GET https://oapi.myviewboard.com/devices/usage?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41 \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'

const headers = {
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/devices/usage?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://oapi.myviewboard.com/devices/usage", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.get('https://oapi.myviewboard.com/devices/usage', params={
'entity_id': '0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41'
}, headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.get 'https://oapi.myviewboard.com/devices/usage',
params: {
'entity_id' => 'string'
}, headers: headers

p JSON.parse(result)

GET /devices/usage

Get the list of device usage

Parameters

Name In Type Required Description
entity_id query string true entity ID
group_id query string false group IDs belong to the entity (concatenate multiple IDs into one string with comma)
device_id query string false device IDs belong to the entity (concatenate multiple IDs into one string with comma)
start_time query string false the start time of time period (unix time in milliseconds)
end_time query string false the end time of time period (unix time in milliseconds)
count query string false the number of devices per page, 100 by default
page query string false the page number, it will start at 1 by default

Example responses

200 Response

[
{
"id": "94096a07-d437-4873-835d-4ea5d279f38c",
"name": "CDE92-9F",
"usage_time": "51.2"
},
{
"id": "8d846075-7b6f-413c-808c-ae7a754bc662",
"name": "IFP50-10F",
"usage_time": "2.4"
}
]

Responses

Status Meaning Description Schema
200 OK list of devices DeviceUsageList

Get statistics

Code samples

# You can also use wget
curl -X GET https://oapi.myviewboard.com/devices/statistics?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41 \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'

const headers = {
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/devices/statistics?entity_id=0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://oapi.myviewboard.com/devices/statistics", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.get('https://oapi.myviewboard.com/devices/statistics', params={
'entity_id': '0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41'
}, headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.get 'https://oapi.myviewboard.com/devices/statistics',
params: {
'entity_id' => 'string'
}, headers: headers

p JSON.parse(result)

GET /devices/statistics

Get the list of device statistics

Parameters

Name In Type Required Description
entity_id query string true entity ID
group_id query string false group IDs belong to the entity (concatenate multiple IDs into one string with comma)
device_id query string false device IDs belong to the entity (concatenate multiple IDs into one string with comma)
count query string false the number of devices per page, 100 by default
page query string false the page number, it will start at 1 by default

Example responses

200 Response

[
{
"id": "94096a07-d437-4873-835d-4ea5d279f38c",
"last_boot_up": "2024-10-29T08:01:42.172Z",
"last_connected": "2024-11-20T09:56:09.972Z",
"total_uptime": "100 hrs 52 mins"
},
{
"id": "8d846075-7b6f-413c-808c-ae7a754bc662",
"last_boot_up": "2024-08-23T01:48:46.268Z",
"last_connected": "2024-08-29T09:42:56.760Z",
"total_uptime": "2 hrs 21 mins"
}
]

Responses

Status Meaning Description Schema
200 OK list of devices DeviceStatisticsList

Broadcast

Post broadcast message

Code samples

# You can also use wget
curl -X POST https://oapi.myviewboard.com/devices/broadcast \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'
const inputBody = '{
"entityId": "0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41",
"deviceIds": [
"94096a07-d437-4873-835d-4ea5d279f38c",
"8d846075-7b6f-413c-808c-ae7a754bc662"
],
"type": "standard",
"message": "Test message",
"loops": 60
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/devices/broadcast',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://oapi.myviewboard.com/devices/broadcast", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.post('https://oapi.myviewboard.com/devices/broadcast', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.post 'https://oapi.myviewboard.com/devices/broadcast',
params: {
}, headers: headers

p JSON.parse(result)

POST /devices/broadcast

Capture the broadcast message from the manager interface and send it from a control system - meaning that if we can connect myViewBoard Manager to their control system so they can streamline the broadcasting process. Instead of doing the broadcast using their control system and use Manager to broadcast to the panels, if they can integrate with our API, they can make this a one-step process.

Body parameter

{
"entityId": "0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41",
"deviceIds": [
"94096a07-d437-4873-835d-4ea5d279f38c",
"8d846075-7b6f-413c-808c-ae7a754bc662"
],
"type": "standard",
"message": "Test message",
"loops": 60
}

Parameters

Name In Type Required Description
body body DeviceBroadcastRequest true none
» entityId body string true entity ID
» deviceIds body [string] true a list of device IDs
» type body string true standard or urgent message
» message body string true message content (1024 character max for standard and 300 character max for urgent)
» loops body integer false loop period in seconds (0 = forever and it is for standard message only)
» siren body boolean false siren on or off (it is for urgent message only)

Example responses

200 Response

{
"numberOfDevices": 1
}

404 Response

{
"status": 404,
"responseCode": 404,
"messageCode": 21013,
"message": "no online devices found"
}

Responses

Status Meaning Description Schema
200 OK 200 response DeviceBroadcastResponse
404 Not Found 404 response ErrorResponse

Post stop the broadcast

Code samples

# You can also use wget
curl -X POST https://oapi.myviewboard.com/devices/broadcast/stop \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: bearer ************'
const inputBody = '{
"entityId": "0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41",
"deviceIds": [
"94096a07-d437-4873-835d-4ea5d279f38c",
"8d846075-7b6f-413c-808c-ae7a754bc662"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'bearer ************'
};

fetch('https://oapi.myviewboard.com/devices/broadcast/stop',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"bearer ************"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://oapi.myviewboard.com/devices/broadcast/stop", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'bearer ************'
}

r = requests.post('https://oapi.myviewboard.com/devices/broadcast/stop', headers = headers)

print(r.json())
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'bearer ************'
}

result = RestClient.post 'https://oapi.myviewboard.com/devices/broadcast/stop',
params: {
}, headers: headers

p JSON.parse(result)

POST /devices/broadcast/stop

Stop broadcasting to device

Body parameter

{
"entityId": "0268c150-a8d7-4d43-ab1f-2f0c0e3d3c41",
"deviceIds": [
"94096a07-d437-4873-835d-4ea5d279f38c",
"8d846075-7b6f-413c-808c-ae7a754bc662"
]
}

Parameters

Name In Type Required Description
body body DeviceBroadcastStopRequest true none
» entityId body string true entity ID
» deviceIds body [string] true a list of device IDs

Example responses

200 Response

{
"numberOfDevices": 1
}

Responses

Status Meaning Description Schema
200 OK 200 response DeviceBroadcastResponse

Schemas

DeviceUsageList

{
"title": "Device Usage List",
"type": "array",
"items": {
"title": "Device usage information",
"required": [
"id",
"name",
"usage_time"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"usage_time": {
"pattern": "^[1-9]{2}[.][0-9]{1}$",
"type": "string"
}
}
}
}

Device Usage List

Properties

Name Type Required Restrictions Description
Device Usage List [DeviceUsage] false none none

GroupInfoList

{
"title": "Group list",
"type": "array",
"items": {
"title": "Group information",
"required": [
"id",
"name",
"number_of_devices"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"number_of_devices": {
"type": "integer"
}
}
}
}

Group list

Properties

Name Type Required Restrictions Description
Group list [GroupInfo] false none none

GroupInfo

{
"title": "Group information",
"required": [
"id",
"name",
"number_of_devices"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"number_of_devices": {
"type": "integer"
}
}
}

Group information

Properties

Name Type Required Restrictions Description
id string true none none
name string true none none
number_of_devices integer true none none

GroupDeviceInfoList

{
"title": "Group device list",
"type": "array",
"items": {
"title": "Group device information",
"required": [
"id",
"last_connected",
"local_ip_address",
"model",
"name",
"note",
"status"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"last_connected": {
"pattern": "^2022-01-01T03:00:00[.]000Z$",
"type": "string"
},
"local_ip_address": {
"pattern": "172.21.0.130",
"type": "string"
},
"model": {
"pattern": "^[A-Z0-9]{10}$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"note": {
"pattern": "^[a-z0-9]{32}$",
"type": "string"
},
"status": {
"type": "boolean",
"description": "HTTP Status Code"
}
}
}
}

Group device list

Properties

Name Type Required Restrictions Description
Group device list [GroupDeviceInfo] false none none

GroupDeviceInfo

{
"title": "Group device information",
"required": [
"id",
"last_connected",
"local_ip_address",
"model",
"name",
"note",
"status"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"last_connected": {
"pattern": "^2022-01-01T03:00:00[.]000Z$",
"type": "string"
},
"local_ip_address": {
"pattern": "172.21.0.130",
"type": "string"
},
"model": {
"pattern": "^[A-Z0-9]{10}$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"note": {
"pattern": "^[a-z0-9]{32}$",
"type": "string"
},
"status": {
"type": "boolean",
"description": "HTTP Status Code"
}
}
}

Group device information

Properties

Name Type Required Restrictions Description
id string true none none
last_connected string true none none
local_ip_address string true none none
model string true none none
name string true none none
note string true none none
status boolean true none HTTP Status Code

DeviceUsage

{
"title": "Device usage information",
"required": [
"id",
"name",
"usage_time"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"usage_time": {
"pattern": "^[1-9]{2}[.][0-9]{1}$",
"type": "string"
}
}
}

Device usage information

Properties

Name Type Required Restrictions Description
id string true none none
name string true none none
usage_time string true none none

DeviceProfile

{
"title": "Device information",
"required": [
"advanced",
"agent_version",
"asset_tag",
"date_of_enrollment",
"fw_version",
"id",
"mac_address",
"model",
"name",
"note",
"os_version",
"serial_number",
"status",
"volume",
"wifi_ssid"
],
"type": "object",
"properties": {
"advanced": {
"type": "boolean"
},
"agent_version": {
"pattern": "^([1]{1}[.][1-9]{1,2}[.][1-9]{1,2})$",
"type": "string"
},
"asset_tag": {
"pattern": "^[a-zA-Z0-9]{11}$",
"type": "string"
},
"date_of_enrollment": {
"pattern": "^2022-01-01T03:00:00[.]000Z$",
"type": "string"
},
"fw_version": {
"pattern": "^[0-9]{8}[.][0-9]{6}$",
"type": "string"
},
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"mac_address": {
"pattern": "^([0-9a-f]{2}[:]){5}([0-9a-f]{2})$",
"type": "string"
},
"model": {
"pattern": "^[A-Z0-9]{10}$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"note": {
"pattern": "^[a-z0-9]{32}$",
"type": "string"
},
"os_version": {
"pattern": "^[a-z0-9]{12}$",
"type": "string"
},
"serial_number": {
"pattern": "^[A-Z0-9]{12}$",
"type": "string"
},
"status": {
"type": "boolean",
"description": "HTTP Status Code"
},
"volume": {
"pattern": "^[1-9]{2}$",
"type": "string"
},
"wifi_ssid": {
"pattern": "^[a-z0-9]{6}$",
"type": "string"
}
}
}

Device information

Properties

Name Type Required Restrictions Description
advanced boolean true none none
agent_version string true none none
asset_tag string true none none
date_of_enrollment string true none none
fw_version string true none none
id string true none none
mac_address string true none none
model string true none none
name string true none none
note string true none none
os_version string true none none
serial_number string true none none
status boolean true none HTTP Status Code
volume string true none none
wifi_ssid string true none none

Empty

{
"title": "Empty Schema",
"type": "object"
}

Empty Schema

Properties

None

DeviceProfileList

{
"title": "Device Profile List",
"type": "array",
"items": {
"title": "Device information",
"required": [
"advanced",
"agent_version",
"asset_tag",
"date_of_enrollment",
"fw_version",
"id",
"mac_address",
"model",
"name",
"note",
"os_version",
"serial_number",
"status",
"volume",
"wifi_ssid"
],
"type": "object",
"properties": {
"advanced": {
"type": "boolean"
},
"agent_version": {
"pattern": "^([1]{1}[.][1-9]{1,2}[.][1-9]{1,2})$",
"type": "string"
},
"asset_tag": {
"pattern": "^[a-zA-Z0-9]{11}$",
"type": "string"
},
"date_of_enrollment": {
"pattern": "^2022-01-01T03:00:00[.]000Z$",
"type": "string"
},
"fw_version": {
"pattern": "^[0-9]{8}[.][0-9]{6}$",
"type": "string"
},
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"mac_address": {
"pattern": "^([0-9a-f]{2}[:]){5}([0-9a-f]{2})$",
"type": "string"
},
"model": {
"pattern": "^[A-Z0-9]{10}$",
"type": "string"
},
"name": {
"pattern": "^[a-zA-Z0-9]{16}$",
"type": "string"
},
"note": {
"pattern": "^[a-z0-9]{32}$",
"type": "string"
},
"os_version": {
"pattern": "^[a-z0-9]{12}$",
"type": "string"
},
"serial_number": {
"pattern": "^[A-Z0-9]{12}$",
"type": "string"
},
"status": {
"type": "boolean",
"description": "HTTP Status Code"
},
"volume": {
"pattern": "^[1-9]{2}$",
"type": "string"
},
"wifi_ssid": {
"pattern": "^[a-z0-9]{6}$",
"type": "string"
}
}
}
}

Device Profile List

Properties

Name Type Required Restrictions Description
Device Profile List [DeviceProfile] false none none

DeviceStatisticsList

{
"title": "Device Statistics List",
"type": "array",
"items": {
"title": "Device statistics information",
"required": [
"id",
"last_boot_up",
"last_connected",
"total_uptime"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"last_boot_up": {
"pattern": "^2022-01-01T01:00:00[.]000Z$",
"type": "string"
},
"last_connected": {
"pattern": "^2022-01-01T03:00:00[.]000Z$",
"type": "string"
},
"total_uptime": {
"pattern": "^[1-9]{1} hrs [1-5]{1}[0-9]{1} mins$",
"type": "string"
}
}
}
}

Device Statistics List

Properties

Name Type Required Restrictions Description
Device Statistics List [DeviceStatistics] false none none

DeviceStatistics

{
"title": "Device statistics information",
"required": [
"id",
"last_boot_up",
"last_connected",
"total_uptime"
],
"type": "object",
"properties": {
"id": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
},
"last_boot_up": {
"pattern": "^2022-01-01T01:00:00[.]000Z$",
"type": "string"
},
"last_connected": {
"pattern": "^2022-01-01T03:00:00[.]000Z$",
"type": "string"
},
"total_uptime": {
"pattern": "^[1-9]{1} hrs [1-5]{1}[0-9]{1} mins$",
"type": "string"
}
}
}

Device statistics information

Properties

Name Type Required Restrictions Description
id string true none none
last_boot_up string true none none
last_connected string true none none
total_uptime string true none none

DeviceBroadcastRequest

{
"title": "Broadcast request",
"required": [
"entityId",
"deviceIds",
"type",
"message"
],
"type": "object",
"properties": {
"entityId": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "entity ID"
},
"deviceIds": {
"type": "array",
"description": "a list of device IDs",
"items": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
}
},
"type": {
"pattern": "^standard|urgent$",
"type": "string",
"description": "standard or urgent message"
},
"message": {
"pattern": "^.{0,1024}$",
"type": "string",
"description": "message content (1024 character max for standard and 300 character max for urgent)"
},
"loops": {
"type": "integer",
"description": "loop period in seconds (0 = forever and it is for standard message only)"
},
"siren": {
"type": "boolean",
"description": "siren on or off (it is for urgent message only)"
}
}
}

Broadcast request

Properties

Name Type Required Restrictions Description
entityId string true none entity ID
deviceIds [string] true none a list of device IDs
type string true none standard or urgent message
message string true none message content (1024 character max for standard and 300 character max for urgent)
loops integer false none loop period in seconds (0 = forever and it is for standard message only)
siren boolean false none siren on or off (it is for urgent message only)

DeviceBroadcastResponse

{
"title": "Broadcast response",
"required": [
"numberOfDevices"
],
"type": "object",
"properties": {
"numberOfDevices": {
"type": "integer"
}
}
}

Broadcast response

Properties

Name Type Required Restrictions Description
numberOfDevices integer true none none

ErrorResponse

{
"title": "Error response",
"required": [
"message",
"messageCode",
"responseCode",
"status"
],
"type": "object",
"properties": {
"status": {
"type": "integer"
},
"responseCode": {
"type": "integer"
},
"messageCode": {
"type": "integer"
},
"message": {
"pattern": "^success$",
"type": "string"
}
}
}

Error response

Properties

Name Type Required Restrictions Description
status integer true none none
responseCode integer true none none
messageCode integer true none none
message string true none none

DeviceBroadcastStopRequest

{
"title": "root",
"required": [
"entityId",
"deviceIds"
],
"type": "object",
"properties": {
"entityId": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "entity ID"
},
"deviceIds": {
"type": "array",
"description": "a list of device IDs",
"items": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string"
}
}
}
}

root

Properties

Name Type Required Restrictions Description
entityId string true none entity ID
deviceIds [string] true none a list of device IDs