Mason Device Console API Docs (v1.0)
Download OpenAPI specification:Download
The Mason Device Console APIs provide programmatic access to manage and control your fleet of Mason devices. These APIs enable you to:
- Authentication: Get JWT tokens for API access
- Device Management: Get device information, send commands, and retrieve telemetry data
- Application Management: Install, update, and manage applications on devices
- Configuration: Apply remote settings and manage device configurations
- OTA Updates: Schedule and manage firmware updates
- File Management: Upload and manage files for distribution to devices
- Filtering: Create and manage device groups based on various criteria
Base URL
All API endpoints use the base URL: https://mason.glbth.com
Authentication
All API calls require authentication using JWT tokens obtained through the login endpoints. API responses follow a consistent structure with status information and payload data.
Save Remote Settings
This API endpoint enables the creation or update of remote settings bundles. It requires an HTTP POST request with a RemoteSettingsBundle
object provided in the request body. The API checks the logged user's permissions, sets the creation date if it's a new bundle, and then saves the remote settings bundle.
Authorizations:
Request Body schema: application/jsonrequired
settingsBundleId | string |
settingsBundleName | string |
description | string |
domain | string |
owner | string |
settingsType | string |
color | string |
fontIcon | string |
privateRepoItem | boolean |
object | |
Array of objects (RemoteSettingsItem) | |
creationDate | string <date-time> |
Responses
Request samples
- Payload
{- "settingsBundleId": "string",
- "settingsBundleName": "string",
- "description": "string",
- "domain": "string",
- "owner": "string",
- "settingsType": "string",
- "color": "string",
- "fontIcon": "string",
- "privateRepoItem": true,
- "moreData": {
- "property1": { },
- "property2": { }
}, - "remoteSettingsItems": [
- {
- "@class": "string",
- "port": "string",
- "fileUrlPath": "string",
- "infFlieName": "string",
- "model": "string",
- "name": "string",
- "ip": "string",
- "setDefault": true,
- "iInfFlieName": "string"
}
], - "creationDate": "2019-08-24T14:15:22Z"
}
Response samples
- 200
- 500
Refreshes a JWT token
This endpoint allows users to refresh a JWT token. It takes the refreshToken, which was received in the getjwttoken API and generates a new jwt token in the request body.
Authorizations:
header Parameters
accountuser required | string The user name associated with the JWT token. |
Request Body schema: application/jsonrequired
userName | string The user name associated with the JWT token. |
refreshToken | string The refresh token used to obtain a new JWT token. |
Responses
Request samples
- Payload
{- "userName": "string",
- "refreshToken": "string"
}
Response samples
- 200
- 500
Gets a JWT token.
This endpoint allows users to obtain a JWT token (short expiration) and a refresh token (long expiration) for authentication of further API calls. It takes a JSON object containing the username and password (required fields) in the request body. The method performs authentication, generates tokens, and handles various authentication exceptions
Authorizations:
Request Body schema: application/jsonrequired
username required | string Username of the user |
password required | string Password of the user |
totpcode | string TOTP code (Time-Based One-Time Password) for two-factor authentication |
idToken | string ID token |
ssoDomain | string SSO (Single Sign-On) domain |
refreshToken | string Refresh token used for token renewal |
Responses
Request samples
- Payload
- curl
A sample login request with username and password
{- "username": "username@account",
- "password": "mypassword"
}
Response samples
- 200
- 500
Save and trigger a command
This API endpoint allows for the creation and saving of a new command. It takes a Command
object as the request body which includes the execution condition as set in the reference trigger and returns the unique identifier (commandID
) of the newly created command.
Authorizations:
Request Body schema: application/jsonrequired
id | string The unique identifier for the command. |
creationTime | string <date-time> The date and time when the command was created. |
ownerUserName | string The username of the owner of the command. |
domain | string The domain associated with the command. |
object (CommandData) | |
object (Trigger) | |
description | string A description of the command. |
filterId | string The ID of the filter associated with the command. |
currentDevices | Array of strings The list of devices currently targeted by the command. |
state | string The state of the command. |
notifiedUsers | Array of strings unique A set of usernames representing users who have been notified about the command. |
notifyDirty | boolean Flag indicating whether the command has unsaved changes. |
lastChange | string <date-time> The date and time of the last change to the command. |
failureCount | integer <int32> The count of failures associated with the command. |
successCount | integer <int32> The count of successful executions of the command. |
sentCount | integer <int32> The count of times the command has been sent. |
executedCount | integer <int32> The count of times the command has been executed. |
readyCount | integer <int32> The count of devices ready to receive the command. |
persist | boolean Flag indicating whether the command should be persisted for future reference. |
persistentGroupID | string The ID of the persistent group associated with the command. |
persistentGroupName | string The name of the persistent group associated with the command. |
object Additional properties associated with the command. | |
object (CommandStatus) A list of command statuses. |
Responses
Request samples
- Payload
{- "id": "command123",
- "creationTime": "2019-08-24T14:15:22Z",
- "ownerUserName": "john_doe",
- "domain": "example.com",
- "commandData": {
- "@class": "string",
- "advancedMessagingItem": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "bodyText": "string",
- "image": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "audio": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "stretchImage": true,
- "horizontal": true,
- "audioLoop": true,
- "withTimeout": true,
- "timeOut": 0,
- "textColor": "string",
- "webUrl": "string",
- "youtubeLoop": true,
- "htmlCode": "string",
- "embedUrl": "string",
- "embedType": "string",
- "youtubeBaseUrl": "string",
- "youtubeId": "string",
- "advMsgType": "string"
}
}, - "trigger": {
- "triggerId": "string",
- "triggerName": "string",
- "description": "string",
- "domain": "string",
- "owner": "string",
- "triggerData": {
- "execCondition": "string",
- "execConditionSuccessCode": 0,
- "execConditionScript": true,
- "@class": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "privateRepoItem": true,
- "color": "string",
- "fontIcon": "string"
}, - "description": "Activate Emergency Alert",
- "filterId": "filter123",
- "currentDevices": [
- "device_id_1",
- "device_id_2"
], - "state": "Pending",
- "notifiedUsers": [
- "user1",
- "user2"
], - "notifyDirty": true,
- "lastChange": "2019-08-24T14:15:22Z",
- "failureCount": 3,
- "successCount": 10,
- "sentCount": 5,
- "executedCount": 7,
- "readyCount": 8,
- "persist": true,
- "persistentGroupID": "group123",
- "persistentGroupName": "EmergencyAlertGroup",
- "props": {
- "property1": "value1",
- "property2": "value2"
}, - "lastCommandStatus": {
- "id": "string",
- "commandid": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "EXECUTED",
- "note": "Uninstall apps is disallowed",
- "deviceid": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "additionalprops": {
- "property1": { },
- "property2": { }
}
}
}
Response samples
- 200
- 500
Modify Command State
This API endpoint allows for the modification of the state of a command identified by its unique command ID. It initiates a state change based on the provided 'newstate' parameter.
Authorizations:
path Parameters
commandId required | string Example: command123 The unique identifier of the command. |
query Parameters
newstate required | string Enum: "COMMAND_STATE_ACTIVE" "COMMAND_STATE_STOPPED" Example: newstate=COMMAND_STATE_ACTIVE The new state to set for the command. |
Request Body schema: application/json
newstate | string The new state of thee command |
Responses
Request samples
- Payload
{- "newstate": "COMMAND_STATE_ACTIVE"
}
Response samples
- 200
- 500
Send command to multiple devices
Send a command with provided data to multiple devices. Command could be any supported command such as send message command, install package command, OTA and more. Returns metadata about the sent command.
Authorizations:
Request Body schema: application/jsonrequired
object (CommandData) | |
deviceIds | Array of strings IDs of the devices that will receive the command |
Responses
Request samples
- Payload
{- "commandData": {
- "@class": "string",
- "advancedMessagingItem": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "bodyText": "string",
- "image": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "audio": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "stretchImage": true,
- "horizontal": true,
- "audioLoop": true,
- "withTimeout": true,
- "timeOut": 0,
- "textColor": "string",
- "webUrl": "string",
- "youtubeLoop": true,
- "htmlCode": "string",
- "embedUrl": "string",
- "embedType": "string",
- "youtubeBaseUrl": "string",
- "youtubeId": "string",
- "advMsgType": "string"
}
}, - "deviceIds": [
- "device_id_1",
- "device_id_2"
]
}
Response samples
- 200
- 500
Send command data to devices based on a filter (or group).
Creates a new command with provided data and sends it to devices based on a filter. Groups, which are filters filtered by tags, can also be a target for this command. The API returns metadata about the sent command.
Authorizations:
path Parameters
filterid required | string Example: filter123 The ID of the filter (or group) to target for sending the command. |
query Parameters
ispersist | boolean Default: false Example: ispersist=true Flag indicating whether the command should be persisted for future reference. |
isall | boolean Default: false Example: isall=true Flag indicating whether the command should be sent to all matching devices. |
Request Body schema: application/jsonrequired
object (AdvancedMessagingItem) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "advancedMessagingItem": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "bodyText": "string",
- "image": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "audio": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "stretchImage": true,
- "horizontal": true,
- "audioLoop": true,
- "withTimeout": true,
- "timeOut": 0,
- "textColor": "string",
- "webUrl": "string",
- "youtubeLoop": true,
- "htmlCode": "string",
- "embedUrl": "string",
- "embedType": "string",
- "youtubeBaseUrl": "string",
- "youtubeId": "string",
- "advMsgType": "string"
}, - "@class": "CommandAdvancedMessaging"
}
Response samples
- 200
- 500
Retrieve a list of commands based on various filters.
This API retrieves a list of commands based on the provided filters. It supports pagination and filtering by action, search string, search type, search column, and more.
Authorizations:
query Parameters
startIndex required | integer <int32> The index from which to start retrieving commands in the paginated result. |
pageSize required | integer <int32> The number of commands to include in each page of the paginated result. |
action | string Filter commands by a specific action. |
searchstring | string A string to search for within the commands. |
searchType | string The type of search to perform (e.g., exact match, partial match). |
searchcolumn | string The specific column to search within the commands. |
withgrouppackages | boolean Default: false Indicates whether to include group packages along with individual commands (default is false). |
v2 | boolean Indicates whether to use version 2 of the API (default is false). |
Request Body schema: application/json
property | string The property to sort by. |
direction | string The sorting direction (e.g., ASC or DESC). |
object A HashMap for additional search parameters. |
Responses
Request samples
- Payload
[- {
- "property": "string",
- "direction": "string",
- "searchlist": {
- "property1": { },
- "property2": { }
}
}
]
Response samples
- 200
- 500
{- "commands": [
- {
- "id": "command123",
- "creationTime": "2019-08-24T14:15:22Z",
- "ownerUserName": "john_doe",
- "domain": "example.com",
- "commandData": {
- "@class": "string",
- "advancedMessagingItem": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "bodyText": "string",
- "image": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "audio": {
- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}
}, - "stretchImage": true,
- "horizontal": true,
- "audioLoop": true,
- "withTimeout": true,
- "timeOut": 0,
- "textColor": "string",
- "webUrl": "string",
- "youtubeLoop": true,
- "htmlCode": "string",
- "embedUrl": "string",
- "embedType": "string",
- "youtubeBaseUrl": "string",
- "youtubeId": "string",
- "advMsgType": "string"
}
}, - "trigger": {
- "triggerId": "string",
- "triggerName": "string",
- "description": "string",
- "domain": "string",
- "owner": "string",
- "triggerData": {
- "execCondition": "string",
- "execConditionSuccessCode": 0,
- "execConditionScript": true,
- "@class": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "privateRepoItem": true,
- "color": "string",
- "fontIcon": "string"
}, - "description": "Activate Emergency Alert",
- "filterId": "filter123",
- "currentDevices": [
- "device_id_1",
- "device_id_2"
], - "state": "Pending",
- "notifiedUsers": [
- "user1",
- "user2"
], - "notifyDirty": true,
- "lastChange": "2019-08-24T14:15:22Z",
- "failureCount": 3,
- "successCount": 10,
- "sentCount": 5,
- "executedCount": 7,
- "readyCount": 8,
- "persist": true,
- "persistentGroupID": "group123",
- "persistentGroupName": "EmergencyAlertGroup",
- "props": {
- "property1": "value1",
- "property2": "value2"
}, - "lastCommandStatus": {
- "id": "string",
- "commandid": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "EXECUTED",
- "note": "Uninstall apps is disallowed",
- "deviceid": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "additionalprops": {
- "property1": { },
- "property2": { }
}
}
}
], - "message": "string",
- "result": "string",
- "totalRecordCount": 0
}
Get command by ID with additional information
Retrieves a command by its ID with additional metadata and returns a response containing the command and filter information if applicable
Authorizations:
path Parameters
commandId required | string Example: command123 The unique identifier of the command. |
Responses
Response samples
- 200
- 500
Get statistics for a specific command.
This API retrieves statistics for a specific command based on its ID.
Authorizations:
path Parameters
commandId required | string |
Responses
Response samples
- 200
- 500
{- "totalDevices": 100,
- "success": 80,
- "ready": 90,
- "executed": 120,
- "fail": 20,
- "count": 150,
- "readyArr": [
- "device_id_1",
- "device_id_2"
]
}
Get command results.
This API retrieves command results for a specific command. It supports pagination and filtering by search string, sort column, sort order, and status filter.
Authorizations:
path Parameters
commandId required | string |
query Parameters
startIndex required | integer <int32> |
pageSize required | integer <int32> |
searchstring | string |
sortcolumn | string |
sortorder | string |
statusfilter | string |
Responses
Response samples
- 200
- 500
{- "commandStatus": [
- {
- "id": "string",
- "commandid": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "EXECUTED",
- "note": "Uninstall apps is disallowed",
- "deviceid": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "additionalprops": {
- "property1": { },
- "property2": { }
}
}
], - "message": "string",
- "result": "string",
- "totalRecordCount": 0
}
Retrieve live data from a device
This endpoint allows the retrieval of live data from a specific device identified by its device ID. Device authentication is required. Upon receiving the request, the API triggers the retrieval of live data from the device through a background task. The live data is collected and stored in a container associated with the device session. The API returns the live data response, containing telemetry information and other relevant device data. The API has a rate limit of 1 API call for each user and device every 1 minute.
Authorizations:
path Parameters
deviceid required | string Example: device123 The ID of the device to retrieve live data from |
query Parameters
include | string Example: include=apps,diskstats A comma-separated list of categories of data to return from the remote device. Options include 'apps' (information about installed applications), 'diskstats' (storage data), 'system_properties' (system properties), 'settings' (Android settings), and 'filesystem' (data about device volumes). |
Responses
Response samples
- 200
- 500
Retrieves installed app statistics for a group
This endpoint retrieves installed app data for a specified group. The method requires authentication and a JSON payload containing package names and group information. The response contains summarized app data for the group along with metadata indicating the success of the operation
Authorizations:
Request Body schema: application/jsonrequired
group | string The name of the group for which installed app data is requested. |
packages | Array of strings A list of package names for specific apps within the group. |
isall | boolean Flag indicating whether to retrieve data for all apps in the group. |
Responses
Request samples
- Payload
{- "group": "Group1",
- "packages": [
- "com.example.app1",
- "com.example.app2"
], - "isall": true
}
Response samples
- 200
- 500
Retrieve comprehensive device data
Access detailed information about a device with this API endpoint. It provides a more comprehensive view of the device's status, usage, and configuration compared to the dashboard data.
Authorizations:
path Parameters
deviceid required | string Example: device123 The id of the device to retrieve data from |
query Parameters
fields | string |
Responses
Response samples
- 200
- 500
Retrieve a paginated list of all devices
Use this API endpoint to retrieve a paginated list of all available devices. You can specify pagination, sorting, and filtering parameters to customize the result. The response is provided as a DeviceListResponse containing device information
Authorizations:
query Parameters
jtStartIndex required | integer <int32> |
jtPageSize required | integer <int32> |
jtSorting required | string |
searchcolumn | string |
searchfilter | string |
devicefilter | string |
oemcols | string |
sortcolumn | string Default: "hardwareId" |
extended | string Default: "false" |
sortdirection | string Default: "dsc" |
Responses
Response samples
- 200
- 500
{- "Message": "string",
- "Result": "string",
- "Records": [
- {
- "hardwareId": "string",
- "lat": 0.1,
- "lon": 0.1,
- "locked": true,
- "userIpAddress": "string",
- "hidden": true,
- "version": "string",
- "emailAccount": "string",
- "groupTag": "string",
- "imei": "string",
- "lastSeen": "2019-08-24T14:15:22Z",
- "os": "string",
- "iosData": {
- "mdmToken": "string",
- "depInfo": {
- "property1": "string",
- "property2": "string"
}, - "pendingDomainForUDID": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "udid": "string",
- "unlockToken": "string"
}, - "winInventory": {
- "bios": {
- "property1": { },
- "property2": { }
}, - "processor": {
- "property1": { },
- "property2": { }
}, - "manufactureModel": {
- "property1": { },
- "property2": { }
}, - "hotfixes": [
- {
- "property1": { },
- "property2": { }
}
], - "os": {
- "property1": { },
- "property2": { }
}, - "disks": [
- {
- "property1": { },
- "property2": { }
}
], - "loggedonUsers": [
- {
- "property1": { },
- "property2": { }
}
], - "missingUpdates": [
- {
- "property1": { },
- "property2": { }
}
], - "antivirus": [
- {
- "property1": { },
- "property2": { }
}
], - "localTime": "string",
- "currentPowerPlan": {
- "property1": { },
- "property2": { }
}, - "isFirewallEnabled": true
}, - "label": "string",
- "profileImage": "string",
- "oemName": "string",
- "smartRecoveryData": {
- "model": "string",
- "version": "string",
- "scheduleMode": "string",
- "scheduleData": {
- "property1": { },
- "property2": { }
}, - "protectedPartitions": "string",
- "lastSytemUpdate": "2019-08-24T14:15:22Z",
- "howManyDaysLeft": 0,
- "registrationNumOfUsers": "string",
- "registrationLicenseName": "string",
- "registrationLicenseStartDate": "string",
- "snapshotList": [
- {
- "index": 0,
- "name": "string",
- "desc": "string",
- "date": "2019-08-24T14:15:22Z",
- "locked": true
}
]
}, - "mobiToken": {
- "tokenId": "string",
- "geoUserID": "string",
- "password": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "deviceId": "string",
- "@class": "string"
}, - "authToken": "string",
- "brand": "string",
- "deviceType": "string",
- "deviceAFWData": {
- "enterpriseID": "string",
- "userID": "string"
}, - "rabbitClusterName": "string",
- "pushData": {
- "property1": { },
- "property2": { }
}, - "versionNumber": 0,
- "groupsAndProfiles": [
- {
- "group": "string",
- "profiles": [
- "string"
]
}
], - "ssf": [
- "string"
], - "currRoomData": {
- "property1": { },
- "property2": { }
}, - "properties": {
- "property1": { },
- "property2": { }
}, - "geofenceLocked": true,
- "installedAppsData": {
- "hardwareID": "string",
- "lastChange": "2019-08-24T14:15:22Z",
- "installedAppDataItems": [
- {
- "packageMetaData": {
- "packageID": "string",
- "packageName": "string",
- "packageVersion": 0,
- "packageVersionString": "string",
- "packageVersionName": "string",
- "iconHash": "string",
- "packageLabel": "string",
- "os": "string",
- "bundleSize": 0,
- "dynamicSize": 0,
- "type": "string",
- "companyName": "string",
- "execPath": "string",
- "enabled": true
}, - "runningNow": true
}
], - "accountMainApps": {
- "property1": {
- "packageID": "string",
- "packageName": "string",
- "packageVersion": 0,
- "packageVersionString": "string",
- "packageVersionName": "string",
- "iconHash": "string",
- "packageLabel": "string",
- "os": "string",
- "bundleSize": 0,
- "dynamicSize": 0,
- "type": "string",
- "companyName": "string",
- "execPath": "string",
- "enabled": true
}, - "property2": {
- "packageID": "string",
- "packageName": "string",
- "packageVersion": 0,
- "packageVersionString": "string",
- "packageVersionName": "string",
- "iconHash": "string",
- "packageLabel": "string",
- "os": "string",
- "bundleSize": 0,
- "dynamicSize": 0,
- "type": "string",
- "companyName": "string",
- "execPath": "string",
- "enabled": true
}
}
}, - "appUsageData": {
- "hardwareID": "string",
- "lastChange": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "appUsages": [
- {
- "numberOfUsages": 0,
- "timeUsage": 0,
- "packageMetaData": {
- "packageID": "string",
- "packageName": "string",
- "packageVersion": 0,
- "packageVersionString": "string",
- "packageVersionName": "string",
- "iconHash": "string",
- "packageLabel": "string",
- "os": "string",
- "bundleSize": 0,
- "dynamicSize": 0,
- "type": "string",
- "companyName": "string",
- "execPath": "string",
- "enabled": true
}
}
]
}, - "deviceSystemInfo": {
- "hardwareID": "string",
- "lastChange": "2019-08-24T14:15:22Z",
- "memData": {
- "availableMegs": 0,
- "totalMegs": 0
}, - "storageData": {
- "availInternalStorage": 0,
- "totalInternalStorage": 0,
- "availExtStorage": 0,
- "totalExtStorage": 0
}, - "networkUsageData": {
- "mobileRxBytes": 0,
- "mobileTxBytes": 0
}, - "networkInfo": {
- "wifiOn": true,
- "wifiSSID": "string",
- "macAddress": "string",
- "bluetoothOn": true,
- "cellularTechnology": "string"
}, - "systemGeneralInfo": {
- "batteryStatus": 0,
- "charging": true,
- "osVersion": 0,
- "model": "string",
- "cpuABI": "string",
- "screenResolution": "string",
- "deviceAccess": "string",
- "resolutions": [
- "string"
], - "serialNumber": "string",
- "cpuInfo": "string",
- "screenSize": "string",
- "has3g": true,
- "phoneNumber": "string",
- "manufacturer": "string"
}, - "partitions": [
- {
- "name": "string",
- "type": "string",
- "fileSystem": "string",
- "totalBytes": 0,
- "freeBytes": 0
}
], - "iosSystemGeneralInfo": {
- "iosVersion": "string",
- "deviceName": "string",
- "buildVersion": "string",
- "modelName": "string",
- "serialNumber": "string",
- "blueToothMac": "string",
- "activationLockEnabled": true,
- "doNotDisturbInEffect": true,
- "supervised": true,
- "productName": "string",
- "phoneNumber": "string",
- "subscriberCarrierNetwork": "string",
- "getiCCID": "string",
- "moreData": {
- "property1": { },
- "property2": { }
}
}, - "moreData": {
- "property1": { },
- "property2": { }
}
}, - "tags": [
- {
- "name": "string"
}
], - "policies": [
- {
- "policyID": "string",
- "policyName": "string",
- "type": "string",
- "priority": 0
}
], - "appliedPolicies": [
- {
- "policyID": "string",
- "policyName": "string",
- "type": "string",
- "priority": 0
}
], - "securityInfo": {
- "hardwareEncryptionCaps": [
- "string"
], - "passcodeCompliant": true,
- "passcodeCompliantWithProfiles": true,
- "passcodePresent": true
}, - "regID": "string"
}
], - "TotalRecordCount": 0
}
Save Repository Item
This API endpoint is used to create or update a repository item. It expects an HTTP POST request with a RepositoryItemBase
object in the request body. The API performs access control checks, executes pre-save operations, and then saves the repository item. If it's a new item, it sets the creation date before saving.
Authorizations:
Request Body schema: application/jsonrequired
repositoryItemId | string |
repositoryItemName | string |
repositoryItemDesc | string |
domain | string |
owner | string |
color | string |
fontIcon | string |
creationDate | string <date-time> |
object | |
privateRepoItem | boolean |
url | string |
type | string |
thumbnail | string |
object |
Responses
Request samples
- Payload
{- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "@class": "AssetsItem"
}
Response samples
- 200
- 500
Get all repository items
This endpoint retrieves all repository items. It first checks the access control list (ACL) to ensure that the logged-in user has the necessary permissions abd then returns the list of all repository items.
Authorizations:
Responses
Response samples
- 200
- 500
Save file or package repository item.
This API endpoint handles the saving of file data, including associated metadata. It requires an HTTP POST request with a RepositoryFileMetaData
object provided in the request body. The API verifies the logged user's permissions, processes the file data, and then saves it. Once the file or package has been successfully stored, it can be sent to the device(s).
Authorizations:
Request Body schema: application/jsonrequired
repositoryFileMetaDataID | string |
fileID | string |
fileName | string |
fileLocation | string |
ownerUser | string |
ownerDomain | string |
lastEditorUser | string |
privateFile | boolean |
fileDesc | string |
fileAction | string |
arguments | string |
object | |
color | string |
fontIcon | string |
creationDate | string <date-time> |
lastUpdate | string <date-time> |
Responses
Request samples
- Payload
{- "repositoryFileMetaDataID": "string",
- "fileID": "string",
- "fileName": "string",
- "fileLocation": "string",
- "ownerUser": "string",
- "ownerDomain": "string",
- "lastEditorUser": "string",
- "privateFile": true,
- "fileDesc": "string",
- "fileAction": "string",
- "arguments": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "lastUpdate": "2019-08-24T14:15:22Z"
}
Response samples
- 200
- 500
Get file or package repository items by their IDs.
This endpoint retrieves repository items based on their IDs. It expects a list of repository item IDs (repos) in the request body. The method first checks the user's permissions to ensure proper authorization. It then retrieves the list of repository file metadata. The response contains a JSON array of repository file metadata representing the requested items.
Authorizations:
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
[- "string"
]
Response samples
- 200
- 500
Get a list of repository file (or package) metadata.
This endpoint retrieves a list of repository file metadata. It first checks the user's permissions to ensure proper authorization. The API then retrieve the list of repository file metadata. The response is a JSON array containing information about each file (or package), including details such as file name, size, creation date, and other relevant metadata.
Authorizations:
Responses
Response samples
- 200
- 500
[- {
- "repositoryFileMetaDataID": "string",
- "fileID": "string",
- "fileName": "string",
- "fileLocation": "string",
- "ownerUser": "string",
- "ownerDomain": "string",
- "lastEditorUser": "string",
- "privateFile": true,
- "fileDesc": "string",
- "fileAction": "string",
- "arguments": "string",
- "properties": { },
- "color": "string",
- "fontIcon": "string",
- "creationDate": 0,
- "lastUpdate": 0
}
]
Save trigger to triggers repository
This API endpoint is used to create or update a trigger repository item. It expects an HTTP POST request with a Trigger
object in the request body. The API performs access control checks, executes pre-save operations, and then saves the trigger repository item. If it's a new item, it sets the creation date before saving.
Authorizations:
Request Body schema: application/jsonrequired
triggerId | string |
triggerName | string |
description | string |
domain | string |
owner | string |
object (TriggerData) | |
creationDate | string <date-time> |
privateRepoItem | boolean |
color | string |
fontIcon | string |
Responses
Request samples
- Payload
{- "triggerId": "string",
- "triggerName": "string",
- "description": "string",
- "domain": "string",
- "owner": "string",
- "triggerData": {
- "execCondition": "string",
- "execConditionSuccessCode": 0,
- "execConditionScript": true,
- "@class": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "privateRepoItem": true,
- "color": "string",
- "fontIcon": "string"
}
Response samples
- 200
- 500
Retrieves all triggers.
This endpoint is used to retrieve all triggers previously stored. The endpoint will return a JSON array containing all triggers in the database. If no triggers are found in the database, the endpoint will return an empty array.
Authorizations:
Responses
Response samples
- 200
- 500
Save Repository Item
This API endpoint is used to create or update a repository item. It expects an HTTP POST request with a RepositoryItemBase
object in the request body. The API performs access control checks, executes pre-save operations, and then saves the repository item. If it's a new item, it sets the creation date before saving.
Authorizations:
Request Body schema: application/jsonrequired
repositoryItemId | string |
repositoryItemName | string |
repositoryItemDesc | string |
domain | string |
owner | string |
color | string |
fontIcon | string |
creationDate | string <date-time> |
object | |
privateRepoItem | boolean |
url | string |
type | string |
thumbnail | string |
object |
Responses
Request samples
- Payload
{- "repositoryItemId": "string",
- "repositoryItemName": "string",
- "repositoryItemDesc": "string",
- "domain": "string",
- "owner": "string",
- "color": "string",
- "fontIcon": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "moreData": {
- "property1": { },
- "property2": { }
}, - "privateRepoItem": true,
- "url": "string",
- "type": "string",
- "thumbnail": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "@class": "AssetsItem"
}
Response samples
- 200
- 500
Get all repository items
This endpoint retrieves all repository items. It first checks the access control list (ACL) to ensure that the logged-in user has the necessary permissions abd then returns the list of all repository items.
Authorizations:
Responses
Response samples
- 200
- 500
Updates the household ID of the devices in the system.
The API receives a list of DeviceHHID objects which are pairs of device ID and Household ID, and set it in the system.
Authorizations:
Request Body schema: application/jsonrequired
deviceID | string The device ID which needs to be mapped to the household ID. |
hhid | string The household ID to attach to the device ID. |
Responses
Request samples
- Payload
[- {
- "deviceID": "string",
- "hhid": "string"
}
]
Response samples
- 200
- 500
Add device filter (or group)
This API endpoint allows the addition of a device filter by creating a new DeviceFilter
object. It expects an HTTP POST request with a DeviceFilter
provided in the request body. The API verifies the logged user's permissions, sets the owner and domain of the filter, and then saves it. It's important to note that a group can be thought of as a specific type of filter that is further refined by tags.
Authorizations:
Request Body schema: application/jsonrequired
id | string Id of the associated filter |
object (FilterNode) | |
name | string Filter's name |
desc | string A description of the filter |
isGroupFilter | boolean States if filter is a group filter |
owner | string The owner of the filter |
domain | string Filter's domain |
Array of objects (DeviceTag) A list of the devices tags | |
color | string A hex code for the color associated with the filter |
icon | string Icon for the filter |
schoolFilter | boolean Flag stating if the filter is a school filter |
syncedFromGoogle | boolean flag stating if the filter is synced from Google |
classroomID | integer <int64> Id for the classroom associated with the filter |
object HashMap for the current classroom room | |
password | string password for the filter |
object HashMap stating different properties of the filter | |
packages | Array of strings Filter's packages |
profileID | string |
profilesList | Array of strings Filter's list of profiles id |
packagesRepoItems | Array of strings |
Array of objects (DevicePolicyData) profiles associated with the filter | |
private | boolean |
groupFilter | boolean |
permanent | boolean |
Responses
Request samples
- Payload
{- "id": "string",
- "rootNode": {
- "@class": "string"
}, - "name": "string",
- "desc": "string",
- "isGroupFilter": true,
- "owner": "string",
- "domain": "string",
- "deviceTagList": [
- {
- "name": "string"
}
], - "color": "string",
- "icon": "string",
- "schoolFilter": true,
- "syncedFromGoogle": true,
- "classroomID": 0,
- "currentRoom": {
- "property1": { },
- "property2": { }
}, - "password": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "packages": [
- "string"
], - "profileID": "string",
- "profilesList": [
- "string"
], - "packagesRepoItems": [
- "string"
], - "profiles": [
- {
- "policyID": "string",
- "policyName": "string",
- "type": "string",
- "priority": 0
}
], - "private": true,
- "groupFilter": true,
- "permanent": true
}
Response samples
- 200
- 500
Retrieves a list of device filters (or groups).
This endpoint allows authorized users to retrieve a list of device filters and groups.
Authorizations:
Responses
Response samples
- 200
- 500
[- {
- "id": "string",
- "rootNode": {
- "nodes": [
- {
- "@class": "string"
}
], - "type": "string"
}, - "name": "string",
- "desc": "string",
- "owner": "string",
- "domain": "string",
- "deviceTagList": [
- {
- "name": "string"
}
], - "color": "string",
- "icon": "string",
- "schoolFilter": true,
- "syncedFromGoogle": true,
- "classroomID": 0,
- "currentRoom": {
- "property1": { },
- "property2": { }
}, - "password": "string",
- "properties": { },
- "packages": [
- "string"
], - "packagesRepoItems": [
- "string"
], - "profiles": [
- {
- "policyID": "string",
- "policyName": "string",
- "type": "string",
- "priority": 0
}
], - "groupFilter": true,
- "permanent": true,
- "private": true
}
]