Skip to content

ESPER API REFERENCE (1.0.0)

Introduction

Welcome to Esper’s API documentation. The Esper API allows users to accomplish operations outside of the console. Some common uses for our APIs include observing device information and console activity, installing and updating apps, uploading files, and sending files to devices. Our users have also used the API to automate app updates, perform bulk actions, and more.

Esper API endpoints use REST-based architecture and return JSON responses.

See our documentation for:

Authentication

You need to create an API Key to interact with our APIs. Learn more about generating an API Key. You can also learn more about Esper and sign up for an account at esper.io/signup.

Some endpoints also require an Enterprise ID. This ID can be found in the API Management section of the Esper console.

Pagination

Responses may be paginated. Use the following parameters to query the data. A full list of parameters can be found on the endpoint’s documentation page.

ParameterData TypeExplanation
limitintegerLimit the data returned. Default = 20.
offsetintegerOffset to the first item returned. Default = 0.
orderingstringOrder the results set by the field name. Varies by endpoint.
nextstringPaginate to the next response set.
previousstringPaginate to the last set response.

Errors

We use standard HTTP status codes for success or failure. A typical error response may look something like this:

{
  "errors": [],
  "message": "error message",
  "status": 400
}
  • errors - List of error details
  • message - Error description
  • status - HTTP status code

Some common status codes and messages are:

NumberMessageExplanation
200OKThe request succeeded.
201Resource creationA resource was created.
401UnauthorizedThe API key is invalid.
404Not foundThe resource was not found.
429Rate limit exceededToo many requests. Wait a moment and try again.
500Server errorInternal error. Wait a moment and try again. If the issue persists, contact Esper.

See how our systems are doing by checking our status page.

Rate Limits

To ensure quality of service for all customers, we enforce rate limits for API requests. Most customers won’t hit this limit with normal use. In case you experience 429 or rate limit exceeded errors, we recommend the following:

  • Try sending requests in batches.
  • Begin with about 20 requests at a time and building up from there.
  • Ensure your scripts are efficient and don’t contain redundant calls.
  • Reach out to your account manager to discuss your options.
Download OpenAPI description
Languages
Servers
Mock server
https://api.esper.io/_mock/openapi
https://{foo}-api.esper.cloud/api

Company Settings

Operations

Application

Operations

Application V1

Operations

AndroidDevice

Operations

Device Group

Operations

Token (Deprecated)

Operations

Commands V2

Operations

Enterprise Policy

Operations

Geofence

Operations

Content

Operations

User (Deprecated)

Operations

User

Operations

Blueprint (Deprecated)

Operations

Directory Record

Operations

Tile Icon

Operations

Alerts

Operations

Alarms

Operations

Wallpapers

Operations

Device Telemetry

Operations

Get list of device tiles reports

Request

Returns list of device tiles reports

Security
apiKey
Path
enterprise_idstringrequired

A UUID string identifying this enterprise.

Query
stateinteger

Filter device-tile reports by state.

created_on_gtstring(datetime)

Filter device-tile reports created after a given timestamp.

created_on_ltstring(datetime)

Flter device-tile reports created before a given timestamp.

provisioned_on_gtstring(datetime)

Filter device-tile reports provisioned after a given timestamp.

provisioned_on_ltstring(datetime)

Filter device-tile reports provisioned before a given timestamp.

updated_on_gtstring(datetime)

Filter device-tile reports updated after a given timestamp.

updated_on_ltstring(datetime)

Filter device-tile reports updated before a given timestamp.

last_seen_gtstring(datetime)

Filter device-tile reports last seen after a given timestamp.

last_seen_ltstring(datetime)

Filter device-tile reports last seen before a given timestamp.

battery_level_gtenumber(double)

Filter device-tile reports by battery level greater than given battery level.

battery_level_ltenumber(double)

Filter device-tile reports by battery level lower than given battery level.

at_riskboolean

Filter device-tile reports by whether they are at risk.

security_statusinteger(int32)(SecurityStatesEnum)

Following are the Security States and their description

  * 1 = SECURE
  * 10 = LOW_RISK
  * 20 = MEDIUM_RISK
  * 30 = HIGH_RISK
  * 100 = DEVICE_STATE_UNSPECIFIED
Enum1102030100
statusstring

Filter device-tile reports by status.

groupstring(uuid)

Filter device-tile reports by group.

group_namestring

Filter device-tile reports by group name.

group_name_multistring

Filter device-tile reports using multiple group names.

group_multistring(uuid)

Filter device-tile reports by using multiple group ID's

group_multi_immediatestring

Filter device-tile reports by immediate groups

group_nullstring(boolean)

Filter device-tile reports by availability of group. True returns device-tiles with no group. False returns device-tiles with group.

imeistring

Filter device-tile reports by imei.

namestring

Filter device-tile reports by device name.

recently_addedboolean

Filter device-tile reports by recently added.

is_gmsboolean

Filter device-tile reports for gms devices.

tagsstring

Filter device-tile reports by tag.

is_geofence_appliedboolean

Filter device-tile reports by geofence application.

serialstring

Filter device-tile reports by device serial id.

android_versioninteger

Filter device-tile reports by android version.

android_version_multiinteger

Filter device-tile reports by multiple android versions.

wifi_ssidstring

Filter device-tile reports by wifi-ssid.

network_typestring

Filter device-tile reports by network type.

network_type_multistring

Filter device-tile reports by multiple network types.

modelstring

Filter device-tile reports by device model.

templatestring

Filter device-tile reports by template.

template_multistring

Filter device-tile reports by multiple templates.

policystring

Filter device-tile reports by policy name.

policy_multistring

Filter device-tile reports by multiple policies.

policy_nullboolean

Filter device-tile reports by null-value policy.

dpc_versionstring

Filter device-tile reports by DPC version.

locationstring

Filter device-tile reports by location.

active_connectionboolean

Filter device-tile reports by active connection status.

device_typestring

Filter device-tile reports by device type.

has_seamlessInfoboolean

Filter device-tile reports by seamless information.

curl -i -X GET \
  'https://api.esper.io/_mock/openapi/v1/enterprise/{enterprise_id}/report/device-tiles/?state=0&created_on_gt=string&created_on_lt=string&provisioned_on_gt=string&provisioned_on_lt=string&updated_on_gt=string&updated_on_lt=string&last_seen_gt=string&last_seen_lt=string&battery_level_gte=0.1&battery_level_lte=0.1&at_risk=true&security_status=1&status=string&group=497f6eca-6276-4993-bfeb-53cbbbba6f08&group_name=string&group_name_multi=string&group_multi=497f6eca-6276-4993-bfeb-53cbbbba6f08&group_multi_immediate=string&group_null=string&imei=string&name=string&recently_added=true&is_gms=true&tags=string&is_geofence_applied=true&serial=string&android_version=0&android_version_multi=0&wifi_ssid=string&network_type=string&network_type_multi=string&model=string&template=string&template_multi=string&policy=string&policy_multi=string&policy_null=true&dpc_version=string&location=string&active_connection=true&device_type=string&has_seamlessInfo=true' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

successful operation

Bodyapplication/json
countintegerrequired
nextstring or null(url)
previousstring or null(url)
resultsArray of objects(DeviceTiles)required
results[].​idinteger
results[].​deviceobject
results[].​network_infoobject
results[].​modelstring
results[].​locationobject or null
results[].​battery_levelnumber(double)
results[].​security_statestring
results[].​security_reasonstring
results[].​security_advisestring
results[].​wifi_ssidstring or null
results[].​updated_onstring(date-time)
results[].​created_onstring(date-time)
results[].​is_activeboolean
results[].​is_gmsboolean
results[].​status_idinteger or null
results[].​serial_nostring
results[].​android_versioninteger
results[].​eea_versionstring
results[].​dpc_versionstring
results[].​location_citystring
results[].​network_typestring
results[].​enterprisestring(url)
results[].​iconstring or null
Response
application/json
{ "count": 0, "next": "string", "previous": "string", "results": [ { … } ] }

Get instance of device tiles report

Request

Returns instance of device tiles report

Security
apiKey
Path
enterprise_idstringrequired

A UUID string identifying this enterprise.

device_tiles_idintegerrequired

An integer representing the device tile report.

curl -i -X GET \
  'https://api.esper.io/_mock/openapi/v1/enterprise/{enterprise_id}/report/device-tiles/{device_tiles_id}/' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

successful operation

Bodyapplication/json
idinteger
deviceobject
network_infoobject
modelstring
locationobject or null
battery_levelnumber(double)
security_statestring
security_reasonstring
security_advisestring
wifi_ssidstring or null
updated_onstring(date-time)
created_onstring(date-time)
is_activeboolean
is_gmsboolean
status_idinteger or null
serial_nostring
android_versioninteger
eea_versionstring
dpc_versionstring
location_citystring
network_typestring
enterprisestring(url)
iconstring or null
Response
application/json
{ "id": 0, "device": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "groups": [ … ], "device_name": "string", "state": 0, "tags": "string", "device_type": "string", "serial": "string", "imeis": {}, "android_version": 0, "eea_version": "string", "manufacturer": "string", "api_level": 0, "template_name": "string", "dpc_version": "string", "alias_name": "string", "provisioned_on": "2019-08-24T14:15:22Z", "geofence_id": "3b717307-4590-48e6-928a-9b2c02bde0b6" }, "network_info": { "__faust": { … }, "mobileIPv4": "string", "mobileIPv6": "string", "networkType": "string", "numberOfSim": 0, "simOperator": [ … ], "signalStrength": "string", "networkOperator": [ … ], "mobileNetworkStatus": "string", "currentActiveConnection": "string" }, "model": "string", "location": {}, "battery_level": 0.1, "security_state": "string", "security_reason": "string", "security_advise": "string", "wifi_ssid": "string", "updated_on": "2019-08-24T14:15:22Z", "created_on": "2019-08-24T14:15:22Z", "is_active": true, "is_gms": true, "status_id": 0, "serial_no": "string", "android_version": 0, "eea_version": "string", "dpc_version": "string", "location_city": "string", "network_type": "string", "enterprise": "string", "icon": "string" }

Get status metrics report for enterprise

Request

Returns status metrics report for enterprise

Security
apiKey
Path
enterprise_idstringrequired

A UUID string identifying this enterprise.

curl -i -X GET \
  'https://api.esper.io/_mock/openapi/v1/enterprise/{enterprise_id}/report/status-metrics/' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

successful operation

Bodyapplication/json
activeinteger
in_activeinteger
low_riskinteger
high_riskinteger
medium_riskinteger
secureinteger
low_batteryinteger
under_provisioninginteger
recently_addedinteger
unspecifiedinteger
total_devices_under_riskinteger
Response
application/json
{ "active": 0, "in_active": 0, "low_risk": 0, "high_risk": 0, "medium_risk": 0, "secure": 0, "low_battery": 0, "under_provisioning": 0, "recently_added": 0, "unspecified": 0, "total_devices_under_risk": 0 }

Daily and Custom Reports

Operations

SSO Connections

Operations

Roles

Operations

Personal Access Token

Operations

Blueprints API

Operations

Custom Actions API

Operations

System

Operations

Pipelines

Operations

Stages

Operations

Target Lists

Operations

Targets

Operations

Device Groups

Operations

Operation Lists

Operations

Operations

Operations

Pipeline Runs

Operations

Stage Runs

Operations

Target Runs

Operations

Device

Operations

Device Heartbeat

Operations

Device Apps

Operations

Device Enrollment in EMM

Operations

Operations

Operations

DeviceOperations

Operations

MultiOS Remote Viewer

Operations

Device V2

Operations

VPP License Management

Operations

VPP App Management

Operations

Tenant Apps

Operations

Apple App Store

Operations

App List

Operations

Webclips

Operations

Provisioning Profiles

Operations

Esper Apps

Operations

Tenant Esper Apps

Operations

Command Request

Operations

Command Status

Operations

Converge

Operations

Converge Command

Operations

DEP Sync Request

Operations

ABM Provisioning

Operations

APNs certificate

Operations

DEP Tokens

Operations

VPP Token Management

Operations

Google Enterprise

Operations

FoundryBuilds

Operations

FoundryDeviceModels

Operations

FoundryEvents

Operations

Reports API

Operations

Query API

Operations

Ingest API

Operations