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
- API Key (auth-mvbkey)
- Parameter Name: Authorization, in: header.
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 |