API Guide For Mobile Iron
API Guide For Mobile Iron
API Guide For Mobile Iron
November 2, 2016
Any reproduction or redistribution of part or all of these materials is strictly prohibited. Information
in this publication is subject to change without notice. MobileIron, Inc. does not warrant the use of
this publication. For some phone images, a third-party database and image library, Copyright ©
2007-2009 Aeleeta's Art and Design Studio, is used. This database and image library cannot be
distributed separate from the MobileIron product.
“MobileIron,” the MobileIron logos and other trade names, trademarks or service marks of
MobileIron, Inc. appearing in this documentation are the property of MobileIron, Inc. This
documentation contains additional trade names, trademarks and service marks of others, which are
the property of their respective owners. We do not intend our use or display of other companies’
trade names, trademarks or service marks to imply a relationship with, or endorsement or
sponsorship of us by, these other companies.
Contents
Chapter 1 Introduction............................................................................... 19
Prerequisites for using the V2 API .......................................................... 19
Authentication .................................................................................... 19
Assigning admin roles to a user ..................................................................... 19
Making API Calls to MobileIron Connected Cloud ...................................... 20
HTTP response status codes ................................................................. 20
Response Language ............................................................................. 21
Using Postman to Test API Calls ............................................................ 21
Chapter 2 API status check......................................................................... 22
Get V2 API status ................................................................................ 23
Required Role ..................................................................................... 23
HTTP method ...................................................................................... 23
Request URI ....................................................................................... 23
Request parameters ............................................................................ 23
Response fields ................................................................................... 23
Sample request and response ............................................................... 23
Request ..................................................................................................... 23
Response ................................................................................................... 23
Company Confidential
3
Request parameters ............................................................................ 35
Response fields ................................................................................... 36
Sample request and response ............................................................... 36
Request ..................................................................................................... 36
Response ................................................................................................... 36
Company Confidential
4
Request URI ....................................................................................... 60
Request parameters ........................................................................... 61
Response fields ................................................................................... 62
Sample request and response ............................................................... 62
Request ..................................................................................................... 62
Response ................................................................................................... 62
Company Confidential
5
HTTP method ..................................................................................... 97
Request URI ....................................................................................... 97
Request parameters ........................................................................... 98
Response fields ................................................................................... 98
Sample request and response ..............................................................100
Request ................................................................................................... 100
Response ................................................................................................. 100
Company Confidential
6
Request parameters ..........................................................................121
Response fields ..................................................................................121
Sample request and response ..............................................................121
Request ................................................................................................... 121
Response ................................................................................................. 122
Company Confidential
7
Request parameters ..........................................................................139
Response fields ..................................................................................139
Sample request and response ..............................................................139
Request ................................................................................................... 139
Response ................................................................................................. 139
Company Confidential
8
Sample request and response ..............................................................150
Request ................................................................................................... 150
Response ................................................................................................. 150
Company Confidential
9
HTTP method ............................................................................................ 164
Request URI ............................................................................................. 164
Request parameters ................................................................................. 164
Response fields ......................................................................................... 165
Sample Request ........................................................................................ 165
Sample Response ...................................................................................... 165
Get action types facets for audit log categories ..................................... 171
Required Role ....................................................................................171
HTTP method ....................................................................................171
Request URI ......................................................................................171
Request parameters ...........................................................................172
Response fields ..................................................................................173
Sample request and response ..............................................................173
Request ................................................................................................... 173
Response ................................................................................................. 173
Company Confidential
10
Response values ................................................................................189
Sample request and response ..............................................................189
Request ................................................................................................... 189
Response ................................................................................................. 189
Company Confidential
11
Request ................................................................................................... 200
Response ................................................................................................. 200
Get Last Sync Time and State of ActiveSync Devices .............................. 201
Required Role ....................................................................................201
HTTP method ....................................................................................201
Request URI ......................................................................................201
Request parameters ...........................................................................202
Response fields ..................................................................................202
Sample request and response ..............................................................203
Request ................................................................................................... 203
Response ................................................................................................. 203
Company Confidential
12
Create or update a device space ......................................................... 215
Required Role ....................................................................................215
HTTP method ....................................................................................215
Request URI ......................................................................................215
Request parameters ...........................................................................216
Response fields ..................................................................................216
Sample request and response ..............................................................216
Request ................................................................................................... 216
Response ................................................................................................. 217
Company Confidential
13
HTTP method ....................................................................................229
Request URI ......................................................................................229
Request parameters ...........................................................................230
Response fields ..................................................................................230
Sample request and response ..............................................................230
Request ................................................................................................... 230
Response ................................................................................................. 230
Company Confidential
14
Request URI ......................................................................................245
Request parameters ..........................................................................246
Response ..........................................................................................246
Sample request and response ..............................................................246
Request ................................................................................................... 246
Response ................................................................................................. 246
Company Confidential
15
Sample Request .................................................................................262
Sample Responses .............................................................................262
Get custom attributes for a device ....................................................... 263
Required Role ....................................................................................263
HTTP method ....................................................................................263
Request URI ......................................................................................263
Request parameters ..........................................................................264
Response fields ..................................................................................264
Sample Request .................................................................................264
Sample Responses .............................................................................264
Set device custom attributes .............................................................. 265
Required Role ....................................................................................265
HTTP method ....................................................................................265
Request URI ......................................................................................265
Request parameters ..........................................................................266
Response fields ..................................................................................266
Sample Request .................................................................................266
Sample Responses .............................................................................266
Get custom attributes for a user .......................................................... 268
Required Role ....................................................................................268
HTTP method ....................................................................................268
Request URI ......................................................................................268
Request parameters ..........................................................................269
Response fields ..................................................................................269
Sample Request .................................................................................269
Sample Responses .............................................................................269
Set user custom attributes ................................................................. 270
Required Role ....................................................................................270
HTTP method ....................................................................................270
Request URI ......................................................................................270
Request parameters ..........................................................................271
Response fields ..................................................................................271
Sample Request .................................................................................271
Sample Responses .............................................................................271
Chapter 13 Certificate Management............................................................. 273
Export certificate details to a CSV file .................................................. 274
Initiate the processing of certificate details to be exported .......................274
Required Roles .......................................................................................... 274
HTTP method ............................................................................................ 275
Request URI ............................................................................................. 275
Request parameters ................................................................................. 275
Response fields ......................................................................................... 277
Sample Request ........................................................................................ 277
Sample Responses .................................................................................... 277
Get status of the export process ..........................................................277
Required Roles .......................................................................................... 278
HTTP method ............................................................................................ 279
Company Confidential
16
Request URI ............................................................................................. 279
Request parameters ................................................................................. 279
Response fields ......................................................................................... 279
Sample Request ........................................................................................ 279
Sample Response ...................................................................................... 279
Download the CSV file ........................................................................279
Required Roles .......................................................................................... 279
HTTP method ............................................................................................ 280
Request URI ............................................................................................. 281
Request parameters ................................................................................. 281
Sample Request ........................................................................................ 281
Company Confidential
17
Chapter 14 Feature Usage ......................................................................... 297
Get API feature usage history ............................................................. 298
Required Role ....................................................................................298
HTTP method ....................................................................................298
Request URI ......................................................................................298
Request parameters ..........................................................................299
Response fields ..................................................................................299
Sample request and response ..............................................................299
Request ................................................................................................... 299
Response ................................................................................................. 299
Company Confidential
18
Chapter 1
Introduction
The MobileIron V2 API is a RESTful API you use to send HTTPS requests to get data from and provide data to
MobileIron. If you need other functionality using a MobileIron API, see the API Reference Document for
MobileIron WebService 9.1, which describes how to use the V1 API.
Note: You cannot send API calls from the address bar of a browser because this API does not prompt you for
credentials if you send a call from the address bar. You can use plugins like Poster for FireFox, and Postman or
Advanced REST Client for Chrome, to test calls while you are coding calls into your application.
Authentication
The MobileIron V2 API requires basic authentication to authorize API calls. Each API call requires that the
credentials you use for basic authentication belong to a user who has been assigned the necessary role to make that
particular call. See “Assigning admin roles to a user” on page 19 for how to assign required roles to
MobileIron users, and the “Required Role” section of each API call description to determine the required role for
each API call.
Company Confidential
19
2. Select a user.
3. Select Edit Roles.
4. Select a device space to which to assign the admin user.
5. Use the check boxes to select the roles needed to make the desired API calls. See the “Required Role” section of
each API call description to determine the required role for each API call.
6. Click Save.
Company Confidential
20
Response code Description
401 Authentication failed.
The request must contain a valid user ID and password for the
target MobileIron Core instance.
404 Page not found.
Check the spelling of the URL.
405 Invalid HTTP method.
500 Internal server error.
MobileIron Core encountered an internal error while processing the
request.
Response Language
The API supports JSON responses.
Company Confidential
21
Chapter 2
Company Confidential
22
Get V2 API status
This call returns status information about the V2 API. It returns:
• whether the V2 API is available (implied by the presence of a return)
• the API version number
• the version and build number of the VSP
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Any admin role
HTTP method
GET
Request URI
api/V2/ping
Request parameters
None.
Response fields
Field Description
results Container for the results
apiVersion Version of the API.
vspVersion Version and build number of the MobileIron Core.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/ping
Response
{
"results": {
"apiVersion": 2,
"vspVersion": "VSP 8.0.0.0 Build 1 "
}
Company Confidential
23
}
Company Confidential
24
Chapter 3
User Management
This chapter describes the V2 API calls you use to query and manipulate MobileIron Core users. MobileIron Core
will add more user-related API calls to this chapter as they become available in the V2 API.
Company Confidential
25
Find authorized users
This call gets a list of all authorized users in the system, or a subset of users retrieved by the query parameter if you
issue it with the call.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: User Management
Role Description: View user
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/authorized/users
Company Confidential
26
Request parameters
Company Confidential
27
Response fields
Field Description
results Container for the results set, which is an array of all authorized
users retrieved. See the sample response below for the fields
contained in the results array.
hasMore Indicates whether there are more records in the retrieved set.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/authorized/users?adminDe-
viceSpaceId=1&query=mia'
Response
{
"results": [
{
"ldapuser": false,
"localUser": true,
"passcodeInBytes": "",
"passwordHashSHA256": null,
"androidWorkEmailAddress": null,
"androidWorkUserId": null,
"lastLoginIp": "10.11.82.143",
"lastAdminPortalLoginTime": 1464205553139,
"samlPseudonymousIdentifier": null,
"forcePasswordChange": false,
"languageId": null,
"countryId": null,
"opaque": true,
"userSource": "L",
"value": null,
"enabled": true,
"createdBy": null,
"createdAt": 1464202042000,
"email": "miadmin@mobileiron.com",
"lastName": "",
"firstName": "miadmin",
"displayName": "miadmin",
"devices": [ ],
"roles": [
"ROLE_MPW_REG",
"ROLE_MPW_CHANGE_OWNERSHIP",
"ROLE_USER_PORTAL_RW",
"ROLE_MPW_LOCK",
"ROLE_MPW_WIPE",
"ROLE_MPW_LOCATE",
"ROLE_MPW_RETIRE",
"ROLE_MPW_UNLOCK"
],
"deviceSpacePath": "/1/",
"deviceSpaceId": 1,
"principal": "miadmin",
Company Confidential
28
"id": 9001,
"uuid": "2fc7d8e7-71e7-4216-a317-5a2879ae9cab"
}
],
"hasMore": false,
"resultCount": 1,
"totalCount": 1
}
Company Confidential
29
Chapter 4
Admin Management
Company Confidential
30
Find admin users
This call gets a list of all admin users in the system. You can use the call described in “Assign admins to device
space” on page 220 to assign one of the retrieved users as the admin of a device space. A similar call, described
in “Get admin user summary” on page 37, gets a list of admin users, but returns more details about each
admin, namely, the name, email, source (local or LDAP), and assigned roles.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Company Confidential
31
Request URI
api/v2/admins/users
Request parameters
Company Confidential
32
Response fields
Field Description
results Container for the results set, which is an array of all admin users
retrieved, including their user ID and name.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
admins/users?adminDeviceSpaceId=1
Response
{
"results": [
{
"userId": "misystem",
"name": null
},
{
"userId": "miadmin",
"name": "miadmin"
}
],
"totalCount": 2,
"resultCount": 2
}
Company Confidential
33
Find ldap entitites
This call finds LDAP entities, either Organizational Units (OUs), groups, or users, depending on which you specify
with the type parameter.
Required Role
See “Authentication” on page 17 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/admins/ldap_entities
Company Confidential
34
Request parameters
Company Confidential
35
Response fields
Field Description
results Container for the results set, which is an array of all LDAP entities
retrieved, including each entity’s ID, name, LDAP Distinguished
Name (dn), and the type of LDAP entity.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
admins/ldap_entities?type=user&query=admin&adminDeviceSpaceId=1
Response
{
"results": [
{
"id": null,
"name": "Administrator",
"dn": "cn=administrator,cn=users,dc=auto2,dc=mobileiron,dc=com",
"type": "USER"
}
],
"totalCount": 1,
"resultCount": 1
}
Company Confidential
36
Get admin user summary
This call gets a detailed list of admin users that includes each admin’s name, email, source (local or LDAP), and
assigned roles. A similar call described in “Find admin users” on page 31, gets a list of admin users, but only
returns the user ID and name for each admin user.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Company Confidential
37
Request URI
api/v2/admins/user_summary
Request parameters
Company Confidential
38
Parameter Description Sample Value
query Parameter Type: Query query=admin
Data Type: String (This value instructs the
Min: 1 character call to search for admin
entities with the word
Max: 20 characters “admin” in their name”)
Search expression. May be the user name, the first name, or
the last name. The call returns all admin users in the absence
of this parameter. See “Query Operators and Search
Fields” on page 306 for complete details on the query
operators and search fields you can use to construct the query
parameter statement.
page Parameter Type: Query 1
Data Type: integer
Instructs the API on which page of results to start returning
results.
start Parameter Type: Query 0
Data Type: integer
Instructs the API at which record on the specified page of
results to start returning results.
Response fields
Field Description
results An array of entry objects: name, userId, email, source (LDAP or
Local), roles (id, description), adminSpaces (id, name)
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
Request
curl "https://mobileironcore]/api/v2/admins/user_summary?limit=50&offset=0&sortField=name&sor-
tOrder=ASC&query=&page=1&start=0"
Response
{
"results": [
{
"name": "miadmin",
"principal": "miadmin",
"email": "miadmin@mobileiron.com",
"source": "Local",
"spaceRoles": [
{
"spaceId": 1,
Company Confidential
39
"spaceName": "Global",
"vspRoles": [
{
"id": 1,
"name": "ROLE_ADMIN_MGMT",
"description": "Manage administrators and device spaces",
"defaultSpaceOnly": true
},
{
"id": 3,
"name": "ROLE_DEVICE_VIEW_APP",
"description": "View apps in device details",
"defaultSpaceOnly": false
},
{
"id": 4,
"name": "ROLE_DEVICE",
"description": "Manage devices",
"defaultSpaceOnly": false
},
{
"id": 6,
"name": "ROLE_DEVICE_LOCATE",
"description": "Locate device",
"defaultSpaceOnly": false
},
{
"id": 7,
"name": "ROLE_DEVICE_WIPE",
"description": "Wipe device",
"defaultSpaceOnly": false
},
{
"id": 8,
"name": "ROLE_DEVICE_ADD",
"description": "Add device",
"defaultSpaceOnly": false
},
{
"id": 9,
"name": "ROLE_DEVICE_ACTIVESYNC",
"description": "Manage ActiveSync device",
"defaultSpaceOnly": true
},
{
"id": 10,
"name": "ROLE_APP_TUNNEL",
"description": "Manage AppTunnel",
"defaultSpaceOnly": true
},
{
"id": 11,
"name": "ROLE_DEVICE_ENROLLMENT",
"description": "Manage device enrollment (iOS only)",
"defaultSpaceOnly": true
},
{
"id": 14,
"name": "ROLE_LABEL",
"description": "Manage label",
"defaultSpaceOnly": false
},
{
"id": 16,
"name": "ROLE_USER_MANAGEMENT",
"description": "Manage user",
Company Confidential
40
"defaultSpaceOnly": false
},
{
"id": 17,
"name": "ROLE_APP",
"description": "Manage app",
"defaultSpaceOnly": true
},
{
"id": 19,
"name": "ROLE_CONFIG",
"description": "Manage configuration",
"defaultSpaceOnly": true
},
{
"id": 22,
"name": "ROLE_POLICY",
"description": "Manage policy",
"defaultSpaceOnly": true
},
{
"id": 25,
"name": "ROLE_SETTINGS",
"description": "Manage settings",
"defaultSpaceOnly": true
},
{
"id": 27,
"name": "ROLE_LOGS_EVENTS",
"description": "Manage logs and events",
"defaultSpaceOnly": true
},
{
"id": 28,
"name": "ROLE_VSP_CONNECTOR",
"description": "Connector",
"defaultSpaceOnly": true
},
{
"id": 29,
"name": "ROLE_VSP_API",
"description": "API",
"defaultSpaceOnly": true
},
{
"id": 34,
"name": "ROLE_CONTENT",
"description": "Manage Content",
"defaultSpaceOnly": true
}
]
}
]
}
],
"totalCount": 1,
"resultCount": 1
}
Company Confidential
41
Get ldap entity summary
This call gets detailed information on all admin LDAP admin entities. Returns the id, name, dn, type, member
count (germane for OUs and GROUPS), first name, last name, email, and roles for each found admin LADAP
entity.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/admins/ldap_entity_summary
Company Confidential
42
Request parameters
Company Confidential
43
Parameter Description Sample Value
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Response fields
results Container for the results set, which is an array of all LDAP entities
retrieved, including each entity’s id, name, dn, type, member count
(germane for OUs and GROUPS), first name, last name, email, and
roles.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
admins/ldap_entity_summary?type=USER&query=testuser00023&adminDeviceSpaceId=1
Response
{{
"results": [
{
"id": null,
"name": "testuser000230",
"dn": "cn=testuser000230,ou=contacts,dc=auto2,dc=mobileiron,dc=com",
"type": "USER",
"memberCount": 0,
"firstName": "Test",
"lastName": "User000230",
"email": "testuser000230@auto2.mobileiron.com",
"spaceRoles": [ ]
},
...
{
"id": null,
"name": "testuser000239",
"dn": "cn=testuser000239,ou=contacts,dc=auto2,dc=mobileiron,dc=com",
"type": "USER",
"memberCount": 0,
"firstName": "Test",
Company Confidential
44
"lastName": "User000239",
"email": "testuser000239@auto2.mobileiron.com",
"spaceRoles": [ ]
}
],
"totalCount": 10,
"resultCount": 10
}
Company Confidential
45
Get a list of admin roles
This call returns all admin roles and associated permissions. You can use this call before issuing the call described
in “Assign admins to device space” on page 220, so you know which string values to use for the roles you
assign to admins you assign to device spaces.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/admins/roles
Company Confidential
46
Request parameters
Response fields
results Container for the results set, which is an array of all roles,
including the following fields for each role: category,
roleAndPermissions, roleId, roleDescription, defaultSpaceOnly,
and permissions. The values for roleId are the ones you use for the
roles parameter when making the call described in “Assign
admins to device space” on page 220.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
results Container for the results set, which is an array of all LDAP entities
retrieved, including each entity’s id, name, dn, type, member count
(germane for OUs and GROUPS), first name, last name, email, and
roles.
totalCount The total number of entries that the query matched.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
admins/roles?adminDeviceSpaceId=1
Response
{
"results": [
{
"category": "Device Management",
"roleAndPermissions": [
{
"roleId": 2,
"roleDescription": "View dashboard, device page, device details",
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"View device details"
]
},
{
"roleId": 4,
"roleDescription": "Manage devices",
Company Confidential
47
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"Retire device",
"Other device actions",
"View device details",
"Push profiles in device details",
"Edit comments in device details"
]
},
{
"roleId": 5,
"roleDescription": "Manage devices, restricted",
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"Other device actions",
"View device details",
"Edit comments in device details"
]
},
{
"roleId": 7,
"roleDescription": "Wipe device",
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"Wipe device",
"View device details"
]
},
{
"roleId": 8,
"roleDescription": "Add device",
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"Add device",
"View device details"
]
},
{
"roleId": 9,
"roleDescription": "Manage ActiveSync device",
"defaultSpaceOnly": true,
"permissions": [
"View dashboard",
"View device",
"View device details",
"View ActiveSync device",
"Edit ActiveSync device"
]
},
{
"roleId": 10,
"roleDescription": "Manage AppTunnel",
"defaultSpaceOnly": true,
"permissions": [
"AppTunnel"
]
},
{
Company Confidential
48
"roleId": 11,
"roleDescription": "Manage device enrollment (iOS only)",
"defaultSpaceOnly": true,
"permissions": [
"View dashboard",
"View device",
"View device details",
"Device enrollment (iOS only)"
]
},
{
"roleId": 12,
"roleDescription": "Delete retired device (API only)",
"defaultSpaceOnly": true,
"permissions": [
"View dashboard",
"View device",
"Delete retired device",
"View device details"
]
}
]
},
{
"category": "Privacy Control",
"roleAndPermissions": [
{
"roleId": 3,
"roleDescription": "View apps in device details",
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"View device details",
"View apps in device details"
]
},
{
"roleId": 6,
"roleDescription": "Locate device",
"defaultSpaceOnly": false,
"permissions": [
"View dashboard",
"View device",
"Locate device",
"View device details"
]
}
]
},
{
"category": "Label Management",
"roleAndPermissions": [
{
"roleId": 13,
"roleDescription": "View label",
"defaultSpaceOnly": false,
"permissions": [
"View label"
]
},
{
"roleId": 14,
"roleDescription": "Manage label",
"defaultSpaceOnly": false,
"permissions": [
Company Confidential
49
"View device",
"View device details",
"View label",
"Edit label"
]
}
]
},
{
"category": "User Management",
"roleAndPermissions": [
{
"roleId": 15,
"roleDescription": "View user",
"defaultSpaceOnly": false,
"permissions": [
"View user"
]
},
{
"roleId": 16,
"roleDescription": "Manage user",
"defaultSpaceOnly": false,
"permissions": [
"View user",
"Edit user"
]
}
]
},
{
"category": "App Management",
"roleAndPermissions": [
{
"roleId": 17,
"roleDescription": "Manage app",
"defaultSpaceOnly": true,
"permissions": [
"Manage app",
"View app, apply and remove application label"
]
},
{
"roleId": 33,
"roleDescription": "Apply and remove application label",
"defaultSpaceOnly": false,
"permissions": [
"View app, apply and remove application label"
]
}
]
},
{
"category": "Configuration Management",
"roleAndPermissions": [
{
"roleId": 18,
"roleDescription": "View configuration",
"defaultSpaceOnly": false,
"permissions": [
"View configuration"
]
},
{
"roleId": 19,
"roleDescription": "Manage configuration",
Company Confidential
50
"defaultSpaceOnly": true,
"permissions": [
"View configuration",
"Edit configuration",
"Apply and remove configuration label"
]
},
{
"roleId": 20,
"roleDescription": "Apply and remove configuration label",
"defaultSpaceOnly": false,
"permissions": [
"View configuration",
"Apply and remove configuration label"
]
}
]
},
{
"category": "Policy Management",
"roleAndPermissions": [
{
"roleId": 21,
"roleDescription": "View policy",
"defaultSpaceOnly": false,
"permissions": [
"View policy"
]
},
{
"roleId": 22,
"roleDescription": "Manage policy",
"defaultSpaceOnly": true,
"permissions": [
"View policy",
"Edit policy",
"Apply and remove policy label",
"View and edit ActiveSync policy",
"View and edit compliance action"
]
},
{
"roleId": 23,
"roleDescription": "Apply and remove policy label",
"defaultSpaceOnly": false,
"permissions": [
"View policy",
"Apply and remove policy label"
]
}
]
},
{
"category": "Settings Management",
"roleAndPermissions": [
{
"roleId": 24,
"roleDescription": "View settings",
"defaultSpaceOnly": true,
"permissions": [
"View settings"
]
},
{
"roleId": 25,
"roleDescription": "Manage settings",
Company Confidential
51
"defaultSpaceOnly": true,
"permissions": [
"View settings",
"Edit settings"
]
}
]
},
{
"category": "Logs and Events Management",
"roleAndPermissions": [
{
"roleId": 26,
"roleDescription": "View logs and events",
"defaultSpaceOnly": true,
"permissions": [
"View logs and events"
]
},
{
"roleId": 27,
"roleDescription": "Manage logs and events",
"defaultSpaceOnly": true,
"permissions": [
"View logs and events",
"Edit logs and events"
]
}
]
},
{
"category": "Admin Management",
"roleAndPermissions": [
{
"roleId": 1,
"roleDescription": "Manage administrators and device spaces",
"defaultSpaceOnly": true,
"permissions": [
"Manage administrators and device spaces"
]
}
]
},
{
"category": "Content Management",
"roleAndPermissions": [
{
"roleId": 34,
"roleDescription": "Manage Content",
"defaultSpaceOnly": true,
"permissions": [
"Manage Content",
"View content; apply and remove content labels"
]
},
{
"roleId": 35,
"roleDescription": "View content; apply and remove content labels",
"defaultSpaceOnly": false,
"permissions": [
"View content; apply and remove content labels"
]
}
]
},
{
Company Confidential
52
"category": "Others",
"roleAndPermissions": [
{
"roleId": 28,
"roleDescription": "Connector",
"defaultSpaceOnly": true,
"permissions": [
"Connector"
]
},
{
"roleId": 29,
"roleDescription": "API",
"defaultSpaceOnly": true,
"permissions": [
"Access V1 API"
]
},
{
"roleId": 30,
"roleDescription": "Mobile App",
"defaultSpaceOnly": true,
"permissions": [
"Mobile App Access"
]
},
{
"roleId": 31,
"roleDescription": "Enforce single session (all spaces)",
"defaultSpaceOnly": false,
"permissions": [
"Enforce single session"
]
},
{
"roleId": 32,
"roleDescription": "Perform system operations functions",
"defaultSpaceOnly": true,
"permissions": [
"View search index settings and state",
"Rebuild search index"
]
}
]
}
],
"totalCount": 12,
"resultCount": 12
}
Company Confidential
53
Chapter 5
Company Confidential
54
Get Action Types
This call returns all the admin action categories that are audit logged.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/admins/{source}/actions
Company Confidential
55
Request parameters
Response fields
Field Description
category Returns the category name of logically grouped action types.
actions An array containing all the action types under the category. Entries in
this array have the following fields
• id: Id of the action type
• name: Action type name
• category: Action type category
• displayName: UI display name of the action type
Request
Response
In the interest of brevity, this response sample contains only one category and all of its included actions.
[
Company Confidential
56
{
"category": "MDM",
"actions": [
{
"id": 71,
"name": "INSTALL_MDM_PROFILE",
"category": "MDM",
"displayName": "Install MDM Profile"
},
{
"id": 72,
"name": "REMOVE_MDM_PROFILE",
"category": "MDM",
"displayName": "Remove MDM Profile"
},
{
"id": 73,
"name": "INSTALL_ENCRYPTED_SUBPROFILE",
"category": "MDM",
"displayName": "Install Encrypted Sub-Profile"
},
{
"id": 74,
"name": "REMOVE_ENCRYPTED_SUBPROFILE",
"category": "MDM",
"displayName": "Remove Encrypted Sub-Profile"
},
{
"id": 75,
"name": "INSTALL_PROV_PROFILE",
"category": "MDM",
"displayName": "Install Provisioning Profile"
},
{
"id": 76,
"name": "REMOVE_PROV_PROFILE",
"category": "MDM",
"displayName": "Remove Provisioning Profile"
},
{
"id": 77,
"name": "DEVICE_LOCK",
"category": "MDM",
"displayName": "Device Lock"
Company Confidential
57
},
{
"id": 78,
"name": "CLEAR_PASSCODE",
"category": "MDM",
"displayName": "Clear Passcode"
},
{
"id": 79,
"name": "WIPE_DEVICE",
"category": "MDM",
"displayName": "Wipe Device"
},
{
"id": 80,
"name": "INSTALL_MANAGED_APP",
"category": "MDM",
"displayName": "Install Managed Application"
},
{
"id": 81,
"name": "REMOVE_MANAGED_APP",
"category": "MDM",
"displayName": "Remove Managed Application"
},
{
"id": 82,
"name": "APPLY_REDEMPTION_CODE",
"category": "MDM",
"displayName": "Apply Redemption Code"
},
{
"id": 83,
"name": "SETTINGS",
"category": "MDM",
"displayName": "Settings"
}
]
}
]
Company Confidential
58
Chapter 6
Company Confidential
59
Get list of installed apps
This call returns a list of installed apps. The api can return apps from all platforms or specific platforms.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Apply and remove application label
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appinventory/apps
Company Confidential
60
Request parameters
Company Confidential
61
Parameter Description Sample Value
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
summaryView Parameter Type: Query false
Data Type: Boolean
Default: false
Summary view returns installed apps by app ID. Detailed
view returns installed apps by ID and version.
Response fields
Field Description
results An array of the following objects: inventory ID, name, app ID,
platformType, version, displayName, deviceCount, permissionCount,
appRating, appScore, dateFound
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
Request
curl -k -v -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/appinventory/
apps?adminDeviceSpaceId=1&limit=2&query=casino&offset=0'
Response
{
"totalCount": 72906,
"resultCount": 2,
"hasMore": true,
"results": [
{
"id": 100109,
"name": "Casino CrapsAutoGenApp42188",
"identifier": "application.identifier.Casino CrapsAutoGenApp42188",
"platformType": "I",
"version": "1.0",
"displayVersion": "1.0",
"deviceCount": 0,
Company Confidential
62
"permissionsCount": 0,
"appRating": 0,
"appScore": null,
"dateFound": 1447475953000
},
{
"id": 100110,
"name": "Casino CrapsAutoGenApp42189",
"identifier": "application.identifier.Casino CrapsAutoGenApp42189",
"platformType": "I",
"version": "3.3",
"displayVersion": "3.3",
"deviceCount": 0,
"permissionsCount": 0,
"appRating": 0,
"appScore": null,
"dateFound": 1447475953000
}
]
}
Company Confidential
63
Get installed app details of a device
This call returns a list of installed apps on a device or a list of devices.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Privacy Control
Role Description: View apps in device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/devices/appinventory
Company Confidential
64
Request parameters
Response fields
Field Description
messages Messages section
type Message type
messageKey Message key
localizedMessage Localized message with parameters resolved
results Array of device details follow
deviceUuid Details for this device uuid
appInventory List of device apps follows
name Name of app installed on the device
identifier App identifier
version App version
platformType App platform type
status App status
vpnName App vpn name
configurations List of app connect configurations follow
typeId Configuration type id
clientId Device client id
appId App identifier
Company Confidential
65
Field Description
modifiedAt Timestamp of record modification
appUuid App uuid
agentUuid Agent uuid
coreUuid Core uuid
name App connect name
state State
message If there is an app (appUuid), client (agentUuid) or config (coreUuid)
mismatch then old equals “true”. Message will contain a description
when old equals “true”.
old If there is an app (appUuid), client (agentUuid) or config (coreUuid)
mismatch then old equals “true”. Message will contain a description
when old equals “true”.
Request
curl 'https://<mobileironcore>/api/v2/devices/appinventory?deviceUuids=70e3fc6b-ee97-410d-a712-
3bdbf8f004dd' -H 'authUserId: bWlhZG1pbg=='
Response
{
"results": [
{
"deviceUuid": "70e3fc6b-ee97-410d-a712-3bdbf8f004dd",
"appInventory": [
{
"name": "AllShare Cast Dongle S/W Update",
"identifier": "com.sec.android.fwupgrade",
"version": "1.2.3717",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Android for Work App",
"identifier": "com.google.android.apps.work.core",
"version": "2.0.1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
Company Confidential
66
},
{
"name": "ANT Radio Service",
"identifier": "com.dsi.ant.service.socket",
"version": "4.14.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "ANT+ Plugins Service",
"identifier": "com.dsi.ant.plugins.antplus",
"version": "3.6.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Appium Settings",
"identifier": "io.appium.settings",
"version": "1.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "AT&T Navigator",
"identifier": "com.telenav.app.android.cingular",
"version": "5.7.5.1.8421421",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "AT&T Protect Plus",
"identifier": "com.asurion.android.mobilerecovery.att",
"version": "8.76.4",
"platformType": "A",
"status": null,
"vpnName": null,
Company Confidential
67
"configurations": null
},
{
"name": "Beaming Service",
"identifier": "com.mobeam.barcodeService",
"version": "1.3.2 ",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Box",
"identifier": "com.box.android",
"version": "3.7.5",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "C646963",
"identifier": "com.testpackage.c646963",
"version": "1.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "C919229",
"identifier": "com.testpackage.c919229",
"version": "2.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Chrome",
"identifier": "com.android.chrome",
"version": "50.0.2661.89",
"platformType": "A",
"status": null,
Company Confidential
68
"vpnName": null,
"configurations": null
},
{
"name": "Drive",
"identifier": "com.google.android.apps.docs",
"version": "2.4.141.16.35",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Flipboard",
"identifier": "flipboard.app",
"version": "3.4.2",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Galaxy Apps",
"identifier": "com.sec.android.app.samsungapps",
"version": "4.1.04-9",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Play Books",
"identifier": "com.google.android.apps.books",
"version": "3.8.15",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Play Games",
"identifier": "com.google.android.play.games",
"version": "3.7.23 (2867637-038)",
"platformType": "A",
Company Confidential
69
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Play Movies & TV",
"identifier": "com.google.android.videos",
"version": "3.13.10",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Play Music",
"identifier": "com.google.android.music",
"version": "6.7.2713Z.2790541",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Play services",
"identifier": "com.google.android.gms",
"version": "9.2.56 (038-124593566)",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Play Store",
"identifier": "com.android.vending",
"version": "6.7.13.E-all [0] 2920566",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google Text-to-speech Engine",
"identifier": "com.google.android.tts",
"version": "3.8.16",
Company Confidential
70
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Google+",
"identifier": "com.google.android.apps.plus",
"version": "7.7.0.120011031",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Hangouts",
"identifier": "com.google.android.talk",
"version": "8.0.116581895",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "HP Print Service Plugin",
"identifier": "com.hp.android.printservice",
"version": "2.8-1.5.0-10e-16.1.16-71",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Keeper",
"identifier": "com.callpod.android_apps.keeper",
"version": "10.0.1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Lookout",
"identifier": "com.lookout",
Company Confidential
71
"version": "9.39.1-f7e5585",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Maps",
"identifier": "com.google.android.apps.maps",
"version": "9.23.1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Mobile TV",
"identifier": "com.mobitv.client.tv",
"version": "6.0.main.84-3e70d92",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "MobileIron",
"identifier": "com.mobileiron",
"version": "9.0.1.0.68D",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Peel Smart Remote",
"identifier": "tv.peel.smartremote",
"version": "8.8.1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Pulse Secure",
Company Confidential
72
"identifier": "net.pulsesecure.pulsesecure",
"version": "5.2.3.65383",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "S Health",
"identifier": "com.sec.android.app.shealth",
"version": "4.7.2.0003",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Samsung Link Platform",
"identifier": "com.samsung.android.sdk.samsunglink",
"version": "2.0.2",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Samsung Print Service Plugin",
"identifier": "com.sec.app.samsungprintservice",
"version": "2.15.16011",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Samsung Push Service",
"identifier": "com.sec.spp.push",
"version": "1.6.00",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
Company Confidential
73
"name": "Security policy updates",
"identifier": "com.policydm",
"version": "SPD_v2_1409_2_1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Softcard",
"identifier": "com.isis.mclient.atnt.activity",
"version": "3.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "System Info for Android",
"identifier": "com.electricsheep.asi",
"version": "1.26.2",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "TalkBack",
"identifier": "com.google.android.marvin.talkback",
"version": "4.4.1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "TouchDown for SmartPhones",
"identifier": "com.nitrodesk.droid20.nitroid",
"version": "8.5.00094",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
Company Confidential
74
{
"name": "Unlock",
"identifier": "io.appium.unlock",
"version": "1.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "Vysor",
"identifier": "com.koushikdutta.vysor",
"version": "1.0.0.0",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "YouTube",
"identifier": "com.google.android.youtube",
"version": "11.13.56",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
},
{
"name": "YP",
"identifier": "com.yellowpages.android.ypmobile",
"version": "5.8.1",
"platformType": "A",
"status": null,
"vpnName": null,
"configurations": null
}
]
}
],
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.get.inventory.devices.success",
"localizedMessage": "\"Got app inventory for devices [70e3fc6b-ee97-410d-a712-
3bdbf8f004dd].\""
Company Confidential
75
}
]
}
Company Confidential
76
Get devices that have a specific app installed
This call returns a list of devices that have a specific app installed.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Apply and remove application label
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appinventory/devices
Company Confidential
77
Request parameters
Company Confidential
78
Parameter Description Sample Value
limit Parameter Type: Query
Data Type: Number
Min: 0
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 200.
offset Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.
sortField Parameter Type: Query phonenumber
Data Type: String
Valid Values:
• phonenumber (device current phone number)
• username (device user principal)
• platform (device platform)
• version (app inventory version)
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Company Confidential
79
Response fields
Field Description
results An array of the following objects: uuid, id, principal, deviceSpaceId,
deviceSpacePath, username, platform, os, phonenumber, model,
version, name, managed, and vppAccountName.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
Request
curl -k -v -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/appinventory/
devices?adminDeviceSpaceId=1&inventoryId=14&sortField=username&sortOrder=ASC&page=1&off-
set=0&limit=50'
Response
{
"totalCount":2,
"resultCount":2,
"hasMore":false,
"results":[
{
"uuid":"a27d569a-33e0-4712-ab2f-10ec9d343fda",
"id":2,
"principal":"miadmin",
"deviceSpaceId":1,
"deviceSpacePath":"/1/",
"username":"miadmin",
"platform":"iOS 9.1",
"os":"I",
"phonenumber":"PDA 2",
"model":"iPad Mini",
"version":"8536168",
"name":"miadmin",
"managed":false,
"vppAccountName":null
},
{
"uuid":"526bc7a4-2d2e-4230-a766-05e94777c01d",
"id":1,
"principal":"miadmin",
"deviceSpaceId":1,
Company Confidential
80
"deviceSpacePath":"/1/",
"username":"miadmin",
"platform":"iOS 9.1",
"os":"I",
"phonenumber":"15109348961",
"model":"iPhone 6 Plus",
"version":"8536168",
"name":"miadmin",
"managed":false,
"vppAccountName":null
}
]
}
Company Confidential
81
Chapter 7
Company Confidential
82
Get a list of all available apps
This call gets a list of all available apps.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appstore/apps
Company Confidential
83
Request parameters
Response fields
Field Description
totalCount
resultCount
hasMore
results
name
id
version
description
installName
platformId
platforms
createdAt
installerFileName
source
pushedCount
installedCount
pendingCount
installState
rowType
bundleID
appSortOrder
platformType
pushLabels
publishLabels
vppLabels
tokensPurchased
tokensRemaining
Company Confidential
84
Field Description
vppLicensesPurchased
vppLicensesUsed
size
author
webAppUri
format
appIconUrl
permissionUpdateAvailable
afw
appBgColor
hidden
profileExpirationDate
categories
recommendedApp
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" "https://<mobileironcore>/api/v2/
appstore/apps?adminDeviceSpaceId=1"
Response
{
"totalCount": 15,
"resultCount": 15,
"hasMore": false,
"results": [
{
"name": "Accellion",
"id": 108,
"version": null,
"description": null,
"installName": null,
"platformId": null,
"platforms": null,
"createdAt": 1478044321000,
"installerFileName": null,
"source": "Public",
"pushedCount": 0,
"installedCount": 0,
"pendingCount": 0,
"installState": "",
"rowType": null,
"bundleID": "com.accellion.AccellioniPhone",
"appSortOrder": null,
"platformType": "I",
"pushLabels": null,
"publishLabels": [ ],
"vppLabels": [ ],
"tokensPurchased": 0,
Company Confidential
85
"tokensRemaining": 0,
"vppLicensesPurchased": 0,
"vppLicensesUsed": 0,
"size": 53989376,
"author": "Accellion, Inc.",
"webAppUri": null,
"format": null,
"appIconUrl": "/mifs/admin/rest/api/v2/appstore/apps/108/images/4f393e17-4b8b-445d-b6a0-
fbb17cac087b",
"permissionUpdateAvailable": false,
"afw": false,
"appBgColor": null,
"hidden": false,
"profileExpirationDate": null,
"categories": [ ],
"recommendedApp": true
},
{
"name": "Acronis Access",
"id": 115,
"version": null,
"description": null,
"installName": null,
"platformId": null,
"platforms": null,
"createdAt": 1478044338000,
"installerFileName": null,
"source": "Public",
"pushedCount": 0,
"installedCount": 0,
"pendingCount": 0,
"installState": "",
"rowType": null,
"bundleID": "com.grouplogic.mobilecho",
"appSortOrder": null,
"platformType": "I",
"pushLabels": null,
"publishLabels": [ ],
"vppLabels": [ ],
"tokensPurchased": 0,
"tokensRemaining": 0,
"vppLicensesPurchased": 0,
"vppLicensesUsed": 0,
"size": 138735616,
"author": "Group Logic, Inc.",
"webAppUri": null,
"format": null,
"appIconUrl": "/mifs/admin/rest/api/v2/appstore/apps/115/images/2e71acf0-2f36-4553-8e9c-
4640e88a5191",
"permissionUpdateAvailable": false,
"afw": false,
"appBgColor": null,
"hidden": false,
"profileExpirationDate": null,
"categories": [ ],
"recommendedApp": true
},
...
]
}
Company Confidential
86
Get app data by id
This call gets app data by app id.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appstore/apps/{id}
Company Confidential
87
Request parameters
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
messagingSupported
provisoningProfile
unmanagedUpdateAllowed
hiddenInAppstore
noCostApp
ipadOnly
apnsCertificate
cdnDisabled
cdnServiceEnabled
backupPrevented
removedWhenMdmDisabled
pushedOnRegistration
quarantinable
overrideURL
dataProtectionRequired
perAppVpnByLabelOnly
featuredApp
categories
Company Confidential
88
Field Description
description
name
id
description
name
id
tabletScreenshots
url
uuid
fileName
phoneScreenshots
url
uuid
fileName
installer
iconFile
url
uuid
fileName
vpnIds
modifiedAt
createdAt
installSize
ratingCount
averageRating
currency
cost
updateNotes
description
developerName
publicStoreId
publicAppStoreType
catalogType
creatorType
appId
displayVersion
altVersion
Company Confidential
89
Field Description
version
platformType
name
id
Company Confidential
90
Android Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
secureApp
mandatoryOverwrite
mandatory
codeVersion
versionRequired
minimumOsVersion
restrictions
displayValue
values
value
type
key
title
displayValue
values
value
type
key
title
permissionUpdateAvailable
uninstallBlocked
silentInstall
androidWork
cdnDisabled
cdnServiceEnabled
backupPrevented
removedWhenMdmDisabled
pushedOnRegistration
quarantinable
overrideURL
dataProtectionRequired
Company Confidential
91
Field Description
perAppVpnByLabelOnly
featuredApp
categories
tabletScreenshots
phoneScreenshots
installer
iconFile
url
uuid
fileName
vpnIds
modifiedAt
createdAt
installSize
ratingCount
averageRating
currency
cost
updateNotes
description
developerName
publicStoreId
publicAppStoreType
catalogType
creatorType
appId
displayVersion
altVersion
version
platformType
name
id
Request
curl -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/itunes' --data-
urlencode 'adminDeviceSpaceId=1&query=mobileiron&countryCode=US&limit=1'
Company Confidential
92
iOS Response
"messagingSupported": false,
"provisoningProfile": null,
"unmanagedUpdateAllowed": false,
"hiddenInAppstore": false,
"noCostApp": false,
"ipadOnly": false,
"apnsCertificate": null,
"cdnDisabled": false,
"cdnServiceEnabled": false,
"backupPrevented": true,
"removedWhenMdmDisabled": false,
"pushedOnRegistration": false,
"quarantinable": false,
"overrideURL": null,
"dataProtectionRequired": false,
"perAppVpnByLabelOnly": false,
"featuredApp": false,
"categories": [
{
"description": "test",
"name": "Category 1",
"id": 1
},
{
"description": "test",
"name": "Category 2",
"id": 2
}
],
"tabletScreenshots": [
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=031498cc-e86c-41f2-ac2e-e04dba7909dd&ext=PNG",
"uuid": "031498cc-e86c-41f2-ac2e-e04dba7909dd",
"fileName": "screen-shot-ipad-0.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=2&uuid=bbee-
ba4d-9e0b-454d-b811-8004ac92d295&ext=PNG",
"uuid": "bbeeba4d-9e0b-454d-b811-8004ac92d295",
"fileName": "screen-shot-ipad-1.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=6f1bbf06-8017-4232-96f5-6de0de7eab64&ext=PNG",
"uuid": "6f1bbf06-8017-4232-96f5-6de0de7eab64",
"fileName": "screen-shot-ipad-2.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=b14e885e-9d95-497d-9f3b-a449bf40302f&ext=PNG",
"uuid": "b14e885e-9d95-497d-9f3b-a449bf40302f",
"fileName": "screen-shot-ipad-3.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=648a3e89-6c10-4c06-9417-5acb37d835e6&ext=PNG",
"uuid": "648a3e89-6c10-4c06-9417-5acb37d835e6",
"fileName": "screen-shot-ipad-4.png"
}
],
"phoneScreenshots": [
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=8b1ff896-19f8-49f7-8e46-dab694c50aaa&ext=PNG",
Company Confidential
93
"uuid": "8b1ff896-19f8-49f7-8e46-dab694c50aaa",
"fileName": "screen-shot-0.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=d1ab4680-9715-4add-8e06-aef36eac8bb9&ext=PNG",
"uuid": "d1ab4680-9715-4add-8e06-aef36eac8bb9",
"fileName": "screen-shot-1.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=476257bf-e536-4705-b922-9e9d0e74be9f&ext=PNG",
"uuid": "476257bf-e536-4705-b922-9e9d0e74be9f",
"fileName": "screen-shot-2.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=6a8e8f9c-2151-4046-82d1-aa4cbf1a4b73&ext=PNG",
"uuid": "6a8e8f9c-2151-4046-82d1-aa4cbf1a4b73",
"fileName": "screen-shot-3.png"
},
{
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=bb419df0-e0a3-442a-a94a-c14f7a37974d&ext=PNG",
"uuid": "bb419df0-e0a3-442a-a94a-c14f7a37974d",
"fileName": "screen-shot-4.png"
}
],
"installer": null,
"iconFile": {
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=2&uuid=bbd6099d-b4e4-40e6-8931-43e5cf244adc&ext=PNG",
"uuid": "bbd6099d-b4e4-40e6-8931-43e5cf244adc",
"fileName": "logo.png"
},
"vpnIds": [],
"modifiedAt": 1437595037000,
"createdAt": 1437410736000,
"installSize": 52363942,
"ratingCount": 31,
"averageRating": 4.5,
"currency": "USD",
"cost": 0.0,
"updateNotes": "64 bit support & bug fixes.",
"description": "The Accellion iOS Mobile App is designed for Accellion business and enterprise
customers. Mobile business users can access their Accellion Secure Mobile File Sharing environment to
share files, collaborate in real-time, edit documents, and move projects forward while ensuring
enterprise data security. \n\nThis Accellion iOS Mobile App lets users:\n\u2022Securely create, edit
and view Microsoft Office files (Excel, Powerpoint and Word) using Accellion Mobile Productivity
Suite, either online or offline.\n\u2022Securely print content from Accellion\u2019s secure container
to on-premise corporate printers without connecting to corporate network.\n\u2022Securely browse,
upload, send, and share files and folders on-the-go.\n\u2022Secure mobile access to enterprise con-
tent stores (SharePoint, Windows File Shares etc.), without VPN.\n\u2022Lock/unlock files on Accel-
lion workspace and SharePoint.\n\u2022Bulk upload/download multiple files and One click download/
upload files.\n\u2022Preview content without downloading, through server-side viewers for all busi-
ness file types, including: Word, Excel, PowerPoint, images, PDF, webpages and 300+ more document
formats.\n\u2022Use mobile contacts for sending files and sharing folders through links in
email.\n\u2022Collaborate in real-time by adding or replying to comments on files and fold-
ers.\n\n\nThe Accellion admin interface for IT allows configuration of security access control for
enterprise content, including:\n\u2022Log in using corporate LDAP credentials.\n\u2022Encrypt files
in transit and save files in an AES-256 bit encrypted container on the mobile device for offline
use.\n\u2022Whitelist 3rd party applications. \n\u2022Flexibility for BYOD or company-provisioned
devices.\n\u2022Role-based access controls to internal or external users of shared work-
spaces.\n\u2022PIN-based access to locally saved files for offline viewing and editing. \n\u2022On-
premise, in-the-cloud, and hybrid solutions. \n\u2022Audit trails and usage/activity logs.\n\nThis
Accellion iOS Mobile App requires a user account on an Accellion Mobile File Sharing system. This app
provides mobile business users the flexibility to use their own devices to securely share information
with both internal and external collaborators without compromising enterprise data security and com-
pliance.",
Company Confidential
94
"developerName": "Accellion, Inc.",
"publicStoreId": "437918847",
"publicAppStoreType": "ITUNES",
"catalogType": "APP",
"creatorType": "SYSTEM",
"appId": "com.accellion.AccellionIPhone",
"displayVersion": null,
"altVersion": "",
"version": null,
"platformType": "IPhone",
"name": "Accellion",
"id": 2
}
}
Android response
{
"messages": [
{
"localizedMessage": "App successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.appstore.get.app.success",
"type": "Info"
}
],
"results": {
"secureApp": false,
"mandatoryOverwrite": true,
"mandatory": false,
"codeVersion": "4",
"versionRequired": false,
"minimumOsVersion": "8",
"restrictions": [
{
"displayValue": null,
"values": null,
"value": "false",
"type": "BOOL",
"key": "can_read_personal_emails",
"title": "Can Read Personal Emails"
},
{
"displayValue": "Iromman's email",
"values": null,
"value": "ironman@mobileiron.com",
"type": "STRING",
"key": "email_address",
"title": "Email Address"
},
{
"displayValue": null,
"values": [
"bbanner@mobileiron.com",
"todinson@mobileiron.com",
"tChalla@mobileiron.com"
],
"value": null,
"type": "MULTISELECT",
"key": "friends",
"title": "Friends"
}
],
"permissionUpdateAvailable": false,
"uninstallBlocked": false,
"silentInstall": false,
Company Confidential
95
"androidWork": true,
"cdnDisabled": false,
"cdnServiceEnabled": false,
"backupPrevented": false,
"removedWhenMdmDisabled": false,
"pushedOnRegistration": false,
"quarantinable": false,
"overrideURL": null,
"dataProtectionRequired": false,
"perAppVpnByLabelOnly": false,
"featuredApp": true,
"categories": [],
"tabletScreenshots": [],
"phoneScreenshots": [],
"installer": null,
"iconFile": {
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=13&uuid=321974ec-4c86-418b-8e8b-74cc8e806a17&ext=PNG",
"uuid": "321974ec-4c86-418b-8e8b-74cc8e806a17",
"fileName": "icon.png"
},
"vpnIds": [],
"modifiedAt": 1437412261000,
"createdAt": 1437412227000,
"installSize": 862911,
"ratingCount": null,
"averageRating": null,
"currency": null,
"cost": null,
"updateNotes": "",
"description": "",
"developerName": null,
"publicStoreId": null,
"publicAppStoreType": null,
"catalogType": "APP",
"creatorType": "ADMIN",
"appId": "com.fischerklasgmail.geometrics",
"displayVersion": null,
"altVersion": "4",
"version": "4",
"platformType": "Android",
"name": "Geometrics",
"id": 13
}
}
Company Confidential
96
Search Apple iTunes App Store by name/description
This call searches for apps in the iTunes app store using a keyword from the app’s name or description.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/appstore/itunes
Company Confidential
97
Request parameters
Response fields
Field Description
messageKey Message key for the localized message bundle.
messageParameters Parameters for the localized message.
localizedMessageWithParameters Localized message with parameters unresolved.
localizedMessage localized message with parameters resolved.
result An array of retrieved objects shown in the following rows.
artistId
artistName
artistViewUrl
artworkUrl60
artworkUrl100
artworkUrl512
averageUserRating
averageUserRatingForCurrentVe
rsion
contentAdvisoryRating
Company Confidential
98
Field Description
currency
description
features
fileSizeBytes
genres
genreIds
ipadScreenshotUrls
isGameCenterEnabled
kind
languageCodesISO2A
price
primaryGenreId
primaryGenreName
releaseNotes
screenshotUrls
sellerName
sellerUrl
supportedDevices
trackCensoredName
trackId
trackName
trackViewUrl
releaseDate
trackContentRating
userRatingCount
userRatingCountForCurrentVers
ion
version
wrapperType
catalogVer
bundleId
free
ipadOnly
Company Confidential
99
Sample request and response
Request
curl -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/itunes' --data-
urlencode 'adminDeviceSpaceId=1&query=mobileiron&countryCode=US&limit=1'
Response
{
"messageKey": "com.mobileiron.vsp.messages.appstore.apple.lookup.app.success",
"messageParameters": [
1
],
"localizedMessageWithParameters": "App lookup returned ''{0}'' results.",
"localizedMessage": "App lookup returned '1' results.",
"result": [
{
"artistId": 320659797,
"artistName": "MobileIron",
"artistViewUrl": "https://itunes.apple.com/us/artist/mobileiron/id320659797?uo=4",
"artworkUrl60": "http://a606.phobos.apple.com/us/r30/Purple4/v4/40/e0/5c/40e05c06-3cc4-
4a7a-9510-f350d549c08f/Icon.png",
"artworkUrl100": "http://a215.phobos.apple.com/us/r30/Purple3/v4/c0/e8/79/c0e879a6-a223-
e8bf-5dcb-56ec70d925b6/mzl.emcoqmwq.png",
"artworkUrl512": "http://a215.phobos.apple.com/us/r30/Purple3/v4/c0/e8/79/c0e879a6-a223-
e8bf-5dcb-56ec70d925b6/mzl.emcoqmwq.png",
"averageUserRating": 3.5,
"averageUserRatingForCurrentVersion": 3,
"contentAdvisoryRating": "4+",
"currency": "USD",
"description": "MobileIron's Mobile@Work™ app seamlessly integrates your iOS device with
your company's mobile operations.\n• Automatically configure your device for access to your corporate
Wi-Fi and VPN networks.\n• Get access to email, protected attachments, and other corporate
resources.\n• View documents stored on SharePoint and other company document repositories and store
them locally for offline viewing.\n• Annotate documents and securely email them to your col-
leagues.\n• Test and profile your network connection speeds and track your results geographically.\n•
Authenticate to MobileIron AppConnect secure applications.\n\nNOTE: The Mobile@Work™ iOS app requires
use of MobileIron's enterprise Virtual Smartphone Platform. Please consult with your company's Mobile
IT organization before downloading this app. The Mobile@Work™ app will not operate without the
required MobileIron infrastructure.",
"features": [
"iosUniversal"
],
"fileSizeBytes": 17851098,
"genres": [
"Business",
"Utilities"
],
"genreIds": [
"6000",
"6002"
],
"ipadScreenshotUrls": [
"http://a3.mzstatic.com/us/r30/Purple4/v4/3d/8b/11/3d8b11d0-eb5f-f783-8b69-
91b3150f2f76/screen480x480.jpeg",
"http://a3.mzstatic.com/us/r30/Purple4/v4/73/45/65/73456540-8afa-b718-920b-
8f79e00d4d4d/screen480x480.jpeg"
],
"isGameCenterEnabled": false,
"kind": "software",
"languageCodesISO2A": [
"NL",
"EN",
"FR",
"DE",
Company Confidential
100
"IT",
"JA",
"KO",
"PL",
"PT",
"RO",
"ZH",
"SK",
"ES",
"ZH"
],
"price": 0,
"primaryGenreId": 6000,
"primaryGenreName": "Business",
"releaseNotes": "• Bug fixes.",
"screenshotUrls": [
"http://a3.mzstatic.com/us/r30/Purple5/v4/54/a5/df/54a5df30-3e7b-09a1-11ca-
2d9aef159a1a/screen322x572.jpeg",
"http://a1.mzstatic.com/us/r30/Purple4/v4/a8/b2/b0/a8b2b01d-1af0-682b-dc7b-
0d7a7188357b/screen322x572.jpeg",
"http://a3.mzstatic.com/us/r30/Purple4/v4/dd/60/64/dd6064fd-eecb-e7fd-02f2-
06ba1875d4cc/screen322x572.jpeg"
],
"sellerName": "MobileIron",
"sellerUrl": "http://www.mobileiron.com",
"supportedDevices": [
"iPhone4S",
"iPhone4",
"iPadFourthGen",
"iPhone5",
"iPhone5s",
"iPhone5c",
"iPadThirdGen4G",
"iPhone-3GS",
"iPadThirdGen",
"iPad2Wifi",
"iPadMini4G",
"iPodTouchFifthGen",
"iPadMini",
"iPodTouchourthGen",
"iPadFourthGen4G",
"iPad23G"
],
"trackCensoredName": "MobileIron Mobile@Work™ Client",
"trackId": 320659794,
"trackName": "MobileIron Mobile@Work™ Client",
"trackViewUrl": "https://itunes.apple.com/us/app/mobileiron-mobile-work-client/
id320659794?mt=8&uo=4",
"releaseDate": 1248721090000,
"trackContentRating": "4+",
"userRatingCount": 861,
"userRatingCountForCurrentVersion": 13,
"version": "6.1.1",
"wrapperType": "software",
"catalogVer": null,
"bundleId": "com.mobileiron.phoneatwork",
"free": true,
"ipadOnly": false
}
]
}
Company Confidential
101
Import iTunes app by track id
This call searches for an app in the iTunes by the app's track id, and then imports it if it is available.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/appstore/itunes
Company Confidential
102
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
id
name
platformType
platformCode
Company Confidential
103
Field Description
version
altVersion
displayVersion
appId
creatorType
catalogType
publicAppStoreType
publicStoreId
developerName
description
updateNotes
cost
currency
averageRating
ratingCount
installSize
createdAt
modifiedAt
vpnIds
iconFile
installer
phoneScreenshots
tabletScreenshots
categories
featuredApp
hiddenInAppstore
perAppVpnByLabelOnly
dataProtectionRequired
overrideURL
quarantinable
pushedOnRegistration
backupPrevented
cdnServiceEnabled
cdnDisabled
apnsCertificate
ipadOnly
noCostApp
Company Confidential
104
Field Description
provisioningProfile
messagingSupported
Request
curl -X POST -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/
itunes?adminDeviceSpaceId=1&trackId=530168168'
Response
{
"results": {
"id": 166,
"name": "Hotels.com - Hotel booking and last minute hotel deals",
"platformType": "IPhone",
"platformCode": "I",
"version": null,
"altVersion": "",
"displayVersion": null,
"appId": "com.hotels.HotelsNearMe",
"creatorType": "ADMIN",
"catalogType": "APP",
"publicAppStoreType": "ITUNES",
"publicStoreId": "284971959",
"developerName": "Hotels.com",
"description": "The Hotels.com app is the simple, fast and secure way to book your perfect
hotel.\n \nPLAN\n- Instantly access Secret Prices on select hotels. These are lower prices that
aren't available to everyone.\n- Easily discover your perfect hotels with our in-depth sort and fil-
ter options.\n- Get exclusive deals for hotels in your area tonight by using our \u201cTonight\u2019s
Local Deals\u201d feature.\n- Save all your favorite hotels to easily compare between features and
prices.\n- Easy-to-use map view to discover all the hotels around you. \n\nBOOK\n- Collect 10 nights
with us and get 1 free* with Hotels.com\u00ae Rewards\n- Choose when to pay. Either when you book or
when you stay at the hotel.\n- Securely store your payment details for fast, easier and safe book-
ings.\n- Save your booking to your Passbook for whenever you need it.\n\nMANAGE\n- Sign in once and
the app will keep you logged in. This is the fastest and easiest way to search for hotels, view your
bookings and collect nights.\n- Use Facebook to sign in or register. Create one account for all of
your devices with just a touch of a button.\n- See your past, current and future hotel bookings, even
when you don\u2019t have access to the Internet. \n- Call our customer support from within the app
24\/7 for help making or managing bookings.\n\n*The maximum value of your free night is the average
daily rate of your ten nights. Your free night does not include taxes and fees. Account Summary Bal-
ance updates after stay has been completed.\n\nContinued use of GPS running in the background can dra-
matically decrease battery life.",
"updateNotes": "- Optimised for iOS 9!\n- We've made some improvements on our side so you can bet-
ter enjoy your travels. See you out there!\n\n*Thanks for your feedback! It's really useful so please
keep telling us what you think by reviewing our app and rating us 5 stars.*",
"cost": 0,
"currency": "USD",
"averageRating": 3,
"ratingCount": 35968,
"installSize": 57040450,
"createdAt": 1446246837000,
"modifiedAt": 1446246840000,
"vpnIds": [
],
"iconFile": null,
"installer": null,
"phoneScreenshots": [
],
Company Confidential
105
"tabletScreenshots": [
],
"categories": [
],
"featuredApp": false,
"hiddenInAppstore": false,
"perAppVpnByLabelOnly": false,
"dataProtectionRequired": false,
"overrideURL": null,
"quarantinable": false,
"pushedOnRegistration": false,
"backupPrevented": false,
"cdnServiceEnabled": false,
"cdnDisabled": false,
"apnsCertificate": null,
"ipadOnly": false,
"noCostApp": true,
"provisioningProfile": null,
"messagingSupported": false
},
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.import.app.success",
"localizedMessage": "App successfully imported."
}
]
}
Company Confidential
106
Search Google Play by keyword
This call searches Google Play for apps using keywords.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/appstore/googleplay
Company Confidential
107
Request parameters
Response fields
Field Description
messageKey Message key for the localized message bundle.
messageParameters Parameters for the localized message.
localizedMessageWithParameters Localized message with parameters unresolved.
localizedMessage localized message with parameters resolved.
result An array of retrieved objects shown in the following rows.
link
title
icon
bundleId
price
currency
category
categoryDisplay
shortDescription
Company Confidential
108
Field Description
ratings
developerName
Request
curl -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/google-
play?query=facebook'
Response
{
"messageKey":"com.mobileiron.vsp.messages.appstore.search.app.success",
"messageParameters":[
2
],
"localizedMessageWithParameters":"App search returned ''{0}'' results.",
"localizedMessage":"App search returned '2' results.",
"result":[
{
"link":"https://play.google.com/store/apps/details?id=com.facebook.katana",
"title":"Facebook",
"icon":"https://lh5.ggpht.com/_XklY7dK6yGsYt53X15RIp7-tbdjWMwQwl_iUAcW-uSq_8zAprmywdn5DQfBH-
vxZurs1=w170",
"bundleId":"com.facebook.katana",
"price":0.0,
"currency":null,
"category":null,
"categoryDisplay":null,
"shortDescription":"Keeping up with friends is faster than ever.• See what friends are up to•
Share updates, photos and videos• Get notified when friends like and comment on your posts• Text, chat
and have group conversations• Play games and use your favorite appsNow you can get early access to the
next version of Facebook for Android by becoming a beta tester. Learn how to sign up, give feedback
and leave the program in our Help Center: http://on.fb.me/133NwuP Problems downloading or installing
the app? See http://bit.ly/GPDownload1Still need help? Please tell us more about the issue. http://
bit.ly/invalidpackageFacebook is only available for users age 13 and over.Terms of Service: http://
m.facebook.com/terms.php.",
"ratings":null,
"developerName":"Facebook"
},
{
"link":"https://play.google.com/store/apps/details?id=com.facebook.orca",
"title":"Messenger",
"icon":"https://lh5.ggpht.com/0VYAvZLR9YhosF-thqm8xl8EWsCfrEY_uk2og2f59K8IOx5TfPsXjFVwxaH-
VnUbuEjc=w170",
"bundleId":"com.facebook.orca",
"price":0.0,
"currency":null,
"category":null,
"categoryDisplay":null,
"shortDescription":"Instantly reach the people in your life—for free. Messenger is just like
texting, but you don't have to pay for every message (it works with your data plan).Not just for Face-
book friends: Message people in your phone book and just enter a phone number to add a new con-
tact.Group chats: Create groups for the people you message most. Name them, set group photos and keep
them all in one place.Photos and videos: Shoot videos and snap selfies or other photos right from the
app and send them with one tap.Chat heads: Keep the conversation going while you use other apps. Free
calls: Talk as long as you want, even with people in other countries. (Calls are free over Wi-Fi. Oth-
erwise, standard data charges apply.)Even more ways to message: Bring your conversations to life with
stickers. Preview your gallery photos and videos without leaving the conversation--then choose the
perfect ones to send.Record voice messages when you have more to say.Extra features:Know when people
have seen your messages.Forward messages or photos to people who weren't in the conversation.Search
Company Confidential
109
for people and groups to quickly get back to them.Turn on location to let people know when you're
nearby.See who's available on Messenger and who's active on Facebook. Create shortcuts to get to any
conversation right from your home screen.Turn off notifications when you're working, sleeping or just
need a break.Stay logged in so you never miss a message.",
"ratings":null,
"developerName":"Facebook"
}
]
}
Company Confidential
110
Search for a Windows app
This call searches for a Windows app.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appstore/windowsStore
Company Confidential
111
Request parameters
Response fields
Field Description
results Results container for array of fields shown below.
title
appId
version
imageIds
publisher
category
releaseDate
Company Confidential
112
Field Description
inAppCatalog
imageIconUrl
browserLink
bgColor
identifier
messages
type
messageKey
localizedMessage
messageParameters
resultCount How many apps were returned.
Request
curl -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/windowsS-
tore?searchText=Apps%40Work&languageCode=en-us&limit=50&storeType=WIN8&adminDeviceSpaceId=1'
Response
{
"results": [
{
"title": "Apps@Work",
"appId": "24e948cc-dd86-44b1-9c5a-5793231b54b7",
"version": "N/A",
"imageIds": [ ],
"publisher": null,
"category": null,
"releaseDate": null,
"inAppCatalog": false,
"imageIconUrl": "http://wscont1.apps.microsoft.com/winstore/1x/6bd36ad9-5b2c-4c52-abae-
32df0c58e9b2/AppTile.2.254408.1.png",
"browserLink": "http://apps.microsoft.com/windows/en-us/app/apps@work/24e948cc-dd86-44b1-
9c5a-5793231b54b7",
"bgColor": "#464646",
"identifier": "MobileIronInc.MobileWork_46hhcags7zat8"
},
{
"title": "Canvas Business Forms, Apps, Work Orders, Dispatch & Inspections",
"appId": "ccf8eda8-f26a-4663-a877-68d8a8e8e247",
"version": "N/A",
"imageIds": [ ],
"publisher": null,
"category": null,
"releaseDate": null,
"inAppCatalog": false,
"imageIconUrl": "http://wscont1.apps.microsoft.com/winstore/1x/4206466b-44f9-4d68-89b6-
aad4ffc430fd/AppTile.2.355596.1.png",
"browserLink": "http://apps.microsoft.com/windows/en-us/app/canvas-business-forms,-apps,-
work-orders,-dispatch---inspections/ccf8eda8-f26a-4663-a877-68d8a8e8e247",
"bgColor": "#464646",
"identifier": "57E60260.CanvasBusinessAppsForms_81m5mmnk14ej2"
},
Company Confidential
113
{
"title": "Formotus Pro",
"appId": "5b493605-bea0-4626-be1a-b18c97eff101",
"version": "N/A",
"imageIds": [ ],
"publisher": null,
"category": null,
"releaseDate": null,
"inAppCatalog": false,
"imageIconUrl": "http://wscont1.apps.microsoft.com/winstore/1x/3644598f-5bb2-4564-8463-
07a9e1f2ff5d/AppTile.2.307028.1.png",
"browserLink": "http://apps.microsoft.com/windows/en-us/app/formotus-pro/5b493605-bea0-
4626-be1a-b18c97eff101",
"bgColor": "#FFFFFF",
"identifier": "C9C6FD0D.Formotus_738n75bts231w"
}
],
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.search.app.success",
"localizedMessage": "App search returned '3' results.",
"messageParameters": [
3
]
}
],
"resultCount": 3
}
Company Confidential
114
Import a public Windows app
This call imports a public Windows app.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/windowsStore/{appId}
Company Confidential
115
Request parameters
Response fields
Field Description
results Container for the results fields below.
id
name
platformType
platformCode
version
altVersion
displayVersion
appId
creatorType
Company Confidential
116
Field Description
catalogType
publicAppStoreType
publicStoreId
developerName
description
updateNotes
cost
currency
averageRating
ratingCount
installSize
createdAt
modifiedAt
vpnIds
iconFile
fileName
uuid
url
installer
phoneScreenshots
tabletScreenshots
categories
featuredApp
hiddenInAppstore
perAppVpnByLabelOnly
dataProtectionRequired
overrideURL
quarantinable
pushedOnRegistration
backupPrevented
cdnServiceEnabled
cdnDisabled
silentUpgradeInstall
aetAppSettingId
desktopApp
messages Container for messages information.
type Indicates the type of the message.
Company Confidential
117
Field Description
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
messageParameters Parameters for the localized message.
Request
curl -X POST -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/windowsS-
tore/ccf8eda8-f26a-4663-a877-68d8a8e8e247?adminDeviceSpaceId=1' --data 'appId=ccf8eda8-f26a-4663-
a877-68d8a8e8e247&version=N%2FA&title=Canvas%20Business%20Forms%2C%20Apps%2C%20Work%20Orders%2C%20
Dispatch%20%26%20Inspections&storeType=WIN8'
Response
{
"results": {
"id": 121,
"name": "Canvas Business Forms, Apps, Work Orders, Dispatch & Inspections",
"platformType": "Windows",
"platformCode": "E",
"version": "N/A",
"altVersion": "",
"displayVersion": "N/A",
"appId": "57E60260.CanvasBusinessAppsForms_81m5mmnk14ej2",
"creatorType": "ADMIN",
"catalogType": "APP",
"publicAppStoreType": "WIN8",
"publicStoreId": "ccf8eda8-f26a-4663-a877-68d8a8e8e247",
"developerName": "Canvas Solutions, Inc.",
"description": "Canvas replaces expensive and inefficient paper business forms with mobile
apps for your smartphones and tablets. Canvas is easy to use – no programming skills required.
Download the Canvas app and sign up for a free 30-day trial. No credit card
required.
*******
Special Promotion: Canvas will convert your first paper form into a mobile app for FREE!
*******
About Canvas:
Canvas is a cloud-based software service that allows businesses to replace expensive and inefficient
paper forms with powerful apps on their smartphones and tablets. Canvas enables users to collect
information using mobile devices, share that information and easily integrate with existing backend
systems. Canvas also offers the first business-only application store of its kind, with 14,000+ pre-
built, fully customizable apps that work on all mobile platforms and serve 30+ vertical markets.
Every Canvas app is customizable by the end user and can incorporate functionality such as GPS, image
capture, calculations, dispatch, electronic signatures, and access to business data such as parts
catalogs, price lists and customer records.
Company Confidential
118
Canvas has automated millions of manual processes and replaced over 30 tons of paper for businesses,
making it one of the fastest growing mobile app services in the world.",
"updateNotes": "- Fixed issue with username and trailing spaces
- Fixed issue with not allow some images to be selected",
"cost": 0,
"currency": "USD",
"averageRating": 4,
"ratingCount": 6,
"installSize": 1524000,
"createdAt": 1456715333000,
"modifiedAt": 1456715334000,
"vpnIds": [ ],
"iconFile": {
"fileName": "logo.png",
"uuid": "e2ee1174-e7a5-4455-a437-6a1ff32b6f4b",
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArti-
fact&appid=121&uuid=e2ee1174-e7a5-4455-a437-6a1ff32b6f4b&ext=PNG"
},
"installer": null,
"phoneScreenshots": [ ],
"tabletScreenshots": [ ],
"categories": [ ],
"featuredApp": false,
"hiddenInAppstore": false,
"perAppVpnByLabelOnly": false,
"dataProtectionRequired": false,
"overrideURL": null,
"quarantinable": false,
"pushedOnRegistration": false,
"backupPrevented": false,
"cdnServiceEnabled": false,
"cdnDisabled": false,
"silentUpgradeInstall": false,
"aetAppSettingId": null,
"desktopApp": false
},
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.import.app.success",
"localizedMessage": "App successfully imported.",
"messageParameters": [ ]
}
]
}
Company Confidential
119
Upload an in house app
This call uploads an in-house app. You need to have an iOS, Android, or Windows installer file ready to go when
you make this call.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/inhouse
Company Confidential
120
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
result An array of retrieved objects shown in the following rows.
MESSAGING_SUPPORTED
appid
applogoname
appname
apptype
appversion
appversionalternate
appversiondisplay
bundle
description
developername
profile
Request
curl -k -sS -u <userName>:<password> -XPOST -F 'installer=@OnHoliday-resigned.ipa' 'https://<mobile-
ironcore>/api/v2/appstore/inhouse?adminDeviceSpaceId=1'
Company Confidential
121
Response
{
"results":
{
"MESSAGING_SUPPORTED": false,
"appid": "115",
"applogoname": "Icon@2x.png",
"appname": "OnHoliday",
"apptype": "APP_INHOUSE",
"appversion": "1.0.3",
"appversionalternate": "",
"appversiondisplay": "1.0.3",
"bundle": "OnHoliday",
"description": "",
"developername": "",
"profile": "Team Wildcard Distribution d1cab336-9172-4959-8d47-0667bd929f8d"
},
"messages" : [
{
"type":"Info",
"messageKey":"com.mobileiron.vsp.messages.appstore.import.app.success",
"localizedMessage":"App successfully imported."
}
]
}
Company Confidential
122
Add a web application
This call adds a web application
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/webapp
Company Confidential
123
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
messagingSupported
provisoningProfile
unmanagedUpdateAllowed
hiddenInAppstore
noCostApp
ipadOnly
apnsCertificate
cdnDisabled
cdnServiceEnabled
backupPrevented
removedWhenMdmDisabled
pushedOnRegistration
quarantinable
overrideURL
dataProtectionRequired
Company Confidential
124
Field Description
perAppVpnByLabelOnly
featuredApp
categories
description
name
id
description
name
id
tabletScreenshots
url
uuid
fileName
phoneScreenshots
url
uuid
fileName
installer
iconFile
url
uuid
fileName
vpnIds
modifiedAt
createdAt
installSize
ratingCount
averageRating
currency
cost
updateNotes
description
developerName
publicStoreId
publicAppStoreType
catalogType
creatorType
Company Confidential
125
Field Description
appId
displayVersion
altVersion
version
platformType
name
id
Request
curl -X POST -G -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/appstore/
webapp?adminDeviceSpaceId=1' --data 'name=Online%20Meet%20Entries&webAppUrl=http%3A%2F%2Fome.swim-
connection.com%2Fmeets'
Response
{
"results": {
"id": 119,
"name": "Online Meet Entries",
"platformType": "WebApp",
"platformCode": "Q",
"version": null,
"altVersion": "",
"displayVersion": null,
"appId": "Web Application: (119)",
"creatorType": "ADMIN",
"catalogType": "APP",
"publicAppStoreType": null,
"publicStoreId": null,
"developerName": "",
"description": "",
"updateNotes": "",
"cost": null,
"currency": null,
"averageRating": null,
"ratingCount": null,
"installSize": null,
"createdAt": 1456696707000,
"modifiedAt": 1456696709000,
"vpnIds": [ ],
"iconFile": {
"fileName": "webapp_default.png",
"uuid": "f31b507d8e094ddeac2cbd84dc144b82",
"url": "https://app846.auto.mobileiron.com/mifs/image/app.html?command=getAppRe-
source&action=getAppResource&uuid=f31b507d8e094ddeac2cbd84dc144b82&ext=PNG"
},
"installer": null,
"phoneScreenshots": [ ],
"tabletScreenshots": [ ],
"categories": [ ],
"featuredApp": false,
"hiddenInAppstore": false,
"perAppVpnByLabelOnly": false,
"dataProtectionRequired": false,
Company Confidential
126
"overrideURL": null,
"quarantinable": false,
"pushedOnRegistration": false,
"backupPrevented": false,
"cdnServiceEnabled": false,
"cdnDisabled": false,
"webAppUrl": "http://ome.swimconnection.com/meets"
},
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.import.app.success",
"localizedMessage": "App successfully imported."
}
]
}
Company Confidential
127
Update app data
This call updates an app’s data. Available fields to update vary by platform type and these fields are described
below.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/apps/{id}
Company Confidential
128
Request parameters
Company Confidential
129
Common appData request parameters
Company Confidential
130
Parameter Description Sample Value
categories Parameter Type: Request body
Data Type: Integer
ID's of categories. Replaces any existing category
associations.
deletedResources Parameter Type: Request body
Data Type: String
UUID's of resources to delete.
Company Confidential
131
Parameter Description Sample Value
uninstallBlocked Parameter Type: Request body
Data Type: Boolean
restrictions Parameter Type: Request body [{"displayValue": null,
Data Type: Object "values": null, "value":
"false", "type":
Array of Android For Work app restrictions. "BOOL","key":
"can_read_personal_ema
ils", "title": "Can Read
Personal Emails"}]
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of returned objects.
Request
curl -k -sS -u <userName>:<password> -XPOST 'https://<mobileironcore>/api/v2/appstore/apps/15?adminD-
eviceSpaceId=1' -F "appData=</Users/ssmith/editreq2.json" -F phoneScreenshot=@/Users/ssmith/ss1.png -
F phoneScreenshot=@/Users/ssmith/ss2.png -F icon=@/Users/ssmith/icon.png
Response
"messages": [
{
"localizedMessage": "App successfully updated.",
"messageKey": "com.mobileiron.vsp.messages.appstore.update.app.success",
"type": "Info"
}
],
"results": { ... }
}
Company Confidential
132
Upload app screenshot
This call uploads an app screenshot.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/apps/{id}/{type}/screenshots
Company Confidential
133
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
url
uuid
fileName
Request
curl -k -sS -u <userName>:<password> -XPOST 'https://<mobileironcore>/api/v2/appstore/apps/2/tablet/
screenshots?adminDeviceSpaceId=1' -F screenshot=@/Users/srolls/Downloads/evernote_tablet2.png
Response
{
"messages": [
{
"localizedMessage": "\"Screenshot added successfully.\"",
Company Confidential
134
"messageKey": "com.mobileiron.vsp.messages.appstore.add.screenshot.success",
"type": "Info"
}
],
"results": {
"url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=2&uuid=d9a45b45-
05d6-4526-b458-92404d6453fd&ext=PNG",
"uuid": "d9a45b45-05d6-4526-b458-92404d6453fd",
"fileName": "evernote_tablet2.png"
}
}
Company Confidential
135
Get all app categories
This call gets a list of all app categories.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appstore/categories
Company Confidential
136
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
description
name
id
Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/appstore/catego-
ries?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"localizedMessage": "Categories successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.appstore.get.categories.success",
"type": "Info"
}
],
"results": [
{
"description": "The first category",
"name": "Category 1",
"id": 1
},
{
"description": "The second category",
"name": "Category 2",
"id": 2
}
]
}
Company Confidential
137
Get information about a specific app category
This call returns information about a specific app category.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appstore/categories/{id}
Company Confidential
138
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
description
name
id
Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/appstore/categories/
1?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"localizedMessage": "Categories successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.appstore.get.categories.success",
"type": "Info"
}
],
"results": {
"description": "The first category",
"name": "Category 1",
"id": 1
}
Company Confidential
139
}
Company Confidential
140
Create an app category
This call creates an app category.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/categories
Company Confidential
141
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results A number representing how many new categories were created.
Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data '{"name":"Category
1", "description":"The first category"}' -XPOST 'https://<mobileironcore>/api/v2/appstore/catego-
ries?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"localizedMessage": "Category created successfully.",
"messageKey": "com.mobileiron.vsp.messages.appstore.create.category.success",
"type": "Info"
}
],
"results": 1
}
Company Confidential
142
Edit an app category
This call edits an app category.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/categories/{id}
Company Confidential
143
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data '{"name":"Category
One", "description":"The 1st category"}' -XPUT 'https://<mobileironcore>/api/v2/appstore/categories/
1?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"localizedMessage": "Category successfully updated.",
"messageKey": "com.mobileiron.vsp.messages.appstore.update.category.success",
"type": "Info"
}
]
}
Company Confidential
144
Delete an app category
This call deletes an app category.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
/api/v2/appstore/categories/{id}
Company Confidential
145
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
Request
curl -k -sS -u <userName>:<password> -XDELETE 'https://<mobileironcore>/api/v2/appstore/categories/
2?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"localizedMessage": "Category successfully updated.",
"messageKey": "com.mobileiron.vsp.messages.appstore.delete.category.success",
"type": "Info"
}
]
}
Company Confidential
146
Get per app list of VPNs
This call gets the list of available per app VPNs.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/appstore/perappvpns
Company Confidential
147
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
results An array of retrieved objects shown in the following rows.
name
id
Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/appstore/perap-
pvpns?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"localizedMessage": "Per App VPN list successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.appstore.get.perappvpns.success",
"type": "Info"
}
],
"results": [
{
"name": "VPN 1",
"id": 12
},
{
"name": "VPN 2",
"id": 13
}
]
}
Company Confidential
148
Delete an app
This call removes an app.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
/api/v2/appstore/apps/{ids}
Company Confidential
149
Request parameters
Response fields
Field Description
messages Container for messages information.
Type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
Request
curl -k -sS -u <userName>:<password> -XDELETE 'https://<mobileironcore>/api/v2/appstore/apps/
119?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.remove.app.success",
"localizedMessage": "App successfully removed."
}
]
}
Company Confidential
150
Send a message to an app
This call sends a new install or update message to an app.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Manage app
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/appstore/apps/{id}/message
Company Confidential
151
Request parameters
Response fields
Field Description
messages Container for messages information.
messageParameters Parameters for the localized message.
Company Confidential
152
Field Description
localizedMessage Localized message with parameters resolved.
messageKey Message key for the localized message bundle.
type Indicates the type of the message.
results A number representing how devices are queued to receive the message.
Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data
'{"installIncluded":true, "updateIncluded":true, "pushApp":true, "convertToManaged":false, "devi-
ceUuids":["a2b149e8-817d-484b-874c-e2113b8524b8", "a8733819-eea9-4e43-b87e-2824d02f7bcf"] }' -XPOST
'https://<mobileironcore>/api/v2/appstore/apps/117/message?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"messageParameters": [],
"localizedMessage": "\"Send message request queued successfully.\"",
"messageKey": "com.mobileiron.vsp.messages.appstore.send.message.success",
"type": "Info"
}
],
"results": 2
}
Company Confidential
153
Apply Apps To Labels
This call applies apps to labels.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Apply and remove application label
Finding this role in MobileIron Core
HTTP method
PUT
Request URI
/api/v2/appstore/apps/{appIds}/labels/{labelIds}
Company Confidential
154
Request parameters
Response fields
Field Description
messages Container for messages information.
type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
Request
curl -k -sS -u <userName>:<password> -XPUT 'https://<mobileironcore>/api/v2/appstore/apps/119/labels/
-1?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.apply.label.success",
"localizedMessage": "App(s) successfully applied to label(s)."
}
]
}
Company Confidential
155
Remove Apps From Labels
This call removes apps from labels.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: App Management
Role Description: Apply and remove application label
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
/api/v2/appstore/apps/{appIds}/labels/{labelIds}
Company Confidential
156
Request parameters
Response fields
Field Description
messages Container for messages information.
type Indicates the type of the message.
messageKey Message key for the localized message bundle.
localizedMessage Localized message with parameters resolved.
Request
curl -k -sS -u <userName>:<password> -XDELETE 'https://<mobileironcore>/api/v2/appstore/apps/119/
labels/-1?adminDeviceSpaceId=1'
Response
{
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.messages.appstore.remove.label.success",
"localizedMessage": "App(s) successfully removed from label(s)."
}
]
}
Company Confidential
157
Chapter 8
Company Confidential
158
Export audit logs to a CSV file
Exporting audit logs to a CSV file requires multiple API calls:
• Initiate the processing of audit logs to be exported:
GET api/v2/logs/audit_logs_export
• Return the status of the initiation of the export process:
GET api/v2/logs/audit_logs_export_status
• Initiate the download of the CSV file:
GET api/v2/logs/audit_logs_csv
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Company Confidential
159
Request URI
api/v2/logs/audit_logs_export
Request parameters
Company Confidential
160
Parameter Description Sample Value
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Response fields
Field Description
exportStatusMsg Audit logs processing initiated/failure message.
isRunning Boolean value that indicates whether the audit logs processing is
initiated/running or not.
Sample Request
curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/logs/audit_logs_export --
data-urlencode 'sortField=requestedAt' --data-urlencode 'sortOrder=ASC'
Sample Responses
Success:
{
"exportStatusMsg":"Initiated processing of Audit Logs to be exported...",
"isRunning":true
}
Failure:
{
"exportStatusMsg":"Failed to initiate audit logs export",
"isRunning":false
}
Company Confidential
161
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/logs/audit_logs_export_status
Request parameters
Company Confidential
162
Response fields
Field Description
exportStatusMsg Audit Logs processing status/progress message.
"success" - If the processing is completed successfully.
"fail" - If the processing is failed due to server error.
isRunning Boolean value that indicates whether the audit logs processing is
progressing or not.
isExportStatusAvailable Is the export progress status available.
Sample Request
curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/logs/audit_logs_export_status
Sample Responses
While the processing of audit log entries to be exported is progressing:
{
"exportStatusMsg":"Processed 10,000 of 80,000 audit log entries...",
"isRunning":true,
"initiatedAt":"01-22-2005-1106412118809",
"isExportStatusAvailable":true
}
Failure:
{
"exportStatusMsg":"fail",
"isRunning":false,
"isExportStatusAvailable":true
}
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Logs and Events Management
Role Description: View logs and events
Company Confidential
163
Required Role
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/logs/audit_logs_csv
Request parameters
Company Confidential
164
Response fields
Field Description
Content-type: text/csv
Content-Disposition: attachment;
filename= AuditLogs-<hostname>-
<initiatedAt>.csv
Sample Request
curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/logs/audit_logs_csv
Sample Response
Content-type: text/csv
Content-Disposition: attachment; filename= AuditLogs-<hostname>-<initiatedAt>.csv
Company Confidential
165
Search/Retrieve audit logs
This call provides access to a search function over the entire set of audit logs.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/logs/audit_logs
Company Confidential
166
Request parameters
Company Confidential
167
Parameter Description Sample Value
offset Parameter Type: Request body
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Response fields
Field Description
searchTimeMillis The time in milliseconds that it took to execute the search.
currentServerTimeMilliseconds The current server time in milliseconds since epoch.
totalCount The total number of entries that the query matched.
hasMore Indicates that there are more entries available.
resultCount The number of entries that are being returned.
results An array of entry objects. Each object includes just the fields requested.
Request
curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/logs/audit_logs --data-urlen-
code 'adminDeviceSpaceId=1' --data-urlencode 'fields=common.id' --data-urlencode 'offset=1' --data-
urlencode 'limit=2'
Response
{
"searchTimeMillis":4,
"currentServerTimeMilliseconds":1423631757695,
"totalCount":4,
"resultCount":2,
"hasMore":true,
"results":[
Company Confidential
168
{
"spacePath":null,
"reason":"Configuration Team Wildcard Distribution 80AD946C-0E35-4283-9DE8-0DF48E481144
added",
"updateRequestId":null,
"actor":null,
"requesterName":"miadmin",
"actionAt":1423559886308,
"loggedAt":1423559886308,
"version":1,
"parentId":null,
"subjectName":"Provisioning Profile - Team Wildcard Distribution 80AD946C-0E35-4283-9DE8-
0DF48E481144 : 1",
"userInRole":null,
"spaceName":null,
"objectId":null,
"subjectType":"Application Setting",
"subjectOwnerName":null,
"status":"Success",
"objectName":null,
"actionType":"ADD_APPSETTING",
"completedAt":1423559886308,
"cookie":null,
"message":null,
"subjectId":null,
"device":null,
"requestedAt":1423559886308,
"configuration":{
"configType":"Provisioning Profile",
"name":"Team Wildcard Distribution 80AD946C-0E35-4283-9DE8-0DF48E481144",
"version":"1",
"configId":8
},
"objectType":null,
"logType":"userAction"
},
{
"spacePath":null,
"reason":"User miadmin is added.",
"updateRequestId":null,
"actor":{
"miUserId":9001,
"principal":"miadmin",
"email":null
},
"requesterName":"misystem",
"actionAt":1423466939836,
"loggedAt":1423466939836,
"version":1,
"parentId":null,
"subjectName":"miadmin",
"userInRole":null,
"spaceName":null,
"objectId":null,
"subjectType":"User",
"subjectOwnerName":null,
"status":"Success",
"objectName":null,
"actionType":"ADD_USER",
"completedAt":1423466939836,
"cookie":null,
"message":null,
"subjectId":"9001",
"device":null,
"requestedAt":1423466939836,
"configuration":null,
Company Confidential
169
"objectType":null,
"logType":"userAction"
}
]
}
Company Confidential
170
Get action types facets for audit log categories
This call returns action types facets for audit logs categories.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/logs/audit_log_actions/count
Company Confidential
171
Request parameters
Company Confidential
172
Parameter Description Sample Value
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Response fields
Field Description
requestType Type of Request
totalCount The total number of entries that the query matched.
rows Rows of entries with following :
{
name: "Action Name,
count:"Action Count",
query: "Query specified"
}
resultCount The number of entries that are being returned.
results An array of entry objects. Each object includes just the fields requested.
Request
curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/logs/audit_log_actions/count
--data-urlencode 'query=' --data-urlencode 'requestType=actionType' --data-urlencode 'sor-
tOrder=ASC' --data-urlencode 'sortField=requestedAt'
Response
{
"results": {
"requestType": "actionType",
"rows": [
{
"name": "add_app_catalog",
"count": 12,
"query": ""
},
{
"name": "add_appsetting",
Company Confidential
173
"count": 1,
"query": ""
},
{
"name": "add_label",
"count": 6,
"query": ""
},
{
"name": "add_ldap",
"count": 1,
"query": ""
},
{
"name": "add_user",
"count": 38,
"query": ""
},
{
"name": "admin_portal_sign_in",
"count": 134,
"query": ""
},
{
"name": "admin_portal_sign_out",
"count": 8,
"query": ""
},
{
"name": "allow_app_tunnel",
"count": 2,
"query": ""
},
{
"name": "apply_label_to_devices",
"count": 86,
"query": ""
},
{
"name": "assign_device_space_admin",
"count": 1,
"query": ""
},
{
"name": "change_language",
"count": 1,
"query": ""
},
{
"name": "change_ownership",
"count": 1,
"query": ""
},
{
"name": "delete_label",
"count": 1,
"query": ""
},
{
"name": "delete_user_account",
"count": 12,
"query": ""
},
{
"name": "locate",
"count": 20,
Company Confidential
174
"query": ""
},
{
"name": "lock",
"count": 1,
"query": ""
},
{
"name": "modify_appsetting",
"count": 3,
"query": ""
},
{
"name": "push_profile",
"count": 12,
"query": ""
},
{
"name": "register_device",
"count": 9,
"query": ""
},
{
"name": "remove_label_from_devices",
"count": 1,
"query": ""
},
{
"name": "retire",
"count": 2,
"query": ""
},
{
"name": "send_message",
"count": 21,
"query": ""
},
{
"name": "system_config_change",
"count": 6,
"query": ""
},
{
"name": "update_device_space",
"count": 10,
"query": ""
},
{
"name": "wakeup_device",
"count": 1,
"query": ""
}
]
},
"totalCount": 25,
"resultCount": 25
}
Company Confidential
175
Chapter 9
Device Management
Company Confidential
176
Search for devices
This call returns information about devices. There are three ways to get device information: filtered by a search
query, filtered by label, or filtered by both a search query and a label.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/devices
Company Confidential
177
Request parameters
Company Confidential
178
Parameter Description Sample Value
offset Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Company Confidential
179
Response fields
Field Description
results An array of retrieved objects. Each object includes just the
fields requested with the fields parameter.
common.ip_address The device’s IP address, for example, 10.11.103.146.
common.os_version The device’s OS version, for example, 4.4.
common.platform_name The device's platform name and OS version, for example,
Android 4.4.
common.locale The locale, for example, en-US.
common.storage_capacity The device’s storage capacity in bytes, for example,
11766960000.
common.miclient_last_connected_at When the client last connected to MobileIron Core, for
example, 2016-07-11T19:19:26.000Z.
common.home_operator_name Operator of the device, for example, AT&T.
common.uuid The device’s UUID, for example, a57dcd91-f9a4-428e-
bd47-3dd96bb7e1f9. It is the internal identifier for the
device.
common.quarantined Boolean. True or false, is the device quarantined.
common.id The internal ID number of the device in MobileIron Core.
common.device_space_name The name of the device space to which the device belongs.
“Global” is the name of the default main device space.
common.imsi The international mobile subscriber identity of the device,
for example, 310410792173128. This is a unique number
identifying a GSM subscriber.
android.afw_capable Boolean. True or false, is the device Apps for Work
capable.
common.storage_free How much free storage in bytes is there on the device, for
example, 9754620000.
common.device_is_compromised Boolean. True or false, is the device compromised.
common.owner The device owner, often the company that owns the device.
user.email_address Email address of the device’s user.
common.manufacturer Device manufacturer, for example, Samsung.
common.data_protection_enabled Boolean. True or false, is the device data protection
enabled.
common.mdm_managed Boolean. True or false, is the device managed by a mobile
device management system.
common.memory_free How much free memory in bytes does the device have, for
example, 615304396.
common.model The model name of the device, for example, SAMSUNG-
SM-G900A.
common.memory_capacity How much memory in bytes does the device have, for
example, 1946943488.
Company Confidential
180
Field Description
common.client_name The bundle name of the MobileIron client on the device, for
example, com.mobileiron.
common.status Status of the device, for example, ACTIVE, PENDING,
RETIRED.
common.current_phone_number Phone number of the device.
common.platform Platform of the device, for example, Android.
common.imei International Mobile Station Equipment Identity of the
device, for example, 354691065438150. Used to identify
3GPP and iDEN mobile phones, as well as some satellite
phones.
user.display_name Name of the user associated with the device.
common.creation_date Date the corresponding account was created, for example,
2016-07-11T19:18:13.000Z.
android.attestation The attestation status of the device, for example,
UNKNOWN.
common.background_status The background status of the device, for example, 0.
common.last_connected_at The time and date of the last MDM checkin of the device,
for example, 2016-07-11T19:19:26.000Z.
common.home_country_name Cellular home country of the device, for example, United
States.
android.registration_status Registration level of the device user, for example, Device
Admin.
common.battery_level Remaining power level of the device’s battery, for example,
100.
common.client_version The version of the MobileIron client app on the device, for
example, 9.0.1.0.68D.
common.language The device’s language, for example, English.
user.user_id ID of the user associated with the device, for example,
testuser2264.
common.compliant Boolean. True or false, is the device compliant.
common.registration_date Date that the device registered with MobileIron Core, for
example, 2016-07-11T19:19:26.000Z.
common.device_admin_enabled Boolean. True or false, is the device MDM managed. For
Android, this means the MobileIron client app is set as a
Device Admin. For iOS, this means the MDM certificate is
installed on the device.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
Company Confidential
181
Sample request and response
Request
Response
{
"results": [
{
"common.ip_address": "10.11.103.146",
"common.os_version": "4.4",
"common.platform_name": "Android 4.4",
"common.locale": "en-US",
"common.storage_capacity": 11766960000,
"common.miclient_last_connected_at": "2016-07-11T19:19:26.000Z",
"common.home_operator_name": "AT&T",
"common.uuid": "a57dcd91-f9a4-428e-bd47-3dd96bb7e1f9",
"common.quarantined": false,
"common.id": 9,
"common.device_space_name": "Global",
"common.imsi": "310410792173128",
"android.afw_capable": false,
"common.storage_free": 9754620000,
"common.device_is_compromised": false,
"common.owner": "COMPANY",
"user.email_address": "testuser2264@auto8.mobileiron.com",
"common.manufacturer": "samsung",
"common.data_protection_enabled": true,
"common.mdm_managed": false,
"common.memory_free": 615304396,
"common.model": "SAMSUNG-SM-G900A",
"common.memory_capacity": 1946943488,
"common.client_name": "com.mobileiron",
Company Confidential
182
"common.status": "ACTIVE",
"common.current_phone_number": "PDA",
"common.platform": "Android",
"common.imei": "354691065438150",
"user.display_name": "testuser2264",
"common.creation_date": "2016-07-11T19:18:13.000Z",
"android.attestation": "Unknown",
"common.background_status": 0,
"common.last_connected_at": "2016-07-11T19:19:26.000Z",
"common.home_country_name": "United States",
"android.registration_status": "Device Admin",
"common.battery_level": 100,
"common.client_version": "9.0.1.0.68D",
"common.language": "English",
"user.user_id": "testuser2264",
"common.compliant": true,
"common.registration_date": "2016-07-11T19:19:26.000Z",
"common.device_admin_enabled": true
}
],
"totalCount": 1,
"resultCount": 1,
"searchTimeMillis": 51,
"currentServerTimeMilliseconds": 1468265055060,
"hasMore": false
}
Company Confidential
183
Act on a device
This call performs one of the following actions on a device:
• ENABLE_VOICE_ROAMING (iOS)
• DISABLE_VOICE_ROAMING (iOS)
• ENABLE_DATA_ROAMING (iOS)
• DISABLE_DATA_ROAMING (iOS)
• ENABLE_PERSONAL_HOTSPOT (iOS)
• DISABLE_PERSONAL_HOTSPOT (iOS)
• UPDATE_OS (iOS)
• UNLOCK_APP_CONNECT_CONTAINER (Android)
• UNLOCK_DEVICE_ONLY (Android, iOS)
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: Manage devices, restricted
Finding this role in MobileIron Core
HTTP method
POST
Company Confidential
184
Request URI
api/v2/devices/action
Request parameters
Company Confidential
185
Response fields
Field Description
actionType The action that was successful.
deviceResults A map of "device-uuid":"status", where the status describes whether the
action succeeded or why it failed.
successful Returns “true” if the action is successful on all devices, or “false” if the
action is not successful on one or more devices.
Request
Response
{
"actionType": "ENABLE_VOICE_ROAMING",
"deviceResults": {
"a68bb0cf-7a35-4d52-8259-c83398a41160": "com.mobileiron.vsp.messages.device.action.successful"
},
"successful": true
}
Company Confidential
186
Export devices
This call returns a CSV file for all devices found by the search. Use the fieldGroups parameter to specify a list of
field groups to be returned in the CSV file.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/devices
Company Confidential
187
Request parameters
Company Confidential
188
Parameter Description Sample Value
offset Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Response values
Content-Type: text/csv
Request
curl "https://[mobileironcore]/api/v2/devices?fieldGroups=USER"%"2CCOMMON"%"2CAN-
DROID"%"2CIOS"%"2CWINDOWS_PHONE&labelId=-10&query=" -H "Content-type: application/json" --data
"authUserId=bWlhZG1pbg"%"3D"%"3D"
Response
Response is a CSV file containing the retrieved values.
Company Confidential
189
Delete devices
This call deletes retired iOS, OS X, Win8, or Android devices that have not been modified in the last day.
Required Role
Required Role
Category: Device Management
Role Description: Delete retired device (API only)
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
api/v2/devices
Company Confidential
190
Request parameters
Response object
A JSON object containing the following fields:
Field Description
(unnamed} An array of the UUIDs of those devices that were eligible to be
deleted. An empty list means no devices deleted.
Request
curl -k -sS -u username:password -XDELETE -H "Content-Type: application/json" 'https://[mobileiron-
core]/api/v2/devices?adminDeviceSpaceId=1' -d '{ "deviceUuids" : [ "10c43352-15b2-413b-a3e0-
4daf3977711a", "B0BAB9BA-388E-4612-B579-43A40411670C" ] }'
Company Confidential
191
Response
Only the first UUID was returned because it met the criteria for deletion. The second UUID was not deleted, either
because it was not retired, it had been modified within the last day, or it was not of the correct platform.
[
"10c43352-15b2-413b-a3e0-4daf3977711a"
]
Company Confidential
192
Count devices
This call returns the count of devices that match the specified query.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/devices/count
Company Confidential
193
Request parameters
Response fields
Field Description
totalCount The total number of entries that the query matched.
Request
Response
{
"totalCount": 117
}
Company Confidential
194
Test an advanced search query
This call tests that the device-search query parses correctly.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/devices/query_test
Company Confidential
195
Request parameters
Response fields
Field Description
valid True if the query was valid; false otherwise.
token Represents the offending token if the query was invalid; the empty string otherwise.
position The index of the first character of the offending token relative to the beginning of
the line in which it occurs, 0..n-1; -1 otherwise.
Request
Response
{
"valid": false,
"token": "blargle",
"position": 21
}
Company Confidential
196
Get the list of searchable device fields
This call gets the name and type of device, details, and LDAP fields. You can use this information to find values for
the fields parameter for any of the API calls that allow specification of search fields, such as “Search for
devices” on page 177.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/devices/search_fields
Company Confidential
197
Request parameters
Response fields
An array of field-name-to-data-type objects:
Field Description
name The name of the field, which may be prefixed with the group to which the field
belongs. For example, "detail.APNS Capable" or "ldap.user.first_name".
type The data type of the field, which could be "STRING", "NUMBER", or "DATE".
Request
Response
[
{ "name" : "uuid", "type" : "STRING" },
{ "name" : "block_reason", "type" : "NUMBER" },
{ "name" : "last_connected_at", "type" : "DATE" },
{ "name" : "details.APNS Capable", "type" : "STRING" },
{ "name" : "ldap.user.baseDn", "type" : "STRING" }
]
Company Confidential
198
Get device details
This call gets device details for a specific device.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/devices/<deviceId>/details
Company Confidential
199
Request parameters
Response fields
Field Description
results Container for the array of detail objects returned.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
Request
curl "https://[mobileironcore]/api/v2/devices/2e33329d-fed5-4f56-a2b7-65caa5ef0cfe/details -H
"authUserId: bWlhZG1pbg==" -H "Accept: application/json"
Response
{
results: [
{
name: "ios.ProductName",
value: null
},
{
name: "common.current_operator_name",
value: null
},
{
name: "ios.security_reason_code",
value: "0x00000008"
},
{
name: "common.registration_imsi",
value: "310410"
},
... {
name: "ios.BluetoothMAC",
value: null
},
{
name: "ios.IsDeviceLocatorServiceEnabled",
value: false
}
],
totalCount: 84,
resultCount: 84
}
Company Confidential
200
Get Last Sync Time and State of ActiveSync Devices
This call gets the sync time and state of ActiveSync devices. The CSV output of this call is a helpful reference for
operators who retire devices from MobileIron and need to remove the same devices from the ActiveSync profile on
Microsoft Exchange. For example, an admin could create PowerShell scripts to read the response of this call and
delete devices from the ActiveSync profile on Microsoft Exchange that have not synced in a week.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: Manage ActiveSync device
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/V2/activesync/devicereport?daysIdle=0&state=a
Company Confidential
201
Request parameters
For ease of use, the call accepts the entire word. For example, instead of
"state=r", the call would accept "state=retired".
Note: except for retired, all values correspond to ActiveSyncStatus
enumeration. "retired" corresponds to eas_device entries with the trash
flag set to true.
Response fields
This call returns information about ActiveSync devices matching search criteria in the HTTP response body in
CSV format. The first line is the CSV column header line, followed by the actual ActiceSync device data, one row
per ActiveSync device.
Field Description
DeviceId ActiveSync Device ID
MailboxId Mailbox ID
Company Confidential
202
Field Description
Status This is the device status.
One of:
• Registered
• Unregistered
SyncStatus ActiveSync status.
One of:
• Allowed
• Blocked
• Wiped
• Quarantined
Retired One of:
• true
• false
LastSyncTime Last session time, formatted in GMT. The format is always yyyy-MM-dd hh:mm:ss z.
SentryType One of:
• Standalone
• Integrated
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
activesync/devicereport/?daysIdle=0&state=A
Response
DeviceId,MailboxId,Status,SyncStatus,Retired,LastSyncTime,SentryType
DeviceID-1,someone@company.com,Unregistered,Allowed,false,2015-03-30 03:14:57 GMT,Standalone
DeviceID-2,someone@company.com,Registered,Blocked,false,2015-03-31 03:14:57 GMT,Integrated
DeviceID-3,someone@company.com,Unregistered,Unknown,true,2015-04-01 03:14:57 GMT,Integrated
Company Confidential
203
Get app control compliance information for a device
This call gets app control compliance information for a device.
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Roles
• Category: Device Management
Role Description: View dashboard, device page, device details
• Category: Other Roles
Role Description: Mobile App
Finding these roles in MobileIron Core
HTTP method
GET
Request URI
api/v2/devices/<deviceUuid>/appcompliance
Company Confidential
204
Request parameters
Response fields
Field Description
results Container for the results array shown below.
deviceUuid
appViolationsByType
Disallowed
type
appName
appVersion
Required
type
appName
appVersion
Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/devices/7b3ad194-3bc0-
4229-b30f-26f6bb277dd7/appcompliance?adminDeviceSpaceId=1'
Response
{
"results": {
"deviceUuid": "7b3ad194-3bc0-4229-b30f-26f6bb277dd7",
"appViolationsByType": {
"Disallowed": [
{
"type": "Disallowed",
Company Confidential
205
"appName": "Sudoku",
"appVersion": "4.6"
}
],
"Required": [
{
"type": "Required",
"appName": "Evernote",
"appVersion": null
},
{
"type": "Required",
"appName": "Waze",
"appVersion": null
}
]
}
}
}
Company Confidential
206
Chapter 10
Company Confidential
207
List device spaces
This call returns information on all device spaces, including name, the criteria used to create the device space,
status, priority, device count, and the device space admins.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/device_spaces
Company Confidential
208
Request parameters
Company Confidential
209
Response fields
Field Description
results An array of entry objects: id, device space name, criteria, status,
priority, device count, and the admins of the device space.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
device_spaces?adminDeviceSpaceId=1&limit=50&sort&dir=ASC&offset=0&page=1&start=0
Response
{
"results": [
{
"id": 1,
"name": "Global",
"criteria": "",
"status": "ACTIVE",
"priority": 1,
"deviceCount": 319,
"admins": "miadmin"
}
],
"totalCount": 1,
"resultCount": 1,
"hasMore": false
}
Company Confidential
210
Get my device spaces
This call gets a list of device spaces to which the currently logged in user belongs.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/device_spaces/mine
Company Confidential
211
Request parameters
none
Response fields
Field Description
results An array of device spaces: id, device space name, and the
description of the device space.
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
device_spaces/mine?adminDeviceSpaceId=1&limit=50&sort&dir=ASC&offset=0&page=1&start=0
Response
{
"results": [
{
"id": 1,
"name": "Global",
"description": null
}
],
"totalCount": 1,
"resultCount": 1
}
Company Confidential
212
List fields for device space criteria
This call returns a list of the advanced search fields used for creating a device space.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/device_spaces/criteria
Company Confidential
213
Request parameters
Request
curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://[mobileironcore]/api/v2/
device_spaces/criteria?adminDeviceSpaceId=1
Response
{{
"results": [
{
"name": "common.home_country_code",
"type": "STRING"
},
{
"name": "common.home_country_name",
"type": "STRING"
},
... {
"name": "user.user_id",
"type": "STRING"
}
],
"totalCount": 35,
"resultCount": 35
}
Company Confidential
214
Create or update a device space
This call creates or updates a device space.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/device_spaces
Company Confidential
215
Request parameters
Response fields
Field Description
id The ID of the created or updated device space.
Request
curl "https://[mobileironcore]/api/v2/device_spaces" -H "authUserId: bWlhZG1pbg==" -H "Accept: appli-
cation/json" -H "Content-type: application/json" --data-binary "{""parentId"":""1"",""crite-
ria"":""\\""common.home_country_code\\"" = \\""US\\"" AND \\""common.home_country_name\\"" =
\\""United States\\"""",""name"":""USA Devices""}"
Company Confidential
216
Response
{
"results": {
"id": 4
}
}
Company Confidential
217
Delete a device space
This call marks a device space for deletion and then MobileIron Core deletes the marked device space within a few
hours.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
api/v2/device_spaces/[id]
Company Confidential
218
Request parameters
Parameter Description
adminDeviceSpaceId Parameter Type: Query
Data Type: Number
Default: 0
Device space ID of the administrator.
id Parameter Type: Path
Data Type: Number
ID of the device space to delete. If missing or 0 (zero), the call uses
the value of the current device space.
Response fields
Field Description
id The ID of the device space marked for deletion.
Request
curl "https://[mobileironcore]/api/v2/device_spaces/4" -X DELETE -H "Content-Type: application/json"
Response
{
"results": {
"id": 4
}
}
Company Confidential
219
Assign admins to device space
This call assigns admins to a device space.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/device_spaces/[deviceSpaceId]/admins
Company Confidential
220
Request parameters
Company Confidential
221
Response fields
This call does not return any response fields, but does return the HTTP 200 OK response code upon success.
Request
curl "https://[mobileironcore]/api/v2/device_spaces/3/admins" -H "Content-Type: application/json" --
data-binary
"{""roles"":[2,4,5,7,8,3,6,13,14,15,16,33,18,20,21,23,35],""adminLdapEntities"":[{""name"":""testuse
r000000"",""type"":""USER"",""dn"":""cn=testuser000000,ou=contacts,dc=auto2,dc=mobile-
iron,dc=com""}]}"
Response
200 OK
Company Confidential
222
Delete admins from device space
This call unassigns admins from a device space.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
api/v2/device_spaces/[deviceSpaceId]/admins
Company Confidential
223
Request parameters
Response fields
This call does not return any response fields, but does return the HTTP 200 OK response code upon success.
Company Confidential
224
Sample request and response
Request
curl "https://[mobileironcore]/api/v2/device_spaces/5/admins" -X DELETE -H "Content-Type: applica-
tion/json" --data-binary
"{""deviceSpaceId"":5,""adminLdapEntities"":[{""name"":""testuser000004"",""type"":""USER"",""dn"":"
"cn=testuser000004,ou=contacts,dc=auto2,dc=mobileiron,dc=com""}]}"
Response
200 OK
Company Confidential
225
Change device space priority
This call changes the device space priority.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/device_spaces/[deviceSpaceId]/change_priority
Company Confidential
226
Request parameters
Response fields
Field Description
results An array of information about the target device space, including id,
name, parent device space ID, resultant priority, criteria used for
creating the device space, status of the change, and the path.
Request
curl "https://[mobileironcore]/api/v2/device_spaces/5/change_priority" -H "Content-type: applica-
tion/json" --data "deviceSpaceIdAboveMe=4"
Response
{
"results": {
"id": 5,
"name": "UK Devices",
"parentId": 1,
"priority": 2,
"criteria": "\"common.home_country_code\" = \"GB\"",
"criteriaFields": "-",
"status": "PENDING",
"path": "/1/5/"
}
Company Confidential
227
}
Company Confidential
228
Evaluate device spaces
This call evaluates the status of all device spaces. For example, if you mark a device space for deletion, you can
then evaluate the device spaces to determine the status of the pending deletion.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Admin Management
Role Description: Manage administrators and device spaces
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/device_spaces/evaluate
Company Confidential
229
Request parameters
Response fields
This call does not return any response fields, but does return the HTTP 200 OK response code upon success.
Request
curl "https://[mobileironcore]/api/v2/device_spaces/evaluate" -H "Content-type: application/json" --
data "includeLabelEvaluation=1"
Response
200 OK
Company Confidential
230
Chapter 11
Label Management
Company Confidential
231
Get information on all labels
This call returns information on all labels.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Label Management
Role Description: View label
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/labels/label_summary
Company Confidential
232
Request parameters
Response fields
Field Description
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
results An array of retrieved objects shown below.
id
name
description
Company Confidential
233
Field Description
isStatic
criteria
deviceCount
deviceSpaceId
deviceSpaceName
deviceSpacePath
Request
curl -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/labels/label_summary?adminDe-
viceSpaceId=1'
Response
{
"totalCount": 10,
"resultCount": 10,
"hasMore": false,
"results": [
{
"id": -1,
"name": "All-Smartphones",
"description": "Label for all devices irrespective of OS",
"isStatic": false,
"criteria": " \"common.retired\"=false",
"deviceCount": 0,
"deviceSpaceId": 1,
"deviceSpaceName": "Global",
"deviceSpacePath": "/1/"
},
...
]
}
Company Confidential
234
Get label usage information
This call provides the usage summary of a label.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Label Management
Role Description: View label
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/labels/{labelid}/label_usage_summary
Company Confidential
235
Request parameters
Response fields
Field Description
policies
configs
id
name
description
applications
deviceCount
policyCount
configCount
userCount
applicationCount
Request
curl -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/labels/-11/label_usage_sum-
mary?adminDeviceSpaceId=1'
Response
{
"policies": [],
"configs": [
{
"id": -2,
"name": " System - iOS MDM",
"description": "Default MDM profile for iOS management."
}
],
Company Confidential
236
"applications": [],
"deviceCount": 0,
"policyCount": 0,
"configCount": 1,
"userCount": 0,
"applicationCount": 0
}
Company Confidential
237
Get information about a specific label
This call provides information about a specific label.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Label Management
Role Description: View label
Finding this role in MobileIron Core
HTTP method
GET
Request URI
/api/v2/labels/{labelId}
Company Confidential
238
Request parameters
Response fields
Field Description
results Array of the fields shown below.
uuid
id
principal
deviceSpaceId
deviceSpacePath
name
description
state
staticLabel
searchCriteria
query
deviceCount
isESSearch
devices
deviceUuids
type
rowType
assetId
assetName
Company Confidential
239
Request
curl -k -sS -u <userName>:<password> 'https://<mobileironcore>/api/v2/labels/-11?adminDeviceSpa-
ceId=1'
Response
{
"results": {
"uuid": null,
"id": -11,
"principal": null,
"deviceSpaceId": 1,
"deviceSpacePath": "/1/",
"name": "OS X",
"description": "Label for all OS X Devices.",
"state": null,
"staticLabel": false,
"searchCriteria": [],
"query": "\"common.platform\"=\"OS X\" AND \"common.retired\"=false",
"deviceCount": 0,
"isESSearch": "t",
"devices": [],
"deviceUuids": null,
"type": "LABEL",
"rowType": "SYSTEM",
"assetId": "-11",
"assetName": "OS X"
}
}
Company Confidential
240
Add/Edit a label
This call adds a new label or updates an existing label. You should send -H "Content-Type: application/json"
with this call.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Label Management
Role Description: Manage label
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/labels
Company Confidential
241
Request parameters
Response fields
Field Description
results Array of the fields shown below.
uuid
id
principal
deviceSpaceId
deviceSpacePath
name
Company Confidential
242
Field Description
description
state
staticLabel
searchCriteria
query
deviceCount
isESSearch
devices
deviceUuids
type
rowType
assetId
assetName
Request
Edit the label with labelId of -10:
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" 'https://<mobileironcore>/
api/v2/labels/?adminDeviceSpaceId=1' --data-binary '{
"name": "Android 2",
"description": "Label for all Android Phones.",
"deviceSpaceId": 1,
"static": false,
"criteria": "(\"common.platform\"=\"Android\") AND \"common.retired\"=false",
"labelId": "-10"
}'
Response
{
"results": {
"uuid": null,
"id": -10,
"principal": "miadmin",
"deviceSpaceId": 1,
"deviceSpacePath": "/1/",
"name": "Android 2",
"description": "Label for all Android Phones.",
"state": null,
"staticLabel": false,
"searchCriteria": [ ],
"query": "\"common.platform\"=\"Android\" AND \"common.retired\"=false",
"deviceCount": 0,
"isESSearch": "f",
"devices": [ ],
"deviceUuids": null,
"type": "LABEL",
"rowType": "ADMIN",
"assetId": "-10",
"assetName": "Android 2"
Company Confidential
243
}
}
Company Confidential
244
Delete a label
This call deletes a label.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Label Management
Role Description: Manage label
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
/api/v2/labels
Company Confidential
245
Request parameters
Response
200 OK
Request
curl -k -sS -u <userName>:<password> 'https://<mobileironcore>/rest/api/v2/labels/?adminDeviceSpa-
ceId=1' -X DELETE --data-binary '{"reason":"No longer needed","labelIds":[-11]}'
Response
200 OK
Company Confidential
246
Get list of applied/non-applied static labels for devices
This call gets a list of applied/non-applied static labels for devices.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Roles
Category: Label Management
Role Description: Manage label
Finding this role in MobileIron Core
HTTP method
POST
Request URI
/api/v2/devices/labels
Company Confidential
247
Request parameters
Company Confidential
248
Parameter Description Sample Value
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.
sortOrder Parameter Type: Query ASC
Data Type: String
Default: ASC
Indicates the order in which entries are returned. Values can be
"ASC" or "DESC".
Response fields
Field Description
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
results Array of the fields shown below.
uuid
id
principal
deviceSpaceId
deviceSpacePath
name
description
state
searchCriteria
applied
notApplied
isESSearch
Request
Edit the label with labelId of -10:
curl --globoff --user <userName>:<password> --data '{
"entityIds": [
1,
98
Company Confidential
249
],
"offset": 0,
"limit": 50,
"page": 1
}' --request POST 'https://<mobileironcore>/api/v2/devices/labels?adminDeviceSpaceId=1'
Response
{
"totalCount": 103,
"resultCount": 2,
"hasMore": true,
"results": [
{
"uuid": null,
"id": 3,
"principal": null,
"deviceSpaceId": 1,
"deviceSpacePath": null,
"name": "L1",
"description": "",
"state": "NOT_APPLIED",
"searchCriteria": null,
"applied": [ ],
"notApplied": [
"100000000"
],
"isESSearch": "t"
},
{
"uuid": null,
"id": 7,
"principal": null,
"deviceSpaceId": 1,
"deviceSpacePath": null,
"name": "L3",
"description": "",
"state": "NOT_APPLIED",
"searchCriteria": null,
"applied": [ ],
"notApplied": [
"100000000"
],
"isESSearch": "t"
}
]
}
Company Confidential
250
Chapter 12
Company Confidential
251
Get custom attribute definitions
This call gets all custom attribute definitions of the requested type, device or user, and of the requested status,
active or inactive.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Settings and Services Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/attributes/definitions
Company Confidential
252
Request parameters
Response fields
Field Description
resultCount The number of entries that are being returned.
totalCount The total number of entries that the query matched.
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results Container for results
modifiedAt When modified.
createdAt When created.
description Description of the custom attribute.
name Name of the custom attribute.
dataType Dta type of the custom attribute.
status Status of the custom attribute, ACTIVE or INACTIVE.
type Type of the custom attribute, DEVICE or USER.
id ID for the custome attribute.
Company Confidential
253
Sample Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/attributes/
definitions?type=device&adminDeviceSpaceId=1'
Sample Responses
{
"resultCount": 2,
"totalCount": 2,
"messages": [
{
"localizedMessage": "Attribute definitions successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.get.definitions.success",
"type": "Info"
}
],
"results": [
{
"modifiedAt": 1463183668000,
"createdAt": 1463181777000,
"description": "just testing",
"name": "flag1",
"dataType": "BOOLEAN",
"status": "ACTIVE",
"type": "DEVICE",
"id": 21
},
{
"modifiedAt": 1463176881000,
"createdAt": 1463172337000,
"description": "just testing",
"name": "testAttr1",
"dataType": "LONG",
"status": "INACTIVE",
"type": "DEVICE",
"id": 6
}
]
}
Company Confidential
254
Get custom attribute definition
This call gets the custom attribute definition specified by the id parameter.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Settings and Services Management
Role Description: Manage custom attributes
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/attributes/definitions/{id}
Company Confidential
255
Request parameters
Response fields
Field Description
resultCount The number of entries that are being returned.
totalCount The total number of entries that the query matched.
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results Container for results
modifiedAt When modified.
createdAt When created.
description Description of the custom attribute.
name Name of the custom attribute.
dataType Dta type of the custom attribute.
status Status of the custom attribute, ACTIVE or INACTIVE.
type Type of the custom attribute, DEVICE or USER.
id ID for the custome attribute.
Sample Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/attributes/
definitions/2
Sample Responses
{
"resultCount": 1,
"totalCount": 1,
"messages": [
{
Company Confidential
256
"localizedMessage": "Attribute definitions successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.get.definitions.success",
"type": "Info"
}
],
"results": {
"modifiedAt": 1462571401000,
"createdAt": 1462571401000,
"description": "this space for rent",
"name": "stringAttr1",
"dataType": "STRING",
"status": "ACTIVE",
"type": "USER",
"id": 2
}
}
Company Confidential
257
Create custom attribute definition
This call creates a custom attribute definition.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Settings and Services Management
Role Description: Manage custom attributes
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/attributes/definitions
Company Confidential
258
Request parameters
Response fields
Field Description
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results ID of the newly created custom attribute.
Sample Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data '{
"description": "still just testing",
"name": "testAttr2",
Company Confidential
259
"dataType": "long",
"type": "device"
}' -XPOST 'https://<mobileironcore>/api/v2/attributes/definitions?adminDeviceSpaceId=1'
Sample Responses
{
"messages": [
{
"localizedMessage": "Attribute definition created successfully.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.create.definition.success",
"type": "Info"
}
],
"results": 23
}
Company Confidential
260
Update custom attribute definition
This call updates a custom attribute definition. You can update the description and status fields.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Settings and Services Management
Role Description: Manage custom attributes
Finding this role in MobileIron Core
HTTP method
PUT
Request URI
api/v2/attributes/definitions/{id}
Company Confidential
261
Request parameters
Response fields
Field Description
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
Sample Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data '{
"description": "new description"
}' -XPUT 'https://<mobileironcore>/api/v2/attributes/definitions/2?adminDeviceSpaceId=1'
Sample Responses
{
"messages": [
{
"localizedMessage": "Attribute definition updated successfully.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.update.definition.success",
"type": "Info"
}
]
}
Company Confidential
262
Get custom attributes for a device
This call gets all custom attribute definitions for the device corresponding to the value you send with the uuid
parameter.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/attributes/device/{uuid}
Company Confidential
263
Request parameters
Response fields
Field Description
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results Container for results
custom attribute name Name of custom value attribute and corresponding value.
... ...
Sample Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/attributes/device/
5f1db255-8d3d-4943-8bab-d556cacce855?adminDeviceSpaceId=1'
Sample Responses
{
"messages": [
{
"localizedMessage": "Attribute values successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.get.values.success",
"type": "Info"
}
],
"results": {
"devBool1": "true",
"devLong1": "42"
}
}
Company Confidential
264
Set device custom attributes
This call sets device custom attributes.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Device Management
Role Description: Edit custom device attribute values
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/attributes/device
Company Confidential
265
Request parameters
Response fields
Field Description
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results Container for results.
deleteCount How many values deleted as a result of this call.
assignCount How many values assigned as a result of this call.
invalidUuids List of invalid uuids.
Sample Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data '{
"uuids": ["136da21e-9e95-4ea2-8b51-343297c58d8b", "ada0e9cd-ca15-49f6-98a8-3d304b83809f"],
"attributes": { "flag1": "true", "flag2" : "false" }
}' -XPOST 'https://<mobileironcore>/api/v2/attributes/device?adminDeviceSpaceId=1'
Sample Responses
{
"messages": [
{
"localizedMessage": "Attribute values set successfully.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.set.values.success",
Company Confidential
266
"type": "Info"
}
],
"results": {
"deleteCount": 0,
"assignCount": 4,
"invalidUuids": [ ]
}
}
Company Confidential
267
Get custom attributes for a user
This call gets all custom attribute definitions for the user corresponding to the value you send with the uuid
parameter.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: User Management
Role Description: View user
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/attributes/user/{uuid}
Company Confidential
268
Request parameters
Response fields
Field Description
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results Container for results
custom attribute name Name of custom value attribute and corresponding value.
... ...
Sample Request
curl -k -sS -u <userName>:<password> -XGET 'https://<mobileironcore>/api/v2/attributes/user/a5eb8acb-
5fad-4b59-b2bf-b98d04fc61c5?adminDeviceSpaceId=1'
Sample Responses
{
"messages": [
{
"localizedMessage": "Attribute values successfully fetched.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.get.values.success",
"type": "Info"
}
],
"results": {
"userString1": "Woof!",
"userLong1": "42"
}
}
Company Confidential
269
Set user custom attributes
This call sets user custom attributes.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: User Management
Role Description: Edit custom user attribute values
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/attributes/user
Company Confidential
270
Request parameters
Response fields
Field Description
messages Container for messages.
localizedMessage Localized message with parameters resolved.
messageKey Message key.
type Message type.
results Container for results.
deleteCount How many values deleted as a result of this call.
assignCount How many values assigned as a result of this call.
invalidUuids List of invalid uuids.
Sample Request
curl -k -sS -u <userName>:<password> -H "Content-Type: application/json" --data '{
"uuids": ["c9d3a454-c1b9-4922-a381-932823d0c0e5", "28df8c43-20e0-44f3-9771-d526cc854e33",
"a5eb8acb-5fad-4b59-b2bf-b98d04fc61c5"],
"attributes": { "userString1": "Woof!", "userLong1" : "" }
}' -XPOST 'https://<mobileironcore>/api/v2/attributes/user?adminDeviceSpaceId=1'
Sample Responses
{
"messages": [
{
Company Confidential
271
"localizedMessage": "Attribute values set successfully.",
"messageKey": "com.mobileiron.vsp.messages.custom.attributes.set.values.success",
"type": "Info"
}
],
"results": {
"deleteCount": 3,
"assignCount": 3,
"invalidUuids": [ ]
}
}
Company Confidential
272
Chapter 13
Certificate Management
Company Confidential
273
Export certificate details to a CSV file
Export Certificate Details to CSV: Certificate details export involves several API calls:
• Initiate the processing of certificate details to be exported:
GET api/v2/certificates/search_export
• Get status of the export process:
GET api/v2/certificates/search_export_status
• Download the CSV file:
GET api/v2/certificates/search_download_csv
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Roles
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
Company Confidential
274
Required Roles
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/certificates/search_export
Request parameters
Company Confidential
275
Parameter Description Sample Value
certificateStatus Required ACTIVE
Parameter Type: Request body
Data Type: String
Status of the target certificate.
Can be one of:
• ACTIVE
• EXPIRED
• PENDING_REVOCATION
• MANUAL_REVOCATION_REQUIRED
• REVOKED
• SENT
• WAITING_SEND
• GENERATING
• HIGH_GENERATING
userId Parameter Type: Request body
Data Type: String
User ID associated with the target certificates.
deviceUUID Parameter Type: Request body 5f1db255-8d3d-4943-
Data Type: String 8bab-d556cacce855
Device uuid associated with the target certificates.
expiresAfter Parameter Type: Request body The values are expressed
Data Type: Date milliseconds since Unix
epoch time.
Gets certificates that are going to expire after this date.
Example:
1785823788000 is epoch
time for Tue, 04
expiresBefore Parameter Type: Request body The values are expressed
Data Type: Date milliseconds since Unix
epoch time.
Gets certificates that are going to expire before this date.
Example:
1785823788000 is epoch
time for Tue, 04
Company Confidential
276
Response fields
Field Description
exportStatusPollUrl URL to get status of the search export.
csvDownloadUrl URL to download the CSV file.
messages Container for messages.
type Message type.
messageKey Message key.
localizedMessage Localized message with parameters resolved.
messageParameters
Sample Request
curl -k -sS -u <userName>:<password> -XPOST -H "Content-Type: application/json" -d '{"ceSet-
tingName":"LocalCE","certificateStatus":"ACTIVE"}' 'https://<mobileironcore>/api/v2/certificates/
search_export?adminDeviceSpaceId=1'
Sample Responses
Success:
{
"results": {
"exportStatusPollUrl": "/api/v2/certificates/search_export_status",
"csvDownloadUrl": "/api/v2/certificates/search_download_csv"
},
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.rest.controllers.CertificateManagementController.Mes-
sages.PROCESS_INITIATED",
"localizedMessage": "Certificate details export process initiated successfully",
"messageParameters": [ ]
}
]
}
Company Confidential
277
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Roles
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
Company Confidential
278
HTTP method
GET
Request URI
api/v2/certificates/search_export_status
Request parameters
Response fields
Field Description
Results Container for results.
isRunning Boolean value that indicates whether the audit logs processing is
progressing or not.
exportStatusMsg Audit Logs processing status/progress message.
"success" - If the processing is completed successfully.
"fail" - If the processing is failed due to server error.
csvFileName Path to the CSV file.
isExportStatusAvailable Is the export progress status available.
Sample Request
curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/certificates/
search_export_status?adminDeviceSpaceId=1
Sample Response
{
"results":{"isRunning":false,
"exportStatusMsg":"success",
"csvFileName":"/mi/tomcat/temp/certificates-5007291726810485269.csv",
"isExportStatusAvailable":true,"initiatedAt":1461110928255}
}
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Company Confidential
279
Required Roles
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
HTTP method
GET
Company Confidential
280
Request URI
api/v2/certificates/search_download_csv
Request parameters
Sample Request
curl -o output.csv -k -sS -u <userName>:<password> -XGET -H "Content-Type: text/csv" 'https://
<mobileironcore>/api/v2/certificates/search_download_csv?adminDeviceSpaceId=1'
Company Confidential
281
Search/Retrieve certificate details
This call provides returns a list of certificate details.
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Roles
Category: Logs and Events Management
Role Description: View logs and events
Finding this role in MobileIron Core
Company Confidential
282
Required Roles
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/certificates/search
Request parameters
Company Confidential
283
Parameter Description Sample Value
certificateStatus Parameter Type: Request body ACTIVE
Data Type: String
Status of the target certificate.
Can be one of:
• ACTIVE
• EXPIRED
• PENDING_REVOCATION
• MANUAL_REVOCATION_REQUIRED
• REVOKED
• SENT
• WAITING_SEND
• GENERATING
• HIGH_GENERATING
userId Parameter Type: Request body
Data Type: String
User ID associated with the target certificates.
deviceUUID Parameter Type: Request body 5f1db255-8d3d-4943-
Data Type: String 8bab-d556cacce855
Device uuid associated with the target certificates.
expiresAfter Parameter Type: Request body The values are expressed
Data Type: Date milliseconds since Unix
epoch time.
Gets certificates that are going to expire after this date.
Example:
1785823788000 is epoch
time for Tue, 04
expiresBefore Parameter Type: Request body The values are expressed
Data Type: Date milliseconds since Unix
epoch time.
Gets certificates that are going to expire before this date.
Example:
1785823788000 is epoch
time for Tue, 04
Company Confidential
284
Response fields
Field Description
results An array of certificate objects.
id
serialNumber
type
trash
expiredAt
createdAt
userId
deviceId
deviceUuid
localCAId
ceSettingName
certificateStatus
ceId
consumerAppSettings
messages Container for messages.
type Message type.
messageKey Message key.
localizedMessage Localized message with parameters resolved.
messageParameters
resultCount The number of entries that are being returned.
Request
curl -k -sS -u userName>:<password> -XPOST -H "Content-Type: application/json" -d '{"adminDeviceSpa-
ceId":1",ceSettingName":"LocalCE","certificateStatus":"ACTIVE"}' 'https://<mobileironcore>/api/v2/
certificates/search'
Response
{
"results": [
{
"id": 2,
"serialNumber": 102,
"type": "SCEPSetting",
"trash": true,
"expiredAt": "2017-04-18",
"createdAt": "2016-04-18",
"userId": 9002,
"deviceId": 1,
"deviceUUid": null,
Company Confidential
285
"localCAId": 3,
"ceSettingName": "LocalCE",
"certificateStatus": "ACTIVE",
"ceId": 8,
"consumerAppSettings": [
8
]
},
...
],
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.rest.controllers.CertificateManagementController.Mes-
sages.SUCCESS",
"localizedMessage": "Certificates successfully retrieved",
"messageParameters": [ ]
}
],
"resultCount": 6
}
Company Confidential
286
Managing user certificates
You use the following calls to:
• Upload user-provided certificates
• Delete user-provided certificates
• Get list of user provided certificate enrollment ID information with associated certificate details
• Get list of all user provided certificate enrollment IDs' information with associated certificate details.
Note: User-provided certificates can only contain one private key. Uploaded PKCS#12 files containing more than
one private key are not supported and will not work. You must repackage these certificates so the PKCS#12 file
contains only one private key used to generate the certificate for the intended use.
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: User Management
Role Description: Manage user
Company Confidential
287
Required Role
Finding this role in MobileIron Core
HTTP method
POST
Request URI
api/v2/configuration/CE/USER_PROVIDED/{CEid}/users/{username}
Request parameters
Company Confidential
288
Parameter Description Sample Value
file Required //Users/username/
Parameter Type: Request payload Downloads/Certs/
vijayb1-smime.p12
Data Type: Multi-part file
The location of the certificate p12 file
password Required Mipwrd
Parameter Type: Query path
Data Type: String
Form-encoded string
Response fields
Field Description
messages Container for messages.
type Message type.
messageKey Message key.
localizedMessage Localized message with parameters resolved.
messageParameters
Sample Request
curl -sS -v -k -u <userName>:<password> 'https://<mobileironcore>/api/v2/configuration/CE/USER_PRO-
VIDED/9/users/testuser1000' -X POST -F file=@//Users/username/Downloads/Certs/vijayb1-smime.p12 -F
password='password'
Sample Response
{
"messages":[
{
"type":"Info",
"messageKey":"com.mobileiron.vsp.rest.controllers.UserProvidedCertificatesControl-
lerV2.Messages.SUCCESS_UPLOAD",
"localizedMessage":"Certificate successfully uploaded.",
"messageParameters":[]
}
]
}
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Company Confidential
289
Required Role
Category: User Management
Role Description: Manage user
Finding this role in MobileIron Core
HTTP method
DELETE
Request URI
api/v2/configuration/CE/USER_PROVIDED/{CEid}/{username}
Request parameters
Company Confidential
290
Response fields
Field Description
type Message type.
messageKey Message key.
localizedMessage Localized message with parameters resolved.
messageParameters
Sample Request
curl -sS -v -k -u <userName>:<password> 'https://<mobileironcore>/api/v2/configuration/CE/USER_PRO-
VIDED/9/users/testuser1000' -X DELETE
Sample Response
{
"messages":[
{
"type":"Info",
"messageKey":"com.mobileiron.vsp.rest.controllers.UserProvidedCertificatesControl-
lerV2.Messages.SUCCESS_DELETE_CERTIFICATE",
"localizedMessage":"Certificate deleted successfully." ,
"messageParameters":[]
}
]
}
Required Roles
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: User Management
Role Description: Manage user
Company Confidential
291
Required Role
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/configuration/CE/USER_PROVIDED/{CEid}/{username}
Request parameters
Company Confidential
292
Response fields
Field Description
results Container for results. Results are an array of the fields shown in the
sample response below.
messages Container for messages.
type Message type.
messageKey Message key.
localizedMessage Localized message with parameters resolved.
messageParameters
Sample Request
curl –sS –v –k –u <userName>:<password> 'https://<mobileironcore>/api/v2/configuration/CE/USER_PRO-
VIDED/9/users/testuser' –X GET
Sample Response
{
"results":
{
"version":"1",
"serialNumber":"1",
"signatureAlgorithm":"SHA1withRSA",
"issuer":"EMAILADDRESS=vijayb@auto19.mobileiron.com,
CN=VB,
OU=QA,
O=MI,
L=Hyd,
ST=AP,
C=IN",
"notBefore":1407849663000,
"notAfter":1723209663000,
"subject":"EMAILADDRESS=vijayb1-smime@auto19.mobileiron.com,
CN=VB1,
L=Hyd,
ST=AP,
C=IN",
"subjectAltNames":null,
"cert":null,
"certType":null,
"alias":null,
"commonName":"VB1",
"iPhoneUID":null,
"iPhoneDevelopmentAPNSCert":false,
"identity":false,
"validTimeLine":false
},
"messages": [
{
"type":"Info",
"messageKey":"com.mobileiron.vsp.rest.controllers.UserProvidedCertificatesControllerV2.Mes-
sages.SUCCESS_GET_CERTIFICATE",
"localizedMessage":"Certificate successfully retrieved.",
"messageParameters":[]
}]
}
Company Confidential
293
Get list of all user provided certificate enrollment IDs' information with associated
certificate details.
This call gets a list of all user provided certificate enrollment IDs information with associated certificate details.
Required Roles
You need to have access to the User Portal for this call.
HTTP method
GET
Request URI
api/v2/configuration/CE/USER_PROVIDED/all/users/{UserID}
Request parameters
Company Confidential
294
Response fields
Field Description
results Container for results. Results are an array of the fields shown in the
sample response below.
messages Container for messages.
type Message type.
messageKey Message key.
localizedMessage Localized message with parameters resolved.
messageParameters
Sample Request
curl -sS -v -k -u <userName>:<password> 'https://<mobileironcore>/api/v2/configuration/CE/USER_PRO-
VIDED/all/users/testuser' -X GET
Sample Response
{
"results": [
{
"ceId": 11,
"certificateId": null,
"requirePassword": true,
"displayName": "UP1",
"certificateExpirationDate": null,
"certificateUploadedDate": null
}
],
"messages": [
{
"type": "Info",
"messageKey":
"com.mobileiron.vsp.rest.controllers.UserProvidedCertificatesControllerV2.Messages.SUCCESS_GET_CE_DET
AILS",
"localizedMessage": "User provided certificate enrollment details successfully retrieved.",
"messageParameters": [
]
}
]
}
Company Confidential
295
Company Confidential
296
Chapter 14
Feature Usage
Feature usage reports contain global and per device premium feature usage. There is no personally identifiable
information in the reports. Devices and users are identified only by their internal UUIDs. Feature usage reports run
automatically every Monday morning at 00:00:00 GMT. MobileIron Core keeps the last 25 weekly reports
available for download.
Company Confidential
297
Get API feature usage history
This API returns the list of all available report data file names. These file names can be used in the datafile
parameter for feature usage API. The result is reverse sorted by job execution time (latest job first).
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Other Roles
Role Description: View device feature usage data
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/featureusage_history
Company Confidential
298
Request parameters
Response fields
Field Description
totalCount The total number of entries that the query matched.
resultCount The number of entries that are being returned.
hasMore Indicates that there are more entries available.
results Results container.
dataFileName The name of the feature usage data file.
dataFileDate The timestamp of the feature usage data file.
Request
curl -X GET -u <userName>:<password> "https://<mobileironcore>/api/v2/featureusage_history?adminDe-
viceSpaceId=1"
Response
{
"totalCount": 1,
"resultCount": 1,
"hasMore": false,
"results": [
{
"dataFileName": "manual220.auto.mobileiron.com_20160807000000",
"dataFileDate": "2016-08-07 00:00:00"
}
]
}
Company Confidential
299
Get API feature usage
This API returns the contents of the specified feature usage data file. If no data file is specified, the call returns the
latest file contents.
Required Role
See “Authentication” on page 19 for complete details on ensuring that the credentials you use for basic
authentication belong to a user with the necessary role for this API call.
Required Role
Category: Other Roles
Role Description: View device feature usage data
Finding this role in MobileIron Core
HTTP method
GET
Request URI
api/v2/featureusage
Company Confidential
300
Request parameters
Response fields
Field Description
Core Information Fields
coreFQDN The external Core FQDN.
coreVersion The Core version at the time the report was created.
coreLicenseKey This is a placeholder field to be used at a later time.
reportRun The UTC timestamp indicating when the report was created.
featuresGlobal Fields
userPortalCertAuth Self service portal certificate authentication is enabled.
helpIos Help@Work for iOS is enabled.
helpAndroid Help@Work for Android is enabled.
featuresDevices Fields
deviceUUID The internal unique identifier for the device.
userUUID The internal unique identifier for the user.
registeredAt The UTC timestamp of when the device was registered.
platform The operating system of the device.
Company Confidential
301
Field Description
featureAppConnect Indicates if one or more AppConnect configurations are associated with
the device.
featureDocs Indicates if one or more Docs@Work configurations are associated with
the device.
featureDocsAC Indicates if one or more Exchange configurations containing a Sentry
with attachment control enabled are associated with the device.
featureWeb Indicates if one or more MobileIron Web@Work configurations are
associated with the device.
featureTunnel Indicates if one or more VPN configurations containing a MobileIron
Tunnel connection type are associated with the device.
featureIdentity Indicates if one or more Single Sign-On Account configurations are
associated with the device.
Requests
curl -X GET -u <userName>:<password> "https://<mobileironcore>/api/v2/featureusage?adminDeviceSpa-
ceId=1"
Company Confidential
302
"featureTunnel": "true",
"featureIdentity": "false"
},
....
{
"deviceUUID": "7152a6bd-fc0e-4b42-85f7-2fcfee07f69a",
"userUUID": "feb58faa-e52c-4e80-a9bf-5b11d9d15b6d",
"registeredAt": "2016-08-06 06:08:01",
"platform": "iOS",
"featureAppConnect": "false",
"featureDocs": "true",
"featureDocsAC": "false",
"featureWeb": "false",
"featureTunnel": "false",
"featureIdentity": "false"
}
]
}
Company Confidential
303
Appendix A
The fields parameter specifies the fields returned by an API call. The following list contains the values you can
include with the “fields” parameter when performing device searches:
• android.afw_capable
• android.attestation
• common.background_status
• common.battery_level
• common.client_name
• common.client_version
• common.clientId
• common.comment
• common.compliant
• common.creation_date
• common.current_phone_number
• common.data_protection_enabled
• common.data_protection_reasons
• common.device_admin_enabled
• common.device_is_compromised
• common.device_space_name
• common.ethernet_mac
• common.home_country_name
• common.home_operator_name
• common.id
• common.imei
• common.imsi
• common.ip_address
• common.language
• common.last_connected_at
• common.locale
• common.manufacturer
• common.mdm_managed
• common.memory_capacity
Company Confidential
304
• common.memory_free
• common.miclient_last_connected_at
• common.model
• common.noncompliance_reasons
• common.os_version
• common.owner
• common.platform
• common.platform_name
• common.quarantined
• common.quarantined_reasons
• common.registration_date
• common.status
• common.storage_capacity
• common.storage_capacity
• common.storage_free
• common.uuid
• ios.DataRoamingEnabled
• ios.DeviceName
• ios.iPhone%20ICCID(%20 is an URL encoded space)
• ios.iPhone%20MAC_ADDRESS_EN0 (%20 is an URL encoded space)
• ios.iPhone%20UDID (%20 is an URL encoded space)
• ios.iPhone%20VERSION(%20 is an URL encoded space)
• ios.wakeup_status
• user.display_name
• user.email_address
• user.user_id
Company Confidential
305
Appendix B
This chapter describes the query operators and search fields that you can use with the query parameter.
Company Confidential
306
Valid Query Operators
The query parameter supports the following operators:
Company Confidential
307
Valid Search Fields
The device search fields include:
• those that are common to all
• Android-only
• iOS-only
• Windows-Phone-only
• user-related, including LDAP.
Company Confidential
308
Field Data Type Sample Data
device_is_compromised boolean
device_space_ids array of long
values
device_space_name string
device_space_path string
display_size string 1184X768
768x1280
eas_last_sync_time date
ethernet_mac string 10DDB1F23C06
home_country_code string FR
home_country_name string France
home_operator_name string France Telecom
home_phone_number string PDA
id long 5
imei string
imsi string
ip_address string 169.254.80.80, fe80::7091:fe10:7d67:ed67
172.16.2.123
language string English
language_id long
lang_country_id long 5
last_connected_at date Internal business logic is used to determine
which timestamp gets indexed.
locale string en-US
es-US
location_last_captured_at date 1383608236206
location geo_point 37.396003
-122.056255
manufacturer string Apple
memory_capacity long 832.44M
3220754432
memory_free long 326.89M
1802539008
mdm_managed boolean t
mdm_tos_accepted boolean true
mdm_to_accepted_date date 1418672009316
model string iPad, 4th gen
model_name string Virtual Machine
Company Confidential
309
Field Data Type Sample Data
os_version string iPhone OS 6.1.3 (10B329)
17
8.0.10327.77
6.1.3
owner string f
pending_device_passcode string 123456
pending_device_passcode_expiration_ti date
me
platform_name string iOS 7.1
platform string I
processor_architecture string ARM
armeabi-v7a
5
Intel64 Family 6 Model 58 Stepping 9
quarantined_action long
quarantined_reasons array of 32768
strings
quarantined boolean 32768
registration_date date 1390244908000
registration_imsi string 310260000000000
registration_uuid string c36f759717140acf
AB7C0056-C1BE-4096-B630-
A54376DEDA4F
retired boolean f
roaming boolean f
security_state string Ok
1
status string a
storage_capacity long 6627926015.9999999463129088
storage_free long 5725888511.9999999463129088
uuid string c5e6872e-3a4b-4fbd-bb2b-...
wifi_mac_address string 00:15:5D:9A:FC:6B
A88808C9332C
40b0fac53dbd
Company Confidential
310
Field Data Type Sample Data
admin_activated boolean TRUE
attestation string true
afw_capable boolean true
brand string google
c2dmToken string APA91bF0OvND3ubyu...
codename string REL
device string mako
device_roaming_flag string off
gcmToken boolean non null=true, null=false
incremental string 573038
knox_version string
manufacturer_os_version string 4.3
mdm_enabled boolean TRUE
media_card_capacity long 5803.04M
media_card_free long 5562.67M
multi_mdm boolean FALSE
os_build_number string JDQ39
os_update_status string OK
platform_flags string 0x3
samsung_dm string
secure_apps_encryption_enabled boolean "Ready"
secure_apps_encryption_mode string
secure_apps_enabled boolean "not enabled"
security_detail string "0"
usb_debugging boolean off
Company Confidential
311
Field Data Type Sample Data
BuildVersion string 5.1
CarrierSettingsVersion string 11.0
Current MCC string 310
Current MNC string 410
DataRoamingEnabled boolean false
data_protection string
DeviceName string Rui's iPad
forceEncryptedBackup boolean TRUE
HardwareEncryptionCaps long 3
help_desk_enabled boolean
iCloud Backup Is Enabled boolean true
iOSBackgroundStatus string 0
ip_address string 172.16.2.123
iPhone ICCID string
iPhone PRODUCT string iPad3,4
iPhone UDID string b37aea9c3883e5a0ddfadab5d82d7ea2d4...
iPhone VERSION string 10B329
iPhone MAC_ADDRESS_EN0 string 4CECE5D3A198
iPhone UserLongName string John Smith
iPhone UserShortName string John
iPhone UserID string BF3DDF91-3CB7-40A5-B2F4-
2F0E77167113
IsDeviceLocatorServiceEnable boolean true
d
IsDoNotDisturbInEffect boolean true
iTunes Store Account Hash string EPMtjvzUBKKvhUJA9VOyvrQXkJI=
iTunesStoreAccountIsActive boolean false
it_policy_result long 1
Last iCloud Backup Date string 2014-07-25 11:58:38 PM
ModemFirmwareVersion string 04.11.08
ProductName string iPad3,4
PasscodePresent boolean FALSE
PasscodeIsCompliantWithProfi boolean TRUE
les
PasscodeIsCompliant boolean TRUE
Personal Hotspot Enabled boolean false
security_reason_code string 0x40000000
SerialNumber string DMQL3K0RF182
Company Confidential
312
Field Data Type Sample Data
Supervised boolean FALSE
signal_strength long 31
SIM MCC string 310
SIM MNC string 410
Subscriber Carrier Network string AT&T
Voice Roaming Enabled boolean N/A
false
true
vpn_ip_address string
Wakeup Status integer 0
IsDEPEnrolledDevice boolean true
Company Confidential
313
User-Related Device Search Fields
The set of user-related device search fields include:
• local user search fields
• LDAP search fields
Company Confidential
314
Field Data Type
custom1 string
custom2 string
custom3 string
custom4 string
<dynamically created custom user-attribute field name #1> string
<dynamically created custom user-attribute field name #2> string
<dynamically created custom user-attribute field name #3> string
<dynamically created custom user-attribute field name #4> string
<dynamically created user-attribute field names> array of strings
Value Enumerations
Value
Android
iOS
OS X
Windows
Windows Phone
Value
Android
Android 1.6
Android 2.0
Android 2.0.1
Company Confidential
315
Value
Android 2.1
Android 2.2
Android 2.3
Android 3.0
Android 3.1
Android 4.0
Android 4.0.1
Android 4.0.2
Android 4.0.4
Android 4.1
Android 4.2
Android 4.3
Android 4.4
AppleTV
AppleTV 7.0
BlackBerry
iOS
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 7.0
iOS 7.1
OS X
OS X 10.7
OS X 10.8
OS X 10.9
Web App Platform
Windows
Windows 10
Windows 8.1
Windows Phone
Company Confidential
316
Value
Windows Phone 8
Windows Phone 8.1
Name Meaning
COMPANY Company-owned device
EMPLOYE Employee-owned (personal) device
E
Each of the fields that use these values have an associated field to determine whether any reasons were set or not.
For example, if a device is blocked, then the "blocked_reasons" field has a list of reasons, and the "blocked" field is
'true'.
Company Confidential
317
Enum Name Meaning Hexadecimal Value
ALLOWED_APP_CONTROL Allowed app control policy is out of compliance 0x004000
APP_CONTROL App control policy is out of compliance 0x000040
ATTESTATION_FAILED Attestation failed. 0x010000
AUTO_BLOCK Device is not registered 0x000100
COMPROMISED Device state is compromised 0x000001
DATA_PROTECTION Data Protection is not enabled 0x000008
DEVICE_ADMIN_DEACTIV Device administrator is deactivated 0x000800
E
DEVICE_OUT_OF_CONTA Phone is out of contact 0x000020
CT
DISALLOWED_APP_CONT Disallowed app control policy is out of 0x001000
ROL compliance
EXCHANGE Exchange-reported 0x000400
HW_VERSION Hardware revision is not allowed 0x000004
LOGGED_OUT User logged out 0x008000
MANUAL Device is manually blocked 0x000200
OS_VERSION OS version is less than the supported OS 0x000002
version
PER_MAILBOX_LIMIT Device exceeds per mailbox limit 0x000080
POLICY_OUT_OF_DATE Policy is out of date 0x000010
REQUIRED_APP_CONTRO Required app control policy is out of 0x002000
L compliance
UNKNOWN Unknown reason 0x400000
Company Confidential
318