Command Request

APIs to view and manage command requests. Learn more about commands or how to schedule a command.

Scheduled commands are currently compatible with Android devices.

List command requests

API to get and filter command requests

SecurityapiKey
Request
query Parameters
devices
string

Filter by device IDs. Accepts comma separated values.

groups
string

Filter by group IDs. Accepts comma separated values.

command
string

Filter by command name

schedule
string

Filter by schedule type

Enum: "IMMEDIATE" "WINDOW" "RECURRING"
exclude_internal_commands
boolean
Default: false

Filter to exclude internal commands

limit
number
offset
number
Responses
200

Command request list for the Tenant

401

Authorization information is missing or invalid.

500

Internal server error

get/commands/v0/commands/
Request samples
Response samples
application/json
{
  • "code": 0,
  • "message": "string",
  • "content": {
    }
}

Create a command request

API to create a command request for a set of devices or groups. Works for mixed-fleet devices (Android, iOS, etc.) if the command is supported.

You can send the command immediately or schedule command for supported devices.

Scheduled commands are currently compatible with Android devices.

SecurityapiKey
Request
Request Body schema: application/json
required
command_type
string

Identifies the type of command

* DEVICE: command request is meant for devices
* GROUP: command request is meant for groups
* DYNAMIC: command request is meant for dynamic set of devices
  i.e subset of devices from different groups or otherwise.
Enum: "DEVICE" "GROUP" "DYNAMIC"
alias
string

Another name for the command, provided by the user or Console.

devices
Array of strings <uuid> [ 0 .. 1000 ] items

List of devices to run commands. Required if command_type is 'DEVICE' or 'DYNAMIC'

groups
Array of strings <uuid> [ 0 .. 500 ] items

List of groups to run commands. Required if command_type is 'GROUP' or 'DYNAMIC'

device_type
string

Type of devices to run commands on

* active: Run commands on currently online devices
* inactive: Run commands on currently offline devices
* all: Run commands on all the devices.
  Commands will be queued for offline devices until they come back online.
Enum: "active" "inactive" "all"
command
string (DeviceCommandEnum)

Following commands are supported

* ADD_TO_WHITELIST: Whitelist an installed sytem app. Requires `package_name` in command arguments where `package_name` is the app package uploaded on Esper
* ADD_WIFI_AP : Add wifi access points for device. Requires `wifi_access_points` in command arguments where `wifi_access_points` is the data with access points
* APPLY_APP_CONFIG : Apply app configuration for an installed app.
* CLEAR_APP_DATA : Clear data for an installed app. Requires `package_name` in command arguments where `package_name` is the app package uploaded on Esper
* CONVERGE: Converge command for Blueprint
* INSTALL: Install an app on a device. Requires `app_version` in command arguments where `app_version` is the version id of app uploaded on Esper
* INSTALL_CERTIFICATE: Install a certificate chain in the system keystore of an android device. Requires `cert_file_type`, `cert_data_base64`, `cert_alias_name` and `cert_storage_type` in command arguments where `cert_file_type` must be set to "pkcs12", `cert_data_base64` contains the base64 encoded content of the pkcs12 file, `cert_alias_name` is the alias name with which the certificate chain is supposed to be installed and `cert_storage_type` must be set to "system". If the pkcs12 file is password protected, the password should be specified in the optional parameter `cert_password`.
* LOCK: Lock device screen
* REBOOT: Reboot a device
* REMOVE_FROM_WHITELIST : Remove an installed system app from whitelist. Requires `package_name` in command arguments where `package_name` is the app package uploaded on Esper
* REMOVE_WIFI_AP : Remove Wifi access points for device. Requires `wifi_access_points` in command arguments where `wifi_access_points` is the data with access points
* SET_APP_PERMISSION : Set permission for an installed app. Requires `package_name`, `grant_state`, `permission` in command arguments where `package_name` is the app package uploaded on Esper, `grant_state` should be "PERMISSION_GRANT_STATE_DEFAULT", "PERMISSION_GRANT_STATE_DENIED", "PERMISSION_GRANT_STATE_GRANTED" and `permission` is a valid permission
* SET_APP_STATE : Set the state of an app - SHOW/HIDE/DISABLE. Requries `app_state` and `package_name` in command arguments where `app_state` is the state of app and `package_name` is the app package uploaded on Esper
* SET_BLUETOOTH_STATE : Set bluetooth state (ON/OFF) for device. Requires `bluetooth_state` in command arguments where `bluetooth_state` is a boolean.
* SET_BRIGHTNESS_SCALE : Set brightness for device. Requires `brightness_value` in command arguments where `brightness_value` is an integer (1-100).
* SET_DEVICE_LOCKDOWN_STATE : Set lockdown state for a device. Requires `state` and `message` in command arguments where `state` is LOCKED/UNLOCKED and `message` is the message to be added with command
* SET_GPS_STATE :Set the GPS state for a device. Requires `gps_state` in command arguments where `gps_state` should be either 0, 1, 2, 3 or 4 (LOCATION_MODE_HIGH_ACCURACY = 0, LOCATION_MODE_SENSORS_ONLY = 1, LOCATION_MODE_BATTERY_SAVING = 2, LOCATION_MODE_OFF = 3, LOCATION_MODE_ON = 4)
* SET_KIOSK_APP : Command to set the Kiosk app for a device. Requires `package_name` in command arguments where `package_name` is the app package uploaded on Esper

* SET_MULTI_APP_MODE : Command to set the device back to multi app mode.
* SET_NEW_POLICY : Apply policy on device. Requires `policy_url` in command arguments where `policy_url` is the URL to the policy
* SET_ROTATION_STATE : Set screen orientation. Requires `rotate_state` in command arguments where `rotate_state` should be either 0, 1 or 2 (0 = AUTO, 1 = PORTRAIT_ONLY, 2 = LANDSCAPE_ONLY)
* SET_SCREEN_OFF_TIMEOUT: Set screen off timeout for a device. Requires `screen_off_timeout` in command arguments where `screen_off_timeout` should be either -1 or between 5000 and 1800000
* SET_STREAM_VOLUME : Set strema volume for a device. Requires `stream` and `volume_level` in command arguments where `stream` should be either 0(Ring), 1(Notification), 2(Alarm) or 3(Music) and `volume_level` should be a value from 0 to 100
* SET_TIMEZONE : Set the timezone for a device. Requires `timezone_string` in command arguments where `timezone_string` is a valid string representing the timezone
* SET_WIFI_STATE : Set the wifi state (ON/OFF) for a device. Requires `wifi_state` in command arguments where `wifi_state` is a boolean.
* UNINSTALL: Uninstall an app from device. Requires `package_name` in command arguments where `package_name` is the app package uploaded on Esper
* UNINSTALL_CERTIFICATE: Uninstall a certificate from an android device's system keystore using the installed certificate's alias name. Requires `cert_alias_name` and `cert_storage_type` in command arguments where `cert_alias_name` is the alias name of the certificate to be uninstalled and `cert_storage_type` must be set to "system"
* UPDATE_DEVICE_CONFIG: Push additional configurations to the Device
* UPDATE_HEARTBEAT: Ping a device
* UPDATE_LATEST_DPC : Prompt device to update the DPC app to the latest versions.
* WIPE : Wipes the device.
* RESET_LOCKSCREEN_PASSWORD: Change the lockscreen password of the device. Requires `new_lockscreen_password` in command arguments where `new_lockscreen_password` is a valid string.
* UPDATE_BLUEPRINT: Pushes or reapplies the most current Blueprint version to the device or group.
* NOTIFY_DEVICE: Allows you to  broadcast message to the device.
* SET_DEVICE_LANGUAGE: Set language for a device. Requires locale value in xx[_Zzzz]_yy where xx is language code, Zzzz is script (optional) and yy is country code.
* SET_ETHERNET_SETTINGS: Set ethernet settings on supported Device
* SET_STATIC_IP: Set static ip on the deivce. Requires interface, dhcp_dnabled, static_ip, primary_dns, subnet_mask, gateway, secondary_dns (optional)
* BEEP_DEVICE: Allows you to make the device beep for a specified duration
* SET_APP_NOTIFICATIONS: Enable/disable app notifications. Requries `app_notifications_state` and `package_name` in command arguments where `app_notifications_state` is a string that has the value `ENABLED` or `DISABLED` and `package_name` is the app package uploaded on Esper.
* USE_ONLY_SAVED_WIFI_AP: Allow/disallow device to connect to unregistered WiFi APs. Requires boolean `use_only_saved_ap`..
* DEVICE_INFORMATION: Prompt device to update the device information
* VPP_APP_INSTALL: Install a vpp app on an iOS device. Requires `app_id` and `bundle_identifier` in command arguments that corresponds to the associate vpp app
* APPLE_APP_UNINSTALL: Uninstall an app on an iOS device. Requires `app_id` and `bundle_identifier` in command arguments that corresponds to the associated app
* CLEAR_PASSCODE: Clear the passcode in a device
* LIST_INSTALLED_PROFILES: Returns a list of all installed profiles on an iOS device.
* INSTALL_PROFILE: Install a profile on an iOS device.
* REMOVE_PROFILE: Remove a profile from an iOS device.
* RUN_SHELL_SCRIPT: Run a shell script on a Linux device.
* INSTALL_WEBCLIP: Install a webclip on an iOS device.
* UNINSTALL_WEBCLIP: Uninstall a webclip from an iOS device.
Enum: "ADD_TO_WHITELIST" "ADD_WIFI_AP" "APPLY_APP_CONFIG" "CLEAR_APP_DATA" "CONVERGE" "INSTALL" "INSTALL_CERTIFICATE" "LIST_INSTALLED_PROFILES" "LOCK" "REBOOT" "REMOVE_FROM_WHITELIST" "REMOVE_PROFILE" "REMOVE_WIFI_AP" "SET_APP_PERMISSION" "SET_APP_STATE" "SET_BLUETOOTH_STATE" "SET_BRIGHTNESS_SCALE" "SET_DEVICE_LOCKDOWN_STATE" "SET_GPS_STATE" "SET_KIOSK_APP" "SET_MULTI_APP_MODE" "SET_NEW_POLICY" "SET_ROTATION_STATE" "SET_SCREEN_OFF_TIMEOUT" "SET_STREAM_VOLUME" "SET_TIMEZONE" "SET_WIFI_STATE" "UNINSTALL" "UNINSTALL_CERTIFICATE" "UPDATE_DEVICE_CONFIG" "UPDATE_HEARTBEAT" "UPDATE_LATEST_DPC" "WIPE" "RESET_LOCKSCREEN_PASSWORD" "UPDATE_BLUEPRINT" "NOTIFY_DEVICE" "SET_DEVICE_LANGUAGE" "SET_ETHERNET_SETTINGS" "SET_STATIC_IP" "BEEP_DEVICE" "SET_APP_NOTIFICATIONS" "USE_ONLY_SAVED_WIFI_AP" "DEVICE_INFORMATION" "VPP_APP_INSTALL" "APPLE_APP_UNINSTALL" "CLEAR_PASSCODE" "INSTALL_PROFILE" "RUN_SHELL_SCRIPT" "INSTALL_WEBCLIP" "UNINSTALL_WEBCLIP"
object (Command args)
schedule
string (CommandScheduleEnum)

Following Schedule types are supported

* IMMEDIATE: Schedule the command to execcute Immediately
* WINDOW: Schedule the command to execute within the given window
* RECURRING: Schedule the command to execute during the scheduled time until it succeeds or expires.  After executing successfully, it will not fire again.
Enum: "IMMEDIATE" "WINDOW" "RECURRING"
object (Command Schedule Arguments)
Responses
201

Command request successfully created.

400

Bad request

401

Authorization information is missing or invalid.

500

Internal server error

post/commands/v0/commands/
Request samples
application/json
{
  • "command_type": "DEVICE",
  • "alias": "string",
  • "devices": [
    ],
  • "groups": [
    ],
  • "device_type": "active",
  • "command": "ADD_TO_WHITELIST",
  • "command_args": {
    },
  • "schedule": "IMMEDIATE",
  • "schedule_args": {
    }
}
Response samples
application/json
{
  • "code": 0,
  • "message": "string",
  • "content": {
    }
}

Get a command request

API to get a command request

SecurityapiKey
Request
path Parameters
id
required
string

ID of the command request object

Responses
200

Command request information

401

Authorization information is missing or invalid.

404

Not Found.

500

Internal server error

get/commands/v0/commands/{id}/
Request samples
Response samples
application/json
{
  • "code": 0,
  • "message": "string",
  • "content": {
    }
}

Get stats of a command request

API to get a aggregrated status for a command request

SecurityapiKey
Request
path Parameters
id
required
string

ID of the command request object

Responses
200

Aggregrated status information for a command request.

401

Authorization information is missing or invalid.

404

Not Found.

500

Internal server error

get/commands/v0/commands/{id}/stats/
Request samples
Response samples
application/json
{
  • "code": 0,
  • "message": "string",
  • "content": {
    }
}