MobileIron API Guide
MobileIron API Guide
1
MobileIron Confidential
Contents
API Reference Document for MobileIron WebService 9.0 ................................................................. 1
Contents .............................................................................................................................................. 2
3.7 Using offset and limit Parameters to Cycle through Records ....................................... 10
4 Authentication .......................................................................................................................... 12
5 WADL ........................................................................................................................................ 13
3
MobileIron Confidential
6.22 Re-push Profiles for a Device ........................................................................................ 87
8 Security Management............................................................................................................... 95
9.4 Get All Alerts for a Phone Number of a User .............................................................. 113
4
MobileIron Confidential
10.3 Get Devices by Application Name ............................................................................... 124
10.8 Get all apps for a platform type in App Catalog.......................................................... 132
5
MobileIron Confidential
14 Testing from a browser ........................................................................................................... 175
16.1 Changes made for February 26, 2016 version of document ...................................... 176
16.2 Changes made for February 9, 2016 version of document ........................................ 176
16.3 Changes made for October 29, 2015 version of document ........................................ 176
16.4 Changes made for July 1, 2015 version of document ................................................. 177
16.5 Changes made for May 6, 2015 version of document ................................................ 177
16.6 Changes made for March 19, 2015 version of document .......................................... 177
16.7 Changes made for November 17, 2014 version of document .................................... 177
16.8 Changes made for August 19, 2014 version of document .......................................... 177
16.9 Changes made for June 18, 2014 version of document ............................................. 178
16.10 Changes made for May 28, 2014 version of document .............................................. 178
16.11 Changes made for Dec 19, 2013 version of document ............................................... 178
6
MobileIron Confidential
1 Important Note on v1 API Deprecation
MobileIron is deprecating some v1 APIs in favor of their new v2 API counterparts and MobileIron will not
concurrently support some of the deprecated v1 versions. Please see this KB article for details.
2 Document Overview
This document provides development information for customers and partners intending to use
MobileIron WebService APIs.
The initial sections provide general guidelines and conventions for reference.
The main part of the document includes API descriptions, which are categorized as follows:
• Device management – includes device registration, changing device states (locked, lost, wiped,
retired, etc.), and retrieving lists (countries, operators, and labels).
• Exchange ActiveSync – retrieves detailed information for EAS devices and provides a way to act
on those devices.
• Security management –helps a user with password protection.
• Alerts – allows for alert retrieval and updates.
• Applications – provides an inventory of installed applications.
• Policies
• Application settings
• AppConnect analytics
Each of the above categories contains one or more API calls. In most cases, there is an API description, a
URI, a set of mandatory or optional request parameters, response status codes, and the response (with
example data included). The input parameters and output response include definitions where
necessary. Please refer to the Administration Guide for additional background and details on how these
functions behave in the UI.
The end of the document includes a sample http test client implemented in Java.
• Path parameters
• Query parameters
7
MobileIron Confidential
3.1.1 Path Parameters
Path parameters continue the URI path using a slash (/) for a separator. For example, to get details for a
device, you specify its device uuid with a path parameter. The following shows the URI format for this
request, and an example:
https://{host-name}/api/v1/dm/devices/{deviceuuid}
https://mycore.mobileiron.com/api/v1/dm/devices/4239b999-46e3-423b-
b808-54fff69b544c
If a request uses path parameters, they are specified in the URI format for the request.
https://{host-name}/api/v1/dm/devices/retire/{deviceuuid}
https://mycore.mobileiron.com/api/v1/dm/devices/retire/c097c9e2-c82e-
40f6-9e69-a0478c4fcee0?reason=AnyReasonTextYouChoose
The first query parameter is preceded by a question mark (?), using the following format:
?parameterName=parameterValue
Subsequent query parameters are preceded by an ampersand (&), using the following format:
¶meterName=parameterValue
For example, to get all the Android devices that have a particular application installed, use the following
request:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=Frog%2
0Toss!_017%201.0&platform=A
Note: If a parameter is not shown in a request’s URI format with a slash, it is a query parameter; the URI
format for a request shows only the path parameters. The description that follows each URI format
provides information on the query parameters, if any.
8
MobileIron Confidential
3.2 Date Formats
Many API calls include start and end dates in the request. In general, the dates are optional. If dates are
not included, all available records will be returned. If start and end dates are included in the request,
only records within the date range will be returned.
• Get – Use for requests that retrieve information from MobileIron Core.
• Put – Use for requests that change information on MobileIron Core.
• Post – Use for the bulk requests that perform actions on many devices, or for requests that
provide substantial information on MobileIron Core.
9
MobileIron Confidential
3.6 HTTP Response Codes
Responses from the API use the codes listed below. In addition, a “Success” message is shown for
successful method executions. When method executions fail, a descriptive error message is displayed.
• 200 OK: Success
• 400 Bad request: The request was invalid. The accompanying error message in the output
explains the reason.
• 401 Unauthorized: Authentication to the API has failed. Authentication credentials are missing
or wrong.
• 404 Not found: The requested resource is not found. The accompanying error message explains
the reason.
• 405 Method Not Allowed: The HTTP request method that was specified is not the correct
method for the request.
• 500 Internal Server Error: An internal server error has occurred while processing the request.
• 502 Bad Gateway: The MobileIron server is not reachable.
• Limit the number of records returned in the response to a number you choose, using the query
parameter limit.
For example, the following request returns the first 50 devices that have the LinkedIn app
installed:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50
• Specify the index of the first record to return in the response, using the query parameter
offset.
The value is zero-based. For example, the following request returns 50 devices, starting with the
101st device:
10
MobileIron Confidential
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50&offset=100
The offset parameter defaults to 0. Therefore, both of the following requests return 50 devices,
starting with the first device:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50&offset=0
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50
Therefore, to get successive sets of records in successive responses, increase the offset value by the
limit value in each request. For example:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50&offset=0
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50&offset=50
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=50&offset=100
For the API that gets the devices that have a particular app installed (Get Devices by Application Name),
you can also set limit to -1 to get all the devices in one response. For example:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=LinkedI
n&limit=-1
The following table summarizes the limit and offset query parameters.
11
MobileIron Confidential
Query Description Default value Special value
parameter
Every time a user or a device is created, MobileIron Core internally generates a unique identifier, called
a “uuid”. Each device gets a unique uuid. Because a single user can have multiple devices, each user
gets a unique uuid, independent of any devices used.
Other IDs are used for other purposes, such as identifying a network, and are described in the APIs.
4 Authentication
Access to the web service is granted using roles. The ability to grant role access is available to
administrators that are assigned the role ‘Manage administrators and device spaces’. These Super
Administrators can assign the ‘API’ role to a user with the following steps:
12
MobileIron Confidential
3. Select Actions > Edit Roles.
4. Select the ‘API’ role, which is listed under Others.
5. Click Save.
4.1 Username/Password
The web service requires authentication via username and password:
Username: Username of any local or LDAP user who has the ‘API’ role.
Password: The same password used to login to MobileIron Core the Admin Portal.
5 WADL
The WADL (Web Application Description Language) is an xml interface file between client and server.
The WADL file is present in the API test client zip file. To view the generated WADL, open the following
URL from a browser:
https://{host-name}/api/?_wadl&_type=xml
6 Device Management
Device Management APIs allow administrators to retrieve a variety of details for devices based on
varying search criteria. These APIs can also register, retire, wipe, lock, unlock, locate, and wakeup a
device. Lastly, labels, countries, and operators can be retrieved from these APIs.
status:
• ACTIVE – Active devices
• IENROLL_VERIFIED – Enrollment verified devices for iPhone and WebOS
• IENROLL_INPROGRESS – Enrolling devices for iPhone and WebOS
• IENROLL_COMPLETE – Enrolled devices for iPhone and WebOS
• INFECTED – Virus Infected devices
• LOST – Lost devices
• RETIRED – Retired devices
• VERIFIED – Registration Verified devices
• VERIFICATION_PENDING – Verification Pending devices
• EXPIRED – Expired devices
• WIPED – Wiped devices
13
MobileIron Confidential
statusCode:
• ACTIVE - 97
• BLOCKED - 98
• IENROLL_VERIFIED - 100
• IENROLL_INPROGRESS - 101
• IENROLL_COMPLETE - 102
• INFECTED - 105
• LOST - 108
• RETIRED - 114
• VERIFIED - 118
• VERIFICATION_PENDING - 112
• EXPIRED - 120
• WIPED - 119
• <compliance>
• <quarantinedStatus>
• <blockReason>
The value of each of these fields appears in the response as a decimal number that represents a bitmap
value. Each bit in the value represents a reason why the device is not in compliance, has been
quarantined, or has been blocked from accessing the ActiveSync server.
Field Value
<compliance> The value is non-zero if the device is not in compliance as specified by its security
policy.
<quarantinedStatus> The value is non-zero if the device is not in compliance as specified by its security
policy, and the setting that is not in compliance specifies an action that includes
quarantining the device.
<blockReason> The value is non-zero in the following cases:
• The device is not in compliance as specified by its security policy, and the
setting that is not in compliance specifies an action that includes
blocking access to the ActiveSync server.
• The administrator has manually blocked the device’s access to the
ActiveSync server. This action is available in MobileIron Core Admin
14
MobileIron Confidential
Portal, at Users & Devices | ActiveSync Associations.
Note: If multiple reasons apply, the corresponding bit values are summed. For example, if the device
has been compromised (value 1), and its OS version is less than the required version (value 2), then the
field has the value 3.
The following table shows all the possible bitmap values for the <compliance>, <quarantinedStatus>,
and <blockReason> fields:
15
MobileIron Confidential
6.3 Get Devices by Status
A device within the MobileIron system travels through a variety of different states, each of which can be
retrieved through an API call. States such as enrollment-in-progress, active, retired, lost, or wiped can
be retrieved. This API returns all devices that match the requested status type. If the status is not
specified, all devices with ‘Active’ status are returned.
Examples:
https://mycore.mobileiron.com/api/v1/dm/devices
https://mycore.mobileiron.com/api/v1/dm/devices?status=LOST
Get all devices with the status ACTIVE updated within the last 20 minutes:
https://mycore.mobileiron.com/api/v1/dm/devices?updatedWithin=20
17
MobileIron Confidential
If device registration is pending,
then the details section is empty.
<entry>
<key>device_model</key>
<value>DROIDX</value>
</entry>
<entry>
<key>platform_name</key>
<value>2.2</value>
</entry>
<entry>
<key>Client_version</key>
<value>4.2.0</value>
</entry>
</details>
<deviceCount>1</deviceCount> Not used. Always 0.
<easLastSyncAttempt>2012-01- Time of the last attempt the
10T20:36:57+00:00</easLastSyncAttempt> device made to synchronize with
Exchange ActiveSync.
<easUuid>4d22d6d7-29dc-4c35-8e67-23dee442cf85</easUuid> Exchange ActiveSync device id.
<emailAddress>[email protected]</emailAddress> The user’s email address as
entered during registration.
<emailDomain>txt.att.net</emailDomain> Email domain of the operator for
the device.
<employeeOwned>false</employeeOwned> true - the employee owns the
device.
false - the enterprise owns the
device.
19
MobileIron Confidential
assigns this identifier to the
operator.
<phoneNumber>4085551212</phoneNumber> The phone number entered by
the user or administrator during
registration.
<pin>2732E6DB</pin> Unique identification number for
a BlackBerry device. Not available
for other devices.
<platform>Android 4.4</platform> String indicating the platform
installed on the device. The
string is specified during
registration.
<quarantinedStatus>0</quarantinedStatus> A bitmap value that lists the
reasons, if any, that the device is
quarantined. When a device is
quarantined, its configurations
(that is, profiles) have been
removed due to violations with
its security policy.
20
MobileIron Confidential
via BES
Note:
76 is the value of ASCII ‘L’, which
stands for Local.
68 is the value of ASCII ‘D’, which
stands for Directory (LDAP).
<userUUID>de398fcb-a3a4-412c-a1dd-9be8bd46e728</userUUID> Internal user ID.
<iPhoneVersion>8J2</iPhoneVersion> Version number of iPhone.
</device>
</devices>
</deviceManagementWebServiceResponse>
https://mycore.mobileiron.com/api/v1/dm/devices/12849438-0d74-3c30-6b7d-
121a3da8645d
21
MobileIron Confidential
Request:
Deviceuuid Unique identifier for the device.
Only one uuid can be passed at a
time.
22
MobileIron Confidential
value pairs vary by the make,
model, and operator of the
device. The set shown is only an
example.
24
MobileIron Confidential
<operatorId>269</operatorId> Identifier of the operator for the
device. MOBILEIRON CORE
assigns this identifier to the
operator.
<phoneNumber>4085551212</phoneNumber> The phone number entered by
the user or administrator during
registration.
<platform>Android 4.4</platform> String indicating the platform
installed on the device. The
string is specified during
registration.
<quarantinedStatus>0<quarantinedStatus> A bitmap value that lists the
reasons, if any, that the device is
quarantined. When a device is
quarantined, its configurations
(that is, profiles) have been
removed due to violations with
its security policy.
25
MobileIron Confidential
BESAUTO: Register/Deploy via
BES 5.x.
<status>ACTIVE</status> String indicating the current
status of the device with regard
to registration and connection.
For valid values, see Status field
above.
<statusCode>97</statusCode> Numeric code defined for the
status. See list of valid values
above.
<userDisplayName>Joe Doe</userDisplayName> The concatenation of the user’s
first name and last name as
defined during registration.
<userFirstName>Joe</userFirstName>
<userLastName>Doe</userLastName>
<userSource>76</userSource> Value 76 for a local user.
Note:
76 is the value of ASCII ‘L’, which
stands for Local.
68 is the value of ASCII ‘D’, which
stands for Directory (LDAP).
<userUUID>de398fcb-a3a4-412c-a1dd-9be8bd46e728</userUUID> Internal user ID.
</device>
</deviceManagementWebServiceResponse>
If a key-value pair is not applicable for a device, typically the HTTP response does not include the pair.
The MobileIron Core Admin Guide has more information about fields that are available in the Admin
Portal.
26
MobileIron Confidential
Key Name Key Description Value
Example: 100
board The name of the underlying board A name that the Android OS
on the Android device. provides.
Example: venus2
brand The brand (e.g., carrier) the A string that the Android OS
Android software is customized provides.
for, if any.
Example: verizon
country_code The device’s Mobile Country Example for United States: 310
Codes (MCCs). MCCs are defined
in ITU E.212.
27
MobileIron Confidential
Key Name Key Description Value
device The name of the industrial design A string that the Android OS
of the device. provides.
Examples:
cdma_droid2
cdma_shadow
28
MobileIron Confidential
Key Name Key Description Value
<height>X<width>
Example: 854X480
Example: 5.84M
29
MobileIron Confidential
Key Name Key Description Value
home_operator Home service provider for the The service provider name,
device mobile country code and mobile
network code of the provider in
the following format:
<name>::<MCC+MNC>
Example: Verizon::310004
lat_long_last_capt The last time the location of the Specified as seconds since
ured_at device was recorded. January 1, 1970.
Example: 1324421860972
Example: 37.396074
en-US
en
Example: -122.056339
30
MobileIron Confidential
Key Name Key Description Value
multi_mdm Whether multiple Device Admin true – More than one Device
applications are active on the Admin application are active.
device.
False – One or zero Device
Admin Applications are active.
31
MobileIron Confidential
Key Name Key Description Value
unsupported – The
MobileIron client does not
support enabling or disabling
Bluetooth on the device.
unsupported – The
MobileIron client does not
support enabling or disabling
the camera on the device.
unsupported – The
MobileIron client does not
support enabling or disabling
data encryption on the device.
32
MobileIron Confidential
Key Name Key Description Value
prv_exchange_Serve Email server for the device’s user. Email server address.
r
For example:
mail.mobileiron.com
33
MobileIron Confidential
Key Name Key Description Value
34
MobileIron Confidential
Key Name Key Description Value
prv_password_expir Numbers of days after which the The number of days, or the
ation_timeout device’s password will expire. value unsupported if a
password is optional.
Example: 30
prv_password_lengt Minimum length for the device’s Number between 1 and 10, or -1
h password. which indicates the password
has no minimum length.
35
MobileIron Confidential
Key Name Key Description Value
-1 – password is optional.
unsupported – The
MobileIron client does not
support enabling or disabling SD
encryption on the device.
unsupported – A lockdown
policy is not applied to this
device.
36
MobileIron Confidential
Key Name Key Description Value
unsupported – The
MobileIron client does not
support enabling or disabling
access to wireless LANs on the
device.
Example: MobileIron-
Guest;MobileIron-Test
security_state Indicates whether the device has Ok – The device has not been
been compromised. A compromised.
compromised Android device
means that the device has been Compromised – The device
rooted, which means that an has been compromised.
application has root access to the
device’s file system.
37
MobileIron Confidential
Key Name Key Description Value
Example: 7574.19M
Example: 475.93M
Example: 6700.98M
38
MobileIron Confidential
6.3.3 iOS Details Key-Value Descriptions
The following table shows the key-value pairs in the <details> element for iOS devices. The set of key-
value pairs and the order they appear in the response vary according to the type of device, such as
iPhone or iPad. Therefore, the table presents the pairs in alphabetical order by the key name.
Note: In most cases, key names that have an underscore, such as security_state or
Client_build_date, contain information that the device’s MobileIron client provides. Key names
without underscores, such as allowUntrustedTLSPrompt or maxGracePeriod, contain
information that the device’s operating system provides.
39
MobileIron Confidential
Key Name Key Description Value
not allowed.
false – Videoconferencing is
not allowed.
40
MobileIron Confidential
Key Name Key Description Value
allowed.
Example: 30
CheckOut Received MobileIron Core has received a true – MobileIron Core has
checkout message from the received a checkout message.
device. This message indicates
that the MDM profile was false – MobileIron Core has
removed from the device. not received a checkout message.
12:02:24
Current MCC The device’s Mobile Country Example for United States: 310
Codes (MCCs). MCCs are defined
in ITU E.212 .
42
MobileIron Confidential
Key Name Key Description Value
DeviceName The name given to the device via Example: Joe B’s iPad
iTunes.
forceEncryptedBack Whether the device forces true or false
up encrypted backups.
2 – file-level encryption
Example: 262073947704030
43
MobileIron Confidential
Key Name Key Description Value
Example: 3
iPhone ICCID The ICC identifier for the installed Example: 8949 2260 7349 2040
SIM card. 105
iPhone IMEI International Mobile Equipment Example: 01 253700 080472 1
Identity of the device.
iPhone WIFI MAC address of device. Example:
MAC_ADDRESS_EN0 b8:ff:61:7f:79:26
44
MobileIron Confidential
Key Name Key Description Value
iPad
iPhone 4
iPhone VERSION The iOS build number of the iOS Example: 8J3
version that the device is
running.
it_policy_result Not used. Not used.
lat_long_last_capt The last time the location of the Specified as seconds since
ured_at device was recorded. January 1, 1970.
Example: 1325108114776
Example: 50.645397
45
MobileIron Confidential
Key Name Key Description Value
Example:
+491718169911
MC820LL
MC603DN
iPad
iPhone
iPhone OS 5.0.1
(9A405)
46
MobileIron Confidential
Key Name Key Description Value
iPad
iPhone
iPad1,1
iPhone3,1
Example: AT&T
47
MobileIron Confidential
Key Name Key Description Value
2 - Always
security_state Indicates whether the device has 0 – The device has been
been compromised. compromised.
signal_strength The signal strength on the device. A number representing the signal
strength, given in dBm.
SIM MCC Home Mobile Country Code Example for United States: 310
(numeric string). MCCs are
defined in ITU E.212 .
SIM MNC The Mobile Network Code of the Example:
SIM card on the device.
01
Note: This field contains a
07
numeric MNC only if the network
is GSM. For CDMA networks, this
field contains an abbreviation of
48
MobileIron Confidential
Key Name Key Description Value
https://{host-name}/api/v1/dm/devices.csv
Note: No support is available for exporting device information for Exchange ActiveSync (EAS) devices to a
CSV. The request https://{host-name}/api/v1/eas/devices.csv is not supported.
• Operator
• Country
• Device UUID
• Phone Number
• Principal
• Name
49
MobileIron Confidential
• Platform
• Manufacturer
• Model
• Email Address
• Status Code
• Employee Owned
• Compliance
• Quarantine Status
• IMSI
• IMEI
• UDID
• Client Version
• MDM Enabled
• Serial Number
• Last Connected At
• Active Sync UUID
• Active Sync Last Sync Attempt
• Wi-Fi MAC Address
• Device Encryption
• Last MDM Check-In
• Last Security State Changed On
• Registered On
Examples:
Get the device details for the device that has a specified phone number:
https://mycore.mobileiron.com/api/v1/dm/phones/4155551212
50
MobileIron Confidential
Get the device details for the devices that have the specified phone numbers:
https://mycore.mobileiron.com/api/v1/dm/phones/6505551212,4155551212
Get the device details for the devices belonging to the specified user:
https://mycore.mobileiron.com/api/v1/dm/users/jdoe
Get the device details for the devices assigned to a specific label:
https://mycore.mobileiron.com/api/v1/dm/labels/android
Get the device details for the device having a specific Wi-Fi MAC address:
https://mycore.mobileiron.com/api/v1/dm/devices/mac/38AA3C62BFAD
53
MobileIron Confidential
</entry>
<entry>
<entry>
<key>device_model</key>
<value>SGH-i617</value>
</entry>
<entry>
<key>platform_name</key>
<value>Windows Mobile 6.1 Standard</value>
</entry>
</details>
<deviceCount>0</deviceCount> Not used. Always 0.
<emailAddress>[email protected]</emailAddress> The user’s email address as
entered during registration.
<emailDomain>mydomain.com</emailDomain> Not used at this time.
<employeeOwned>false</employeeOwned> true - the employee owns the
device.
false - the enterprise owns the
device.
55
MobileIron Confidential
registration.
<quarantinedStatus>0</quarantinedStatus> A bitmap value that lists the
reasons, if any, that the device is
quarantined. When a device is
quarantined, its configurations
(that is, profiles) have been
removed due to violations with
its security policy.
56
MobileIron Confidential
<statusCode>97</statusCode> Numeric code defined for the
status. See list of valid values
above.
<userDisplayName>Joe Doe</userDisplayName> The concatenation of the user’s
first name and last name as
defined during registration.
<userFirstName>Joe</userFirstName>
<userLastName>Doe</userLastName>
<userUUID>de398fcb-a3a4-412c-a1dd-9be8bd46e728</userUUID> Internal user ID.
</device>
</devices>
</deviceManagementWebServiceResponse>
https://mycore.mobileiron.com/api/v1/dm/register?phoneNumber=4155551212&userI
d=jdoe&platform=A&userFirstName=Joe&userLastName=Doe&userEmailAddress=jdoe@mo
bileiron.com&countrycode=1&operator=Verizon
58
MobileIron Confidential
Response Status Code:
‘404 – No Data Found’ There is no data.
‘200 – OK’ Data is present and the response
is returned.
Response:
<deviceManagementWebServiceResponse>
<phoneNumber>14085551212</phoneNumber> Phone number registered.
<registration>
<messages/>
<deviceUuid>caba40e7-f56b-44aa-ac70- Alpha-numeric string that
79e32e91adf8</deviceUuid> uniquely identifies the device.
<messages/> Status Message.
Success is shown if the method
execution is successful.
Examples:
https://mycore.mobileiron.com/api/v1/dm/devices/retire/ee8198d9-5d79-4961-
94c4-e21bf04b2467?Reason=User%20replaced%20device
59
MobileIron Confidential
https://mycore.mobileiron.com/api/v1/dm/devices/retire/mac/38AA3C62BFAD?Reaso
n=User%20replaced%20device
Examples:
https://mycore.mobileiron.com/api/v1/dm/devices/lock/ee8198d9-5d79-4961-94c4-
e21bf04b2467?Reason=User%20lost%20device
https://mycore.mobileiron.com/api/v1/dm/devices/lock/mac/38AA3C62BFAD?Reason=
User%20lost%20device
61
MobileIron Confidential
Response Status Code:
‘404 – No Data Found’ There is no data.
‘200 – OK’ Data is present and the response
is returned.
Response:
<deviceManagementWebServiceResponse>
<messages>
<message>Device is locked successfully.</message> Status Message.
Success is shown if the method
execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
On Android and iOS devices, unlocking the device clears its passcode.
On Blackberry devices, when a device without a user-generated passcode is locked, a special MobileIron
passcode must be generated and shared with the user to unlock the device. A special passcode may be
generated based on unique device ID (uuid). For those device, this API returns the unlock passcode.
Refer to the MobileIron Core Administration Guide for details on unlock support.
Examples:
62
MobileIron Confidential
https://mycore.mobileiron.com/api/v1/dm/devices/unlock/ee8198d9-5d79-4961-
94c4-e21bf04b2467?Reason=User%20forgot%20password
https://mycore.mobileiron.com/api/v1/dm/devices/unlock/mac/38AA3C62BFAD?Reaso
n=User%20forgot%20password
<passcodes>
<passcode>
<uuid>cf667a65-1e1a-4121-af63-398b11540d2f</uuid> Unique device ID.
<name> jdoe:Android:6505551212</name> Username:Platform:
phonenumber string to help
distinguish between a user’s
multiple devices.
<value>6910</value> For iOS devices:
Example:
64
MobileIron Confidential
https://mycore.mobileiron.com/api/v1/dm/devices/wipe/ee8198d9-5d79-4961-94c4-
e21bf04b2467?Reason=Device%stolen
https://mycore.mobileiron.com/api/v1/dm/devices/wipe/38AA3C62BFAD?Reason=
Device%stolen
Examples:
https://mycore.mobileiron.com/api/v1/dm/devices/wakeup/ee8198d9-5d79-4961-
94c4-e21bf04b2467
https://mycore.mobileiron.com/api/v1/dm/devices/wakeup/mac/38AA3C62BFAD
1.URI: Request to wake up is sent to
https://{host-name}/api/v1/dm/devices/wakeup/{deviceuuid} device with the input device
uuid.
Http Method: GET
Format: xml, json
Response:
< deviceManagementWebServiceResponse>
<messages>
<message>Wake up request sent to device with uuid:cf667a65- Status Message.
1e1a-4121-af63-398b11540d2f</message> Success is shown if the method
execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
1. Call this API with locatenow=true. This will send a request to the device to determine the
current location. This process might take between a few seconds and 1 minute.
2. Call the locate API again after a few minutes without the locatenow parameter . This will return
the current location found from step 1. If the current location could not be determined it will
return the last known location.
Examples:
https://mycore.mobileiron.com/api/v1/dm/devices/locate/ee8198d9-5d79-4961-
94c4-e21bf04b2467
https://mycore.mobileiron.com/api/v1/dm/devices/locate/mac/38AA3C62BFAD
https://mycore.mobileiron.com/api/v1/dm/devices/locate/ee8198d9-5d79-4961-
94c4-e21bf04b2467?locatenow=true
67
MobileIron Confidential
Request:
macAddress Required.
locatenow Optional. True or false. Defaults
to false. See step 1 in the
explanation above. This
parameter does not apply to iOS.
• Voice roaming is available only on certain carriers. If you use this API to enable voice roaming on
a device, the API returns success regardless of whether voice roaming is available on that
device’s carrier.
• If you disable voice roaming, you are also disabling data roaming, even if you specify true
(enable) for the data roaming query parameter.
• The API returns success regardless of whether the device supports the setting. To see whether a
device has data or voice roaming enabled, see the Voice Roaming Enabled and
DataRoamingEnabled fields in the response to a Get Device API. See 5.3.3 iOS Details Key-
Value Descriptions.
Example:
https://mycore.mobileiron.com/api/v1/dm/devices/enableroaming/ee8198d9-5d79-
4961-94c4-e21bf04b2467?voice=true&data=false
69
MobileIron Confidential
data Required. This parameter is a
query parameter.
70
MobileIron Confidential
6.13 Get all Labels
Using labels is the method by which devices are grouped in the MobileIron database. Labels can be
used for applying policies or performing other management tasks on multiple devices. An administrator
can create labels in addition to a default set supplied in MobileIron Core. This API lists all labels,
whether or not they are in use.
Example:
https://mycore.mobileiron.com/api/v1/dm/labels
71
MobileIron Confidential
<staticLabel>false</staticLabel> Static labels are system created
labels.
False indicates a dynamic label.
Devices which satisfy the criteria
specified in <searchCriteria> are
automatically added to this label.
True indicates a static label,
which has no <searchCriteria>
Devices are manually assigned to
static labels.
<query>
"common.platform"="iOS" AND
"common.retired"=false
</query>
<deviceCount>3</deviceCount> The number of devices currently
assigned to the label.
<isESSearch>116</isESSearch>
<label>
</labels>
< /deviceManagementWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/dm/labels/devices/12849438-0d74-3c30-
6b7d-121a3da8645d
Request:
Device UUID Required. Unique ID of the
device. This ID is sent in the
response of the Registration API.
Examples:
73
MobileIron Confidential
https://mycore.mobileiron.com/api/v1/dm/labels/TestLabel/bdcbdf2e-a64f-41ac-
800c-f834eb8869e2?action=apply
https://mycore.mobileiron.com/api/v1/dm/labels/TestLabel1,TestLabel2/bdcbdf2e
-a64f-41ac-800c-f834eb8869e2?action=apply
https://mycore.mobileiron.com/api/v1/dm/labels/TestLabel1,TestLabel2/bdcbdf2e
-a64f-41ac-800c-f834eb8869e2,3eaab11d-0437-4528-a0db-
0713f75a701b?action=apply
Request:
label Required.
deviceUuid Required.
74
MobileIron Confidential
commas.
?action=apply
Examples:
75
MobileIron Confidential
Remove one label named TestLabel from one device:
https://mycore.mobileiron.com/api/v1/dm/labels/TestLabel/bdcbdf2e-a64f-41ac-
800c-f834eb8869e2?action=remove
Remove two labels, named TestLabel1 and TestLabel2, from one device:
https://mycore.mobileiron.com/api/v1/dm/labels/TestLabel1,TestLabel2/bdcbdf2e
-a64f-41ac-800c-f834eb8869e2?action=remove
Remove two labels, named TestLabel1 and TestLabel2, from two devices.
https://mycore.mobileiron.com/api/v1/dm/labels/TestLabel1,TestLabel2/bdcbdf2e
-a64f-41ac-800c-f834eb8869e2,3eaab11d-0437-4528-a0db-
0713f75a701b?action=remove
Request:
label Required.
deviceUuid Required.
76
MobileIron Confidential
43af-85e7-33dde660316d
?action=remove
Example:
https://mycore.mobileiron.com/api/v1/dm/operators
78
MobileIron Confidential
6.18 List of Countries
MobileIron retains a default list of countries in the database. A country selection populates the country
code field. This API provides a complete list of all defined countries, regardless of whether they are
used. This list of countries is used during device registration.
Example:
https://mycore.mobileiron.com/api/v1/dm/countries
<country>
<countryName>United States</countryName> Country name.
<countryCode>1</countryCode> Numeric country code.
<isoAlpha2Code>US</isoAlpha2Code> ISO Alpha 2 country code.
<enabledForRegistration>102</enabledForRegistration> Whether the MobileIron Core
administrator enabled the
country for registration.
102 means disabled.
116 means enabled.
<country>
<countryName>India</countryName>
<countryCode>91</countryCode>
<isoAplha2Code>IN</isoAplha2Code>
<enabledForRegistration>116</enabledForRegistration>
</country>
</countries>
< /deviceManagementWebServiceResponse>
MobileIron Core validates that the request has a valid action and valid devices, and then sends the
response. MobileIron Core performs the actions after sending the response. You can view the actions
taken by looking at Logs & Events | All Logs in the Admin Portal.
If the requested action is invalid, MobileIron Core sends a response so indicating. If some devices are
invalid, the response lists them, but MobileIron Core will still take the action on the valid devices.
Note: The UNLOCK bulk request is the exception. In this case, MobileIron Core performs the action
before sending the response.
Example:
https://mycore.mobileiron.com/api/v1/dm/bulk/devices/LOCK?deviceUuids=1ac8bd8
1-4ab9-4e3e-b3a8-0c4f70521d23&deviceUuids=ab7e93f4-90e2-485b-82b9-
7a030ef7d985
80
MobileIron Confidential
<deviceManagementWebServiceResponse>
<messages/>
</deviceManagementWebServiceResponse>
URI:
https://{host-name}/api/v1/dm/bulk/devices/{actiontype}
Http Method: POST
Format: xml, json
Request:
actiontype Required.
Specify one of these action types:
LOCK
UNLOCK
WAKEUP_DEVICE
RETIRE
WIPE
82
MobileIron Confidential
<failedDevices> Only for the UNLOCK action.
<message>
Message contents indicates the
device for which the unlock
failed.
</message>
</failedDevices>
< /deviceManagementWebServiceResponse>
MobileIron Core validates that the request has valid devices, and then sends the response. MobileIron
Core sends the messages to the devices after sending the response. You can view the results of sending
the messages by looking at Logs & Events | All Logs in the Admin Portal.
If some devices are invalid, the response lists them, but MobileIron Core will still send the message to
the valid devices.
Examples:
https://app027.auto.mobileiron.com/api/v1/dm/bulk/sendmessage?mode=sms&messag
e=Hello World&deviceUuid=e6d4f5f0-d883-41d2-8e87-
c76fb4ef4cde&deviceUuid=54bc5eb5-592c-472e-98d2-e859bd037fef
<deviceManagementWebServiceResponse>
<messages/>
<message> Message sent successfully for all devices.</message>
</deviceManagementWebServiceResponse>
https://app027.auto.mobileiron.com/api/v1/dm/bulk/mac/sendmessage?mode=sms&me
ssage=Hello World&deviceWiFiMacAddress=00237696635F
1.URI:
https://{host-name}/api/v1/dm/bulk/sendmessage
Http Method: POST
83
MobileIron Confidential
Format: xml, json
Request:
deviceUuid Required.
2.URI:
https://{host-name}/api/v1/dm/bulk/mac/sendmessage
Http Method: POST
Format: xml, json
Request:
deviceWiFiMacAddress Required.
84
MobileIron Confidential
message Required.
subject Valid only when the mode is
email.
mode Required. Possible values:
sms
email
pns
</messages>
<invalidDevices> If the request contains one or
more invalid device uuids, this
field lists them.
<uuid> 1ac8bd81-4ab9-4e3e-b3a8-0c4f70521d23</uuid>
<uuid> 623094f9-645b-4ecf-8840-78597cc1254b</uuid>
</invalidDevices>
</messageSentFailed> Indicates the message was not
sent for at least one specified
device, due to, for example, an
invalid device uuid.
< /deviceManagementWebServiceResponse>
Example:
https://app027.auto.mobileiron.com/api/v1/dm/devices/profiles/e6d4f5f0-d883-
41d2-8e87-c76fb4ef4cde
85
MobileIron Confidential
Http Method: GET
Request:
deviceUuid Required.
Unique ID of the device. This ID
can be retrieved in the response
of other API calls, such as Device
Registration or Get Device
Details.
<deviceManagementWebServiceResponse>
<messages />
<profiles>
<profile id="-7">
<uuid>misystem-default-docs-policy</uuid>
<name>Default Docs@Work Policy</name>
<policyType>DOCS</policyType>
<status>Applied</status>
<profileType>POLICY</profileType>
<lastUpdatedAt>1347343156739</lastUpdatedAt>
</profile>
<profile id="-3">
<uuid>misystem-default-security-policy</uuid>
<name>Default Security Policy</name>
<policyType>SECURITY</policyType>
<status>Applied</status>
<profileType>POLICY</profileType>
<lastUpdatedAt>1347343165503</lastUpdatedAt>
</profile>
<profile id="-2">
<uuid>misystem-default-privacy-policy</uuid>
<name>Default Privacy Policy</name>
<policyType>PRIVACY</policyType>
86
MobileIron Confidential
<status>Applied</status>
<profileType>POLICY</profileType>
<lastUpdatedAt>1347343156731</lastUpdatedAt>
</profile>
<profile id="-2">
<name> System - iOS MDM</name>
<policyType>MDM</policyType>
<status>Applied</status>
<profileType>APP</profileType>
<lastUpdatedAt>1347343165501</lastUpdatedAt>
</profile>
</profiles>
</deviceManagementWebServiceResponse>
Example:
https://app027.auto.mobileiron.com/api/v1/dm/devices/repushprofile/e6d4f5f0-
d883-41d2-8e87-c76fb4ef4cde
https://app386.auto.mobileiron.com/api/v1/dm/devices/repushprofile/1faaaf43-
c99d-4c21-bab4-c9e810bd9606?id=3&type=APP
Request:
deviceUuid Required.
Unique ID of the device. This ID
can be retrieved in the response
of other API calls, such as Device
Registration or Get Device
Details.
id Profile ID. Use the Get Profiles
API to get the profile ID.
87
MobileIron Confidential
type APP for configuration
POLICY for policy
An administrator may wish to block an ActiveSync device to prevent it from connecting to the enterprise
(i.e., get email). If a device is blocked, any previously synchronized email is removed. Use the allow
feature to permit a device to connect to the enterprise which was previously blocked.
Example:
https://mycore.mobileiron.com/api/v1/eas/devices
88
MobileIron Confidential
devices were found.
</messages>
<registeredAllowedDevices>
<registeredAllowedDevice> All the child elements of the
<registeredAllowedDevice>
element are also in the
<registeredBlockedDevice>,
<unregisteredAllowedDevice>,
<unregisteredBlockedDevice>,
and <wipedDevice> elements.
<uuid>hdgd-e93c-49b1-88d6-222f54132445</uuid> ActiveSync unique identifier for
the device.
<domain>exchdomain.com</domain> The Exchange ActiveSync domain
of the device.
<deviceId>Appl87025CNUA4S</deviceId> ActiveSync device identifier.
<mailboxId>jdoe113</mailboxId> ActiveSync mailbox ID for the
device.
<userName>jdoe113</username> ActiveSync username associated
with the device.
<phoneNumber>6505551212</phoneNumber> Phone number associated with
the device.
<model>iPhone</model> Device model as recorded by the
ActiveSync server.
<platform>iOS</platform> Device operating system as
recorded by the ActiveSync
server.
<platformCode>11</platformCode> Device operating system code as
recorded by te ActiveSync server.
<status>Registered</status> MobileIron status for the device.
<activeSyncStatus>Allowed</activeSyncStatus> ActiveSync status for the device.
<firstSyncTime>1326179585000</firstSyncTime> The timestamp for the first time
the device synchronized
ActiveSync data. This time field is
expressed in Unix Epoch Time,
which is the number of
milliseconds since January 1,
1970.
<lastSyncTime>1326180768000</lastSyncTime> The timestamp for te last time
the device synchronized
ActiveSync data. This time field is
expressed in Unix Epoch Time,
which is the number of
milliseconds since January 1,
89
MobileIron Confidential
1970.
<miDeviceUuid>6f72cabb-1d8b-4965-aa8e- MobileIron unique identifier for
a355deab8222</miDeviceUuid> the device.
<actionSource>EXCHANGE</actionSource>
</registeredAllowedDevice> ActiveSync unique identifier for a
registered device with Allowed
status.
</registeredAllowedDevices> A list of ActiveSync unique
identifiers for registered devices
with Allowed status.
<registeredBlockedDevices> A list of ActiveSync unique
identifiers for registered devices
with Blocked status.
<registeredBlockedDevice>
<uuid>hgdgd-fsg-4wfsb1-dgdg-dgfdg</uuid> ActiveSync unique identifier for a
registered device with Blocked
status.
</ registeredBlockedDevice >
</ registeredBlockedDevices>
<unregisteredAllowedDevices> A list of ActiveSync unique
identifiers for unregistered
devices with Allowed status.
<unregisteredAllowedDevice>
<uuid>8herw5345d711cdc-e93c-dfg-hgdf-hssgfd</uuid> ActiveSync unique identifier for
an unregistered device with
Allowed status.
</ unregisteredAllowedDevice >
</ unregisteredAllowedDevices>
<unregisteredBlockedDevices> A list of ActiveSync unique
identifiers for unregistered
devices with Blocked status.
<unregisteredBlockedDevice>
<uuid>34gdrtger-4err-gd-88d6-2fes</uuid> ActiveSync unique identifier for
an unregistered device with
Blocked status.
</ unregisteredBlockedDevice >
</ unregisteredBlockedDevices>
<wipedDevices> A list of ActiveSync unique
identifiers for devices that have
been wiped via ActiveSync wipe.
< wipedDevice >
<uuid>sersdfsc-e93c-49b1-88d6-sg2wefwef</uuid> ActiveSync unique identifier for a
wiped device.
90
MobileIron Confidential
</ wipedDevice >
</ wipedDevices >
</easWebServiceReponse>
Example:
https://mycore.mobileiron.com/api/v1/eas/devices/ee8198d9-5d79-4961-94c4-
e21bf04b2467
91
MobileIron Confidential
set manually by administrator
UNKNOWN('u', "Unknown")
<value>Exchange</value>
</entry>
<entry>
<key>LastPingHeartbeat</key>
<value>600</value>
</entry>
<entry>
<key>DeviceID</key>
<value>Appl9C0180RF75J</value>
</entry>
<entry>
<key>FirstSyncTime</key>
<value>7/6/2010 11:29:33 AM</value>
</entry>
<entry>
<key>DevicePolicyApplicationStatus</key>
<value>AppliedInFull</value>
</entry>
<entry>
<key>LastSyncAttemptTime</key>
<value>7/7/2010 12:14:52 PM</value>
</entry>
<entry>
<key>NumberOfFoldersSynced</key>
<value>2</value>
</entry>
<entry>
<key>DeviceType</key>
<value>iPod</value>
</entry>
<entry>
<key>DeviceModel</key>
<value>iPod</value>
</entry>
<entry>
<key>DeviceUserAgent</key>
<value>Apple-iPod/705.18</value>
</entry>
<entry>
92
MobileIron Confidential
<key>Status</key>
<value>DeviceOk</value>
</entry>
<entry>
<key>Guid</key>
<value>61a8a847-8e3b-4496-8da6-587b845b77cf</value>
</entry>
<entry>
<key>DeviceAccessState</key>
<value>Allowed</value>
</entry>
<entry>
<key>DeviceEnableOutboundSMS</key>
<value>False</value>
</entry>
<entry>
<key>Identity</key>
<value>newyork.mobileiron.com/Users/Sang
Truong/ExchangeActiveSyncDevices/iPod§Appl9C0180RF75J</value
>
</entry>
<entry>
<key>DeviceAccessStateReason</key>
<value>Individual</value>
</entry>
<entry>
<key>DevicePolicyApplied</key>
<value>Default</value>
</entry>
<entry>
<key>LastPolicyUpdateTime</key>
<value>7/6/2010 11:29:34 AM</value>
</entry>
<entry>
<key>IsRemoteWipeSupported</key>
<value>True</value>
</entry>
<entry>
<key>LastSuccessSync</key>
<value>7/7/2010 12:14:52 PM</value>
</entry>
<entry>
93
MobileIron Confidential
<key>RecoveryPassword</key>
<value>********</value>
</entry>
<entry>
<key>DeviceActiveSyncVersion</key>
<value>12.1</value>
</entry>
</details>
</easDevice>
Example:
https://mycore.mobileiron.com/api/v1/eas/devices?action=BLOCK_DEVICE&uuids=ee
8198d9-5d79-4961-94c4-e21bf04b2467&uuids=fe816c9-4c68-3850-83b3-d10ae93a1356
94
MobileIron Confidential
Response:
<easWebServiceResponse>
<messages>
<message>
1 device(s) modified to BLOCK_DEVICE status Status message. Displays action
taken on EAS device.
</ message >
</messages>
</easWebServiceResponse>
8 Security Management
The Security Management API addresses authentication tasks. These tasks apply to both local users and
LDAP users.
Example:
https://mycore.mobileiron.com/api/v1/sm/authentication/users/jdoe
For security reasons, include the old and new passwords in the HTTP request body rather than as query
parameters. For example:
96
MobileIron Confidential
Password changed successfully for user: jdoe Status Message.
Success shown if the method
execution is successful.
A descriptive error message is
shown if the method execution
failed.
</ message >
</messages>
</securityManagementWebServiceResponse>
Examples:
https://mycore.mobileiron.com/api/v1/sm/certificates/upload/jdoe
Example:
https://mycore.mobileiron.com/api/v1/sm/certificates/delete/jdoe
98
MobileIron Confidential
URI: Updates password for input
https://{host-name}/api/v1/sm/certificates/delete/{username} username.
Http Method: POST
Format: xml, json
Request:
Example:
https://mycore.mobileiron.com/api/v1/sm/certificates/list/jdoe
99
MobileIron Confidential
<messages>
<message>
Found 1 Certificate(s) for user:miadmin
</message>
<message>
Certificate Info:Serial No:114379182501950,
Expires at:Sun Mar 03 19:40:41 UTC 2013,
Version:3, Algorithm:SHA1withRSA,
Issuer:SERIALNUMBER=07969287, CN=Go Daddy Secure
Certification Authority,
OU=http://certificates.godaddy.com/repository,
O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona,
C=US, Subject:CN=*.mobileiron.com, OU=Domain
Control Validated, O=*.mobileiron.com
</message>
</messages>
</securityManagementWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/sm/users/jdoe
<googleAppsEncryptionAlgVersion>0</googleAppsEncryptionAlgV
ersion>
<lastAdminPortalLoginTime>1374178220915</lastAdminPortalLo
ginTime>
<lastName></lastName>
<opaque>true</opaque>
<roles>ROLE_MPW_LOCK</roles>
<roles>ROLE_USER_MANAGEMENT_RW</roles>
<roles>ROLE_MAI_RW</roles>
<roles>ROLE_APPS_AND_FILES_RW</roles>
<roles>ROLE_SENTRY_FOR_IPAD</roles>
<roles>ROLE_ADMIN_LOCATE</roles>
<roles>ROLE_LOG_R</roles>
<roles>ROLE_TROUBLESHOOTING_RW</roles>
<roles>ROLE_EVENT_CENTER_RW</roles>
<roles>ROLE_ADMIN_WIPE</roles>
<roles>ROLE_SELECTIVE_WIPE</roles>
<roles>ROLE_MPW_REG</roles>
<roles>ROLE_SECURITY_AND_POLICIES_RW</roles>
<roles>ROLE_MPW_LOCATE</roles>
<roles>ROLE_API</roles>
<roles>ROLE_SMARTPHONES_AND_DEVICES_RW</roles>
<roles>ROLE_MPW_WIPE</roles>
<roles>ROLE_USER_PORTAL_RW</roles>
<roles>ROLE_CONNECTOR</roles>
<roles>ROLE_SETTINGS_RW</roles>
<userSource>76</userSource>
</user>
</securityManagementWebServiceResponse>
101
MobileIron Confidential
Example:
https://mycore.mobileiron.com/api/v1/sm/users/search/ldap/?userid=jdoe
Response:
<securityManagementWebServiceResponse>
<userName>testuser000</userName>
<messages/>
<users>
<user>
<principal>testuser0001</principal>
<displayName>testuser0001</displayName>
<email>[email protected]</email>
<enabled>false</enabled>
<firstName>Test</firstName>
<forcePasswordChange>false</forcePasswordChange>
<lastName>User0001</lastName>
<opaque>true</opaque>
<userSource>68</userSource>
</user>
<user>
<principal>testuser0003</principal>
<displayName>testuser0003</displayName>
<email>[email protected]</email>
<enabled>false</enabled>
<firstName>Test</firstName>
102
MobileIron Confidential
<forcePasswordChange>false</forcePasswordChange>
<lastName>User0003</lastName>
<opaque>true</opaque>
<userSource>68</userSource>
</user>
</users>
</securityManagementWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/sm/authentication
103
MobileIron Confidential
For security reasons, include the password in the HTTP request body rather than as a query parameter.
For example:
username=jdoe&password=abcd1234
<googleAppsEncryptionAlgVersion>0</googleAppsEncryptionAlgV
ersion>
<lastAdminPortalLoginTime>1374178220915</lastAdminPortalLo
ginTime>
<lastName></lastName>
<opaque>true</opaque>
<roles>ROLE_MPW_LOCK</roles>
<roles>ROLE_USER_MANAGEMENT_RW</roles>
<roles>ROLE_MAI_RW</roles>
<roles>ROLE_APPS_AND_FILES_RW</roles>
<roles>ROLE_SENTRY_FOR_IPAD</roles>
<roles>ROLE_ADMIN_LOCATE</roles>
<roles>ROLE_LOG_R</roles>
<roles>ROLE_TROUBLESHOOTING_RW</roles>
<roles>ROLE_EVENT_CENTER_RW</roles>
<roles>ROLE_ADMIN_WIPE</roles>
<roles>ROLE_SELECTIVE_WIPE</roles>
<roles>ROLE_MPW_REG</roles>
<roles>ROLE_SECURITY_AND_POLICIES_RW</roles>
<roles>ROLE_MPW_LOCATE</roles>
<roles>ROLE_API</roles>
<roles>ROLE_SMARTPHONES_AND_DEVICES_RW</roles>
<roles>ROLE_MPW_WIPE</roles>
<roles>ROLE_USER_PORTAL_RW</roles>
<roles>ROLE_CONNECTOR</roles>
<roles>ROLE_SETTINGS_RW</roles>
<userSource>76</userSource>
</user>
</securityManagementWebServiceResponse>
105
MobileIron Confidential
9 Alerts
MobileIron’s Event Center enables administrators to connect events to specific alerts. The following
events are recognized:
• International Roaming Event
• Threshold Reached Event
• SIM Changed Event
• Storage Size Exceeded Event
• System Event
• Policy Violations Event
This API can retrieve alerts generated by an above named event.
Alerts include a variety of characteristics, such as severity, lifecycle status, and read/unread status. Alert
Lifecycle statuses are defined as follows:
1. Created: the conditions for generating the alert have been met.
2. Processed: the alert has been generated.
3. Dispatched: the alert has been sent.
• Dispatch Pending: alert is ready for dispatch.
• Dispatching: dispatch is in progress.
• Dispatched: dispatch has been completed successfully.
• Dispatch Failed: dispatch failed.
Examples:
https://mycore.mobileiron.com/api/v1/alerts
https://mycore.mobileiron.com/api/v1/alerts?isRead=false
The fields in the response are the same as the fields in the Get All Alerts Response. However, the set of
alerts is limited to alerts for the phone number specified in the request.
Examples:
108
MobileIron Confidential
Get all alerts for a phone number:
https://mycore.mobileiron.com/api/v1/alerts/phones/6505551212
Get all alerts for a phone number that have been read:
https://mycore.mobileiron.com/api/v1/alerts/phones/6505551212?isRead=true
<eventSubscriptionName>m1</eventSubscriptionName>
<alertDate>2010-05-01T01:02:00+00:00</alertDate>
<alertText>WARNING::Memory size exceeded 1% for Phone Alert content.
#: 14085551212 (miadmin), Total Memory Size: 154.86MB, Free
Memory Size: 133.59MB</alertText>
<isActive>false</isActive> true -- the alert is unread.
110
MobileIron Confidential
9.3 Get all Alerts for User
This API returns all alerts for a single user. Because users may have multiple devices, this API returns all
alerts on all devices matching the username. You can further filter the alerts by their read/unread
status.
The fields in the response are the same as the fields in the Get All Alerts Response. However, the set of
alerts is limited to alerts for the user specified in the request.
Examples:
https://mycore.mobileiron.com/api/v1/alerts/users/jdoe
https://mycore.mobileiron.com/api/v1/alerts/users/jdoe?isRead=false
111
MobileIron Confidential
method execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
<alerts>
<alert>
<id>5</id>
<deviceUuid>6482dce2-ea75-400a-9f2c-
d67766d942cf</deviceUuid>
<dispatchDeviceUuid>6482dce2-ea75-400a-9f2c-
d67766d942cf</dispatchDeviceUuid>
<userUuid>asdasd-34sd-234sdf-sfsdfd</userUuid> uuid of the user.
<labelId>1</labelId> The internal id of the label that
triggered the alert.
<eventSubscriptionName>m1</eventSubscriptionName>
<alertDate>2010-05-01T01:02:00+00:00</alertDate>
<alertText>WARNING::Memory size exceeded 1% for Phone Alert content.
#: 14085551212 (miadmin), Total Memory Size: 154.86MB, Free
Memory Size: 133.59MB</alertText>
<isActive>false</isActive> true -- the alert is unread.
The fields in the response are the same as the fields in the Get All Alerts Response. However, the set of
alerts is limited to alerts for the user specified in the request.
Example:
https://mycore.mobileiron.com/api/v1/alerts/users/jdoe/phones/16505551212
Example:
https://mycore.mobileiron.com/api/v1/alerts/ 3936?isRead=false&comments=Reset
115
MobileIron Confidential
is returned.
Response:
<alertWebServiceResponse>
<messages>
<message>Updated alert 3936 successfully</message> Status Message.
Success is shown if the method
execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
</alertWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/alerts?id=3936&id=3934&isRead=true&comme
nts=”Jdoe read this alert”
116
MobileIron Confidential
Comments to be added to the
alert. Free form text field (255
character limit).
10 Applications
10.1 Get Application Inventory
This API returns the list of all applications installed across all devices in the MobileIron system.
Example:
https://mycore.mobileiron.com/api/v1/apps/inventory
117
MobileIron Confidential
<messages>
<message>1 App(s) returned</message> Status Message.
Application count is shown if the
method execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
<apps>
<app id="1">
Bundle ID or package name of
<bundle>com.mobileiron.enterprise.webcontainer the app in the App Catalog on
</bundle> MobileIron Core.
<appName>Apps@Work 1.1.2</appName> Application name.
<assetName>Apps@Work 1.1.2</assetName> Application name. This field has
the same value as the
<appName> field.
<inventoryAppId>1</inventoryAppId> Unique application ID of the app
in the App Catalog on MobileIron
Core, if applicable.
<platform>iOS</platform> The platform that the app runs
on. Possible values are:
Android
Android 1.6
Android 2.0
Android 2.0.1
Android 2.1
Android 2.2
Android 2.3
Android 3.0
Android 3.1
Android 3.2
Android 4.0
Android 4.0.1
Android 4.0.3
Android 4.0.2
Android 4.0.4
Android 4.1
Android 4.2
Android 4.3
Android 4.4
AppleTV
118
MobileIron Confidential
AppleTV 7.0
iOS 4.0
iOS 4.1
iOS 4.2
iOS 4.3
iOS 5.0
iOS 5.1
iOS 6.0
iOS 6.1
iOS 6.2
iOS 7.0
iOS 7.1
iOS 8.0
OS X
OS X 10.7
OS X 10.8
OS X 10.9
OS X 10.10
Windows Phone
Windows Phone 8
Windows
Windows Pro/RT
Windows 8.1
Windows Phone 8.1
<reportedAppName>Apps@Work</reportedAppName> The app name as reported by the
device, used there on the app’s
springboard. That is, it is the
name associated with the app’s
icon on the device.
The following table shows the values of the <status> field for iOS managed apps.
Note: All the values, with the exceptions of NotInstalled and MDM Removed, are provided by iOS.
Examples:
https://mycore.mobileiron.com/api/v1/apps/inventory/devices/038d9439-0f75-
4d30-8d7d-120b4cb8646b
https://mycore.mobileiron.com/api/v1/apps/inventory/devices/mac/38AA3C62BFAD
121
MobileIron Confidential
‘404 – No Data Found’ There is no data.
‘200 – OK’ Data is present and the response
is returned.
Response:
<appStoreWebServiceResponse>
<deviceUuid>1e88d6dd-a8aa-4a16-b2f3-
662dc9736bb6</deviceUuid>
<messages>
<message>1 Client App(s) returned</message> Status Message.
Application count is shown if the
method execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
<clientApps>
<clientApp id="1">
<appId>26</appId> Internal app ID of the app in the
App Catalog on MobileIron Core,
if applicable.
122
MobileIron Confidential
Core, if applicable. This value
varies by OS, and is typically a
number or version information.
<platform>iOS</platform> The platform that the app runs
on. Possible values are:
Android
Android 1.6
Android 2.0
Android 2.0.1
Android 2.1
Android 2.2
Android 2.3
Android 3.0
Android 3.1
Android 3.2
Android 4.0
Android 4.0.1
Android 4.0.3
Android 4.0.2
Android 4.0.4
Android 4.1
Android 4.2
Android 4.3
Android 4.4
AppleTV
AppleTV 7.0
iOS 4.0
iOS 4.1
iOS 4.2
iOS 4.3
iOS 5.0
iOS 5.1
iOS 6.0
iOS 6.1
iOS 6.2
iOS 7.0
iOS 7.1
iOS 8.0
OS X
OS X 10.7
OS X 10.8
OS X 10.9
OS X 10.10
123
MobileIron Confidential
Windows Phone
Windows Phone 8
Windows
Windows Pro/RT
Windows 8.1
<reportedAppName>MobileIron</reportedAppName> The app name as reported by the
device, used there on the app’s
springboard. That is, it is the
name associated with the app’s
icon on the device.
Examples:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=Sudoku_017%20
1.1
Get all Android devices that have a particular Sudoku version installed:
https://mycore.mobileiron.com/api/v1/apps/inventory/app?appname=Sudoku_017%20
1.1&platform=A
124
MobileIron Confidential
URI: Returns list of all applications
https://{host-name}/api/v1/apps/inventory/app installed on a device.
Http Method: GET
Format: xml, json
Request:
appname Required. Application name.
Send appname as a query
parameter.
A - Android
I – iOS
E – Windows
M – Windows Phone devices
(WP8, WP8.1)
Q = Web application for iOS
limit See Using offset and limit
Parameters to Cycle through
Records.
offset See Using offset and limit
Parameters to Cycle through
Records.
125
MobileIron Confidential
<appStoreWebServiceResponse>
<deviceUuid>1e88d6dd-a8aa-4a16-b2f3-
662dc9736bb6</deviceUuid>
<messages>
<message> 3 Device(s) returned.</message> Status Message.
Device count is shown if the
method execution is successful.
A descriptive error message is
shown if the method execution
failed.
</messages>
<devices>
<device id="1">
<uuid>bf3be0f1-6b4e-4e03-94c0-8b7bd6b89a1c</uuid> Device Unique id
<phonenumber>4085551212</phonenumber> Phone number
<username>miadmin</username> Username.
<platform>iOS 5.1</platform> Platform.
<os>I</os> Platform type. Contains one of
the following values:
A - Android
I – iOS
E – Windows
M – Windows Phone devices
(WP8, WP8.1)
Q = Web application for iOS
<version>5000000.598</version> Version.
</device>
….
</devices>
<appName>MobileIron</appName>
</appStoreWebServiceResponse>
Examples:
126
MobileIron Confidential
https://mycore.mobileiron.com/api/v1/apps/appstore/addapplication?request=myJ
sonFile.txt&installerfile=myApp.ipa&icon=myIcon.jpg
https://mycore.mobileiron.com/api/v1/apps/appstore/addapplication?request=
myJsonFile.txt&installerfile=myApp.ipa&icon=myIcon.jpg&phonescreen1=
myScreen1.jpg&phonescreen2=myScreen2.jpg&tabletscreen1=myTablet1.jpeg&
tabletscreen2=myTablet2.jpeg
Content-Type Multipart
Request:
request Name of the JSON file containing
additional parameters for
configuring the application on
MobileIron Core. See “Request
File” on page 128 for information
on the content of this file.
installerfile Name of the app file to be
uploaded (.ipa for iOS, .apk for
Android).
icon Optional. Name of the icon file to
be uploaded.
phoneScreenN Optional. Up to 10 screenshots of
the app for phones, e.g.,
phoneScreen1, phoneScreen2.
tabletScreenN Optional. Up to 10 screenshots of
the app for tablets, e.g.,
tabletScreen1, tabletScreen2.
Response:
<messages>
127
MobileIron Confidential
</messages>
Note: For Boolean values, use true and false, all lower case.
128
MobileIron Confidential
installed as managed apps.
Example:
{
"appstorerequest":{
"appname":"testapp",
"platform":"I",
"description":"Here is a description",
"category":"abcd",
"displayVersion":"10.9.8.7"
}
}
129
MobileIron Confidential
10.5 Apply App to/Remove App from a Label
This API applies an application to or removes an application from an existing label on MobileIron Core.
Example:
https://mycore.mobileiron.com/api/v1/apps/appstore/42?action=apply_label&labe
l=Executives
Request:
appid Identifier for the application
(issued by MobileIron Core).
action apply_label
remove_label
label Label name.
Response:
<appStoreWebServiceResponse>
<messages>
<message>Successfully published application to label and
queued for processing.</message>
</messages>
</appStoreWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/apps/categories
130
MobileIron Confidential
URI: Get all app categories.
https://{host-name}/api/v1/apps/categories
Http Method: GET
Format: xml, json
Response:
<appStoreWebServiceResponse>
<totalCount>2</totalCount> Number of categories
<messages/> When totalCount is 0, the
messages element contains a
<message> element with the
value “No categories found”.
<appCategories> Included if one or more app
categories are returned.
<appCategory>
<id>7</id> ID assigned by MobileIron Core
when the category was created.
<name>Finance</name> Name assigned by the
administrator when creating the
category.
</appCategory>
<appCategory>
<id>8</id>
<name>Human Resources</name>
</appCategory>
</appCategories>
</appStoreWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/apps/categories/8
Request:
App category ID The ID of the app category to
delete. The ID was assigned by
MobileIron Core when an
administrator created the app
category.
Response:
<appStoreWebServiceResponse>
<totalCount>0</totalCount>
<messages/>
</appStoreWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/apps/appstore?platformType=I
Request:
platformType Required. Platform or operating
system of the device.
Valid values:
A - Android
I – iOS
132
MobileIron Confidential
E – Windows
M – Windows Phone devices
(WP8, WP8.1)
Q = Web application for iOS
Response Status Code:
‘200 – OK’ The list of apps was successfully
returned. This status code is also
returned if no apps for the
platform type are in the App
Catalog.
Response:
<appStoreWebServiceResponse>
<totalCount>0</totalCount> Not used
<messages>
<message> Message indicating the number
"16 enterprise app(s) returned." of apps returned.
</message>
</messages>
<enterpriseApps> Lists the apps returned.
<enterpriseApp> Details about the app.
<bundleIdentifier>com.android.mi.email</bundleIdentifier> Identifier for the app.
<description/> Description of the app, possibly
empty. The field is not included
for Android apps that have no
description.
<id>25</id> Unique ID assigned by the App
Catalog.
<installedCount>14</installedCount> Number of devices that have
installed the app.
<installerFileName> The installer file for in-house
NameOfInstallerFile apps, such as the APK file for
</ installerFileName > Android apps and the IPA file for
iOS apps.
Examples:
https://mycore.mobileiron.com/api/v1/apps/appstore/8?action=apply_category&ca
tegory=Sales
https://mycore.mobileiron.com/api/v1/apps/appstore/8?action=remove_category&c
ategory=Sales
Request:
appid The ID of the app with which you
want to associate or dissociate a
category. The ID was assigned by
MobileIron Core when the app
was added to the App Catalog.
“remove_category” – to remove
the category from the app
category Required. Category name.
134
MobileIron Confidential
parameter.
Response Status Code:
‘200 – OK’ The category was successfully
associated with or dissociated
from the app.
‘400 Bad Request’ The request was invalid.
For example:
• The value of the category
parameter is not valid.
• No category parameter was
included in the request.
Response:
<appStoreWebServiceResponse>
<totalCount>0</totalCount> Not used.
<messages>
<message> Indicates whether the operation
"Successfully added category 'Sales' to app 'SomeApp'." was successful.
</message>
</messages>
</appStoreWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/apps/categories
In XML:
<appCategory>
<name>Finance</name>
</appCategory>
In JSON:
{"appCategory"={"name":"Finance"}}
135
MobileIron Confidential
URI: Add a new app category.
https://{host-name}/api/v1/apps/categories
Http Method: POST
Format: xml, json
Request:
A payload containing: The payload specifies the name
of the category to add.
<appCategory>
<name>NewCategoryName</name>
</appCategory>
Response Status Code:
‘201 – Created’ The request was successful. The
category was added.
Example:
https://mycore.mobileiron.com/api/v1/apps/categories/7
136
MobileIron Confidential
In XML:
<appCategory>
<name>Sales USA</name>
</appCategory>
In JSON:
{"appCategory"={"name":"Sales USA"}}
Request:
Category ID The ID of the category to rename.
Response:
<appStoreWebServiceResponse>
<totalCount>1</totalCount> Not used.
137
MobileIron Confidential
<messages>
<message> Provides information about the
"Category with ID '7' updated to 'Sales USA'." operation.
</message>
</messages>
</appStoreWebServiceResponse>
11 Policies
11.1 Get Policies
This API returns the list of all polices across all devices in the MobileIron system.
Example:
https://mycore.mobileiron.com/api/v1/policies
138
MobileIron Confidential
ENTERPRISE.
<profileType>PRIVACY</profileType> Profile type. Either PRIVACY,
SECURITY, LOCKDOWN, or SYNC.
<status>Active</status> Active or Inactive.
<active>true</active> Whether the policy is active.
true means Active.
false means Inactive.
<defaultPolicy>false</defaultPolicy> Deprecated.
<description>Default Privacy Policy</description> Policy description.
<deviceCount>1</deviceCount> Number of devices for which the
policy is applied.
<pendingCount>1</pendingCount> Number of devices for which the
policy is pending.
<priority>1</priority> Priority
<rules> Policy rules, which consist of
type-value pairs. The set of type-
value pairs are listed in Section
10.4 Policy Rules.
Example:
https://mycore.mobileiron.com/api/v1/policies/devices/027d9439-0f75-4d30-
8d7d-120b4cb8646b
Example:
https://mycore.mobileiron.com/api/v1/policies/-2?action=apply_label&label=Testlabel
141
MobileIron Confidential
This parameter is a query
parameter.
Response:
<policyWebServiceResponse>
<messages>
<message> Status Message.
Policy applied to label Android successfully. A descriptive error message is
</message> shown if the method execution
failed.
</messages>
<policyWebServiceResponse>
For example:
<rules>
<rule>
<type>SYNC_HEARTBEAT_INTERVAL</type>
<value>14</value>
<clientValue>840</clientValue>
</rule>
<rule>
<type>SYNC_MULTITASK_INTERVAL</type>
<value>15</value>
<clientValue>15</clientValue>
</rule>
</rules>
The following tables show the values of these <type> elements, their meanings, and possible values.
Note: Not all the security rules apply to all device types.
142
MobileIron Confidential
For information about security policies, see the MobileIron® Administration Guide.
ClientValue: deprecated.
143
MobileIron Confidential
Security policy rule <type> field Description Values
2 – iPhone 3G
3 – iPhone 3GS
7 – iPad
16 – iPhone 4
22 – iPad 2
28 – iPhone 4s
ClientValue: deprecated.
ClientValue: deprecated.
144
MobileIron Confidential
Security policy rule <type> field Description Values
EAS_BLOCK_IPHONE_OS The iOS version below which Value: An iOS version number.
MobileIron takes an action.
Example: 3.0
ClientValue: deprecated.
1 – Send alert.
ClientValue: deprecated.
145
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
146
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
147
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
148
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
149
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
150
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
151
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
152
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
153
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
154
MobileIron Confidential
Security policy rule <type> field Description Values
1 – Send alert.
ClientValue: deprecated.
155
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
156
MobileIron Confidential
Security policy rule <type> field Description Values
For example:
3,6
ClientValue: deprecated.
ClientValue: deprecated.
157
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
ClientValue: deprecated.
158
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
SECURITY_GRACE_PERIOD The period of time during which Value: The number of minutes.
the user is still able to enter the
correct password after the device ClientValue: deprecated.
has been locked.
Note that this field is applicable
only if the password is
mandatory, the maximum
inactivity timeout is 0, and the
device is an iOS device.
0 minute
1 minute
2 minutes
3 minutes
4 minutes
5 minutes
15 minutes
30 minutes
1 hour
1.5 hours
2 hours
12 hours
24 hours
ClientValue: deprecated.
159
MobileIron Confidential
Security policy rule <type> field Description Values
For example:
3,6
ClientValue: deprecated.
SECURITY_PWD_MAX_AGE The numbers of days after which Value: The number of days.
the password will expire. 0
indicates no limit. ClientValue: deprecated.
160
MobileIron Confidential
Security policy rule <type> field Description Values
simple,alphanumeric -
restricted to either simple or
alphanumeric characters.
ClientValue: deprecated.
161
MobileIron Confidential
Security policy rule <type> field Description Values
ClientValue: deprecated.
Note: Not all the lockdown rules apply to all device types.
For information about lockdown policies, see the MobileIron® Administration Guide.
ClientValue: deprecated.
162
MobileIron Confidential
Lockdown policy rule Description Values
<type> field
LOCKDOWN_CAMERA Whether the camera should be disabled in on – the camera should not be
the event that device access must be disabled.
restricted.
off – the camera should be
disabled.
ClientValue: deprecated.
ClientValue: deprecated.
LOCKDOWN_SDCARD Whether the SD card should be disabled in on – the SD card should not be
the event that device access must be disabled.
restricted.
off – the SD card should be
disabled.
ClientValue: deprecated.
LOCKDOWN_WIFI Whether WIFI should be disabled in the on – WIFI should not be disabled.
event that device access must be
restricted. off – WIFI should be disabled.
ClientValue: deprecated.
Note: Not all the sync rules apply to all device types.
For information about sync policies, see the MobileIron® Administration Guide.
163
MobileIron Confidential
Sync policy rule <type> field Description Values
ClientValue: deprecated.
ClientValue: deprecated.
ClientValue: deprecated.
ClientValue: deprecated.
164
MobileIron Confidential
Sync policy rule <type> field Description Values
roamingStatus –
Synchronization is blocked when
roaming. Sync only new country
notification when roaming.
ClientValue: deprecated.
165
MobileIron Confidential
Sync policy rule <type> field Description Values
ClientValue: deprecated.
15
ClientValue: deprecated.
ClientValue: deprecated.
ClientValue: deprecated.
166
MobileIron Confidential
Not all the privacy rules apply to all device types.
For information about privacy policies, see the MobileIron® Administration Guide.
<resourceDTOs>
<name> /Windows</name>
resourceType>DIR</resourceType>
<value>on</value>
</resourceDTOs>
ClientValue: deprecated.
167
MobileIron Confidential
Privacy policy rule <type> field Description Values
ClientValue: deprecated.
ClientValue: deprecated.
ClientValue: deprecated.
ClientValue: deprecated.
168
MobileIron Confidential
Privacy policy rule <type> field Description Values
PRIVACY_SYNC_OTHER_MEDIA Whether to sync other files The file extensions of the types of
not specified by other privacy files not to sync, as a comma-
settings. separated list. For example:
ram,wav
ClientValue: deprecated.
ClientValue: deprecated.
ClientValue: deprecated.
169
MobileIron Confidential
12 Application Settings
12.1 Get all Application Settings
This API returns the list of all application settings across all devices in the MobileIron system.
Example:
https://mycore.mobileiron.com/api/v1/appsettings
<value>/mi/files/groups/9002/99415d0e64ca8708/b34aab3122e34
10e98a2ef5a078806ce</value>
</entry>
…. Can have multiple entries.
</properties>
</appsetting>
171
MobileIron Confidential
</appsettings>
</appSettingsWebServiceResponse>
Example:
https://mycore.mobileiron.com/api/v1/appsettings/devices/12849438-0d74-3c30-
6b7d-121a3da8645d
<value>/mi/files/groups/9002/99415d0e64ca8708/b34aab3122e34
10e98a2ef5a078806ce</value>
</entry>
…. Can have mulitiple entires.
</properties>
</appsetting>
</appsettings>
</appSettingsWebServiceResponse>
<app ID>
<first device ID>
CSV file
version.txt file
<second device ID>
CSV file
version.txt file
173
MobileIron Confidential
Each CSV file contains one row per app session. Each row contains:
• the start time of the foreground session, given in seconds since January 1, 1970 (Unix time).
Example: 1381268056367
Example: 35
• the timezone where the session occurred, given in minutes from Greenwich Mean Time.
• the number of bytes the app transferred during the session (under construction)
Each version.txt file contains the version number of the AppConnect app.
Examples:
https://mycore.mobileiron.com/api/v1/apps/appconnect/analytics?appid=com.myco
mpany.myapp
15 Test Client
A sample http test client implemented in Java is provided below. You can access this client on the
MobileIron support site: https://support.mobileiron.com/support/clients/mobileiron-api-httpclient.zip.
1. Unzip the file, mobileiron-api-httpclient.zip . Below is the directory structure of the test client.
client
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- com
| | `-- mobileiron
| | |-- rs
| | | `-- client
| | `-- ws
| | `-- client
| | `-- http
| | |-- AlertWebServiceHttpClient.java
| | |-- AppStoreWebServiceHttpClient.java
| | |-- DMWebServiceHttpClient.java
| | |-- EASWebServiceHttpClient.java
| | |-- MAIWebServiceHttpClient.java
| | |-- SMWebServiceHttpClient.java
| | `-- WebServiceHttpClientBase.java
| `-- resources
| |-- applicationContext-miws-client.xml
| |-- miws-client.properties
| `-- miws-v1.wadl
`-- test
|-- java
| `-- com
| `-- mobileiron
| |-- rs
| `-- ws
| `-- client
| `-- http
| `-- WebServiceHttpClientTest.java
175
MobileIron Confidential
`-- resources
`-- log4j.xml
3. Change directory to client and execute maven to build and run the test client.
cd client
mvn clean install
The above mvn command will do a clean build and execute the test client. The output of the tests
are printed on the console and to a file named miws-test.log in the ‘client’ directory.
16 Change Log
16.1 Changes made for February 26, 2016 version of document
The following change was made to this document. This version of the document is for MobileIron Core
9.0:
• Added note that some v1 APIs are being deprecated and replaced by v2 API counterparts.
• Removed the <platformType> return field for all GET /api/v1/dm/devices-related calls.
176
MobileIron Confidential
16.4 Changes made for July 1, 2015 version of document
The following changes were made to this document. This version of the document is for MobileIron Core
8.0.
• The password for users must be between 8 and 20 characters. See 7.1 Update Password for a
User and 7.7 Authenticate a User.
• Certificate Enrollment settings have the type SCEP in 11.1 Get all Application Settings.
• Updated Windows terminology to Windows devices and Windows Phone devices.
• Changed app distribution library to App Catalog.
• Added compliance code 0x08000 (Logged Out) to 5.2 Compliance, quarantinedStatus, and
blockReason values.
• Corrected response field name from appId to bundle in 9.1 Get Application Inventory.
• Corrected version field description in 9.1 Get Application Inventory.
• Added fields longVersion, shortVersion, versionInt, and appVersion in 9.1 Get Application
Inventory.
• The parameter UpdatedWithin does not return Windows devices in 5.3 Get Devices by Status.
177
MobileIron Confidential
• Corrected parameters and their values and descriptions in 9.4 Add Application to the App
Storefront.
• Updated 7.1 Update Password for a User and 7.7 Authenticate a User to include sensitive query
parameters in HTTP request body.
• Added 9.8 Get all apps for a platform type in App Catalog.
• Added 9.9 Associate or dissociate a category with an app.
• Added 9.10 Add a new app category.
• Added 9.11 Rename an app category.
• Changed the term VSP to MobileIron Core or just Core.
• Removed references to WinMo and Symbian, which MobileIron Core no longer supports.
• Added Registered On to the list of fields exported in 5.3.4 Exporting Device Information to a
CSV.
• Added list of platform values in responses to 9.1 Get Application Inventory and 9.2 Get Device
Application Inventory.