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.
Playlists
Get list
Code samples
# You can also use wget
curl -X GET https://oapi.myviewboard.com/playlists?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/playlists?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/playlists", 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/playlists', 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/playlists',
params: {
'entity_id' => 'string'
}, headers: headers
p JSON.parse(result)
GET /playlists
Get the list of playlist
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entity_id | query | string | true | entity ID |
count | query | string | false | the number of media per page, 100 by default |
page | query | string | false | the page number, it will start at 1 by default |
Example responses
200 Response
[
{
"id": "6cbda038-1eaa-4168-a488-097ca45a7570",
"name": "Office"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | list of playlist | PlaylistList |
Multimedia
Get list
Code samples
# You can also use wget
curl -X GET https://oapi.myviewboard.com/media?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/media?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/media", 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/media', 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/media',
params: {
'entity_id' => 'string'
}, headers: headers
p JSON.parse(result)
GET /media
Get the list of multimedia
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
entity_id | query | string | true | entity ID |
count | query | string | false | the number of media per page, 100 by default |
page | query | string | false | the page number, it will start at 1 by default |
Example responses
200 Response
[
{
"id": "89c3fd10-02c7-4deb-88bf-78733f790ebb",
"name": "page01.png",
"type": "image"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | list of multimedia | MediaList |
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 web page
Code samples
# You can also use wget
curl -X POST https://oapi.myviewboard.com/devices/broadcast/webpage \
-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"
],
"webpage": "https://www.youtube.com/watch?v=Po5tOYmwa9I",
"forbidden": true,
"continuous": false,
"loops": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'bearer ************'
};
fetch('https://oapi.myviewboard.com/devices/broadcast/webpage',
{
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/webpage", 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/webpage', 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/webpage',
params: {
}, headers: headers
p JSON.parse(result)
POST /devices/broadcast/webpage
Capture the broadcast web page 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"
],
"webpage": "https://www.youtube.com/watch?v=Po5tOYmwa9I",
"forbidden": true,
"continuous": false,
"loops": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | DeviceBroadcastWebPageRequest | true | none |
» entityId | body | string | true | entity ID |
» deviceIds | body | [string] | true | a list of device IDs |
» webpage | body | string | true | web page |
» forbidden | body | boolean | false | forbid device user from stopping broadcast |
» continuous | body | boolean | false | continue broadcast when device is online |
» loops | body | integer | false | loop period in seconds (0 = forever) |
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 |
Post broadcast playlist
Code samples
# You can also use wget
curl -X POST https://oapi.myviewboard.com/devices/broadcast/playlist \
-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"
],
"playlistId": "6cbda038-1eaa-4168-a488-097ca45a7570",
"playlistName": "Office",
"forbidden": true,
"continuous": false,
"loops": 60
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'bearer ************'
};
fetch('https://oapi.myviewboard.com/devices/broadcast/playlist',
{
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/playlist", 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/playlist', 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/playlist',
params: {
}, headers: headers
p JSON.parse(result)
POST /devices/broadcast/playlist
Capture the broadcast playlist 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"
],
"playlistId": "6cbda038-1eaa-4168-a488-097ca45a7570",
"playlistName": "Office",
"forbidden": true,
"continuous": false,
"loops": 60
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | DeviceBroadcastPlaylistRequest | true | none |
» entityId | body | string | true | entity ID |
» deviceIds | body | [string] | true | a list of device IDs |
» playlistId | body | string | true | playlist ID |
» playlistName | body | string | false | the playlist name |
» forbidden | body | boolean | false | forbid device user from stopping broadcast |
» continuous | body | boolean | false | continue broadcast when device is online |
» loops | body | integer | false | loop period in seconds (0 = forever) |
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 broadcast multimedia
Code samples
# You can also use wget
curl -X POST https://oapi.myviewboard.com/devices/broadcast/multimedia \
-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"
],
"mediaId": "89c3fd10-02c7-4deb-88bf-78733f790ebb",
"mediaName": "page01.png",
"mediaType": "image",
"forbidden": true,
"continuous": false,
"loops": 60
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'bearer ************'
};
fetch('https://oapi.myviewboard.com/devices/broadcast/multimedia',
{
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/multimedia", 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/multimedia', 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/multimedia',
params: {
}, headers: headers
p JSON.parse(result)
POST /devices/broadcast/multimedia
Capture the broadcast multimedia 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"
],
"mediaId": "89c3fd10-02c7-4deb-88bf-78733f790ebb",
"mediaName": "page01.png",
"mediaType": "image",
"forbidden": true,
"continuous": false,
"loops": 60
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | DeviceBroadcastMultimediaRequest | true | none |
» entityId | body | string | true | entity ID |
» deviceIds | body | [string] | true | a list of device IDs |
» mediaId | body | string | true | media ID |
» mediaName | body | string | true | the media name |
» mediaType | body | string | true | the media type |
» forbidden | body | boolean | false | forbid device user from stopping broadcast |
» continuous | body | boolean | false | continue broadcast when device is online |
» loops | body | integer | false | loop period in seconds (0 = forever) |
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 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 | DeviceBroadcastMessageRequest | 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 |
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 |
MediaList
{
"title": "Multimedia List",
"type": "array",
"items": {
"title": "Media information",
"required": [
"id",
"name",
"type"
],
"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"
},
"type": {
"pattern": "^image|video|audio$",
"type": "string"
}
}
}
}
Multimedia List
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Multimedia List | [Media] | false | none | none |
Media
{
"title": "Media information",
"required": [
"id",
"name",
"type"
],
"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"
},
"type": {
"pattern": "^image|video|audio$",
"type": "string"
}
}
}
Media information
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
name | string | true | none | none |
type | string | true | none | none |
PlaylistList
{
"title": "Playlist List",
"type": "array",
"items": {
"title": "Playlist information",
"required": [
"id",
"name"
],
"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"
}
}
}
}
Playlist List
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
Playlist List | [Playlist] | false | none | none |
Playlist
{
"title": "Playlist information",
"required": [
"id",
"name"
],
"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"
}
}
}
Playlist information
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
name | string | true | none | none |
DeviceBroadcastMessageRequest
{
"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) |
DeviceBroadcastMultimediaRequest
{
"title": "Broadcast request",
"required": [
"entityId",
"deviceIds",
"mediaId",
"mediaName",
"mediaType"
],
"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"
}
},
"mediaId": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "media ID"
},
"mediaName": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "the media name"
},
"mediaType": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "the media type"
},
"forbidden": {
"type": "boolean",
"description": "forbid device user from stopping broadcast"
},
"continuous": {
"type": "boolean",
"description": "continue broadcast when device is online"
},
"loops": {
"type": "integer",
"description": "loop period in seconds (0 = forever)"
}
}
}
Broadcast request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityId | string | true | none | entity ID |
deviceIds | [string] | true | none | a list of device IDs |
mediaId | string | true | none | media ID |
mediaName | string | true | none | the media name |
mediaType | string | true | none | the media type |
forbidden | boolean | false | none | forbid device user from stopping broadcast |
continuous | boolean | false | none | continue broadcast when device is online |
loops | integer | false | none | loop period in seconds (0 = forever) |
DeviceBroadcastPlaylistRequest
{
"title": "Broadcast request",
"required": [
"entityId",
"deviceIds",
"playlistId"
],
"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"
}
},
"playlistId": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "playlist ID"
},
"playlistName": {
"pattern": "^([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "the playlist name"
},
"forbidden": {
"type": "boolean",
"description": "forbid device user from stopping broadcast"
},
"continuous": {
"type": "boolean",
"description": "continue broadcast when device is online"
},
"loops": {
"type": "integer",
"description": "loop period in seconds (0 = forever)"
}
}
}
Broadcast request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityId | string | true | none | entity ID |
deviceIds | [string] | true | none | a list of device IDs |
playlistId | string | true | none | playlist ID |
playlistName | string | false | none | the playlist name |
forbidden | boolean | false | none | forbid device user from stopping broadcast |
continuous | boolean | false | none | continue broadcast when device is online |
loops | integer | false | none | loop period in seconds (0 = forever) |
DeviceBroadcastWebPageRequest
{
"title": "Broadcast request",
"required": [
"entityId",
"deviceIds",
"webpage"
],
"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"
}
},
"webpage": {
"pattern": "^https://([a-z0-9]{8})(-[a-z0-9]{4}){3}(-[a-z0-9]{12})$",
"type": "string",
"description": "web page"
},
"forbidden": {
"type": "boolean",
"description": "forbid device user from stopping broadcast"
},
"continuous": {
"type": "boolean",
"description": "continue broadcast when device is online"
},
"loops": {
"type": "integer",
"description": "loop period in seconds (0 = forever)"
}
}
}
Broadcast request
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
entityId | string | true | none | entity ID |
deviceIds | [string] | true | none | a list of device IDs |
webpage | string | true | none | web page |
forbidden | boolean | false | none | forbid device user from stopping broadcast |
continuous | boolean | false | none | continue broadcast when device is online |
loops | integer | false | none | loop period in seconds (0 = forever) |
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 |