Nothing Special   »   [go: up one dir, main page]

API Guide For Mobile Iron

Download as pdf or txt
Download as pdf or txt
You are on page 1of 318

MobileIron V2 API Guide

November 2, 2016

Proprietary and Confidential


Do Not Distribute
©2016 MobileIron, Inc. All Rights Reserved.

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

Chapter 3 User Management....................................................................... 25


Find authorized users ........................................................................... 26
Required Role ..................................................................................... 26
HTTP method ...................................................................................... 26
Request URI ....................................................................................... 26
Request parameters ............................................................................ 27
Response fields ................................................................................... 28
Sample request and response ............................................................... 28
Request ..................................................................................................... 28
Response ................................................................................................... 28

Chapter 4 Admin Management .................................................................... 30


Find admin users ................................................................................. 31
Required Role ..................................................................................... 31
HTTP method ...................................................................................... 31
Request URI ....................................................................................... 32
Request parameters ............................................................................ 32
Response fields ................................................................................... 33
Sample request and response ............................................................... 33
Request ..................................................................................................... 33
Response ................................................................................................... 33

Find ldap entitites ................................................................................ 34


Required Role ..................................................................................... 34
HTTP method ...................................................................................... 34
Request URI ....................................................................................... 34

Company Confidential
3
Request parameters ............................................................................ 35
Response fields ................................................................................... 36
Sample request and response ............................................................... 36
Request ..................................................................................................... 36
Response ................................................................................................... 36

Get admin user summary ..................................................................... 37


Required Role ..................................................................................... 37
HTTP method ..................................................................................... 37
Request URI ....................................................................................... 38
Request parameters ............................................................................ 38
Response fields ................................................................................... 39
Sample request and response ............................................................... 39
Request ..................................................................................................... 39
Response ................................................................................................... 39

Get ldap entity summary ...................................................................... 42


Required Role ..................................................................................... 42
HTTP method ..................................................................................... 42
Request URI ....................................................................................... 42
Request parameters ............................................................................ 43
Response fields ................................................................................... 44
Sample request and response ............................................................... 44
Request ..................................................................................................... 44
Response ................................................................................................... 44

Get a list of admin roles ....................................................................... 46


Required Role ..................................................................................... 46
HTTP method ..................................................................................... 46
Request URI ....................................................................................... 46
Request parameters ............................................................................ 47
Response fields ................................................................................... 47
Sample request and response ............................................................... 47
Request ..................................................................................................... 47
Response ................................................................................................... 47

Chapter 5 Admin Actions Management ......................................................... 54


Get Action Types ................................................................................. 55
Required Role ..................................................................................... 55
HTTP method ..................................................................................... 55
Request URI ....................................................................................... 55
Request parameters ........................................................................... 56
Response fields ................................................................................... 56
Sample request and response ............................................................... 56
Request ..................................................................................................... 56
Response ................................................................................................... 56

Chapter 6 App Inventory Management ......................................................... 59


Get list of installed apps ....................................................................... 60
Required Role ..................................................................................... 60
HTTP method ..................................................................................... 60

Company Confidential
4
Request URI ....................................................................................... 60
Request parameters ........................................................................... 61
Response fields ................................................................................... 62
Sample request and response ............................................................... 62
Request ..................................................................................................... 62
Response ................................................................................................... 62

Get installed app details of a device ....................................................... 64


Required Role ..................................................................................... 64
HTTP method ..................................................................................... 64
Request URI ....................................................................................... 64
Request parameters ........................................................................... 65
Response fields ................................................................................... 65
Sample request and response ............................................................... 66
Request ..................................................................................................... 66
Response ................................................................................................... 66

Get devices that have a specific app installed .......................................... 77


Required Role ..................................................................................... 77
HTTP method ..................................................................................... 77
Request URI ....................................................................................... 77
Request parameters ........................................................................... 78
Response fields ................................................................................... 80
Sample request and response ............................................................... 80
Request ..................................................................................................... 80
Response ................................................................................................... 80

Chapter 7 App Store Management ............................................................... 82


Get a list of all available apps ............................................................... 83
Required Role ..................................................................................... 83
HTTP method ..................................................................................... 83
Request URI ....................................................................................... 83
Request parameters ........................................................................... 84
Response fields ................................................................................... 84
Sample request and responses ............................................................. 85
Request ..................................................................................................... 85
Response ................................................................................................... 85

Get app data by id .............................................................................. 87


Required Role ..................................................................................... 87
HTTP method ..................................................................................... 87
Request URI ....................................................................................... 87
Request parameters ........................................................................... 88
iOS Response fields ............................................................................. 88
Android Response fields ....................................................................... 91
Sample request and responses ............................................................. 92
Request ..................................................................................................... 92
iOS Response ............................................................................................. 93
Android response ................................................................................ 95
Search Apple iTunes App Store by name/description ................................ 97
Required Role ..................................................................................... 97

Company Confidential
5
HTTP method ..................................................................................... 97
Request URI ....................................................................................... 97
Request parameters ........................................................................... 98
Response fields ................................................................................... 98
Sample request and response ..............................................................100
Request ................................................................................................... 100
Response ................................................................................................. 100

Import iTunes app by track id ............................................................. 102


Required Role ....................................................................................102
HTTP method ....................................................................................102
Request URI ......................................................................................102
Request parameters ..........................................................................103
Response fields ..................................................................................103
Sample request and response ..............................................................105
Request ................................................................................................... 105
Response ................................................................................................. 105

Search Google Play by keyword .......................................................... 107


Required Role ....................................................................................107
HTTP method ....................................................................................107
Request URI ......................................................................................107
Request parameters ..........................................................................108
Response fields ..................................................................................108
Sample request and response ..............................................................109
Request ................................................................................................... 109
Response ................................................................................................. 109

Search for a Windows app .................................................................. 111


Required Role ....................................................................................111
HTTP method ....................................................................................111
Request URI ......................................................................................111
Request parameters ..........................................................................112
Response fields ..................................................................................112
Sample request and response ..............................................................113
Request ................................................................................................... 113
Response ................................................................................................. 113

Import a public Windows app .............................................................. 115


Required Role ....................................................................................115
HTTP method ....................................................................................115
Request URI ......................................................................................115
Request parameters ..........................................................................116
Response fields ..................................................................................116
Sample request and response ..............................................................118
Request ................................................................................................... 118
Response ................................................................................................. 118

Upload an in house app ...................................................................... 120


Required Role ....................................................................................120
HTTP method ....................................................................................120
Request URI ......................................................................................120

Company Confidential
6
Request parameters ..........................................................................121
Response fields ..................................................................................121
Sample request and response ..............................................................121
Request ................................................................................................... 121
Response ................................................................................................. 122

Add a web application ........................................................................ 123


Required Role ....................................................................................123
HTTP method ....................................................................................123
Request URI ......................................................................................123
Request parameters ...........................................................................124
Response fields ..................................................................................124
Sample request and response ..............................................................126
Request ................................................................................................... 126
Response ................................................................................................. 126

Update app data ............................................................................... 128


Required Role ....................................................................................128
HTTP method ....................................................................................128
Request URI ......................................................................................128
Request parameters ..........................................................................129
Common appData request parameters ......................................................... 130
iOS appData request parameters ................................................................. 131
Android appData request parameters ........................................................... 131
Response fields ..................................................................................132
Sample request and response ..............................................................132
Request ................................................................................................... 132
Response ................................................................................................. 132

Upload app screenshot ....................................................................... 133


Required Role ....................................................................................133
HTTP method ....................................................................................133
Request URI ......................................................................................133
Request parameters ..........................................................................134
Response fields ..................................................................................134
Sample request and response ..............................................................134
Request ................................................................................................... 134
Response ................................................................................................. 134

Get all app categories ........................................................................ 136


Required Role ....................................................................................136
HTTP method ....................................................................................136
Request URI ......................................................................................136
Request parameters ..........................................................................137
Response fields ..................................................................................137
Sample request and response ..............................................................137
Request ................................................................................................... 137
Response ................................................................................................. 137

Get information about a specific app category ....................................... 138


Required Role ....................................................................................138
HTTP method ....................................................................................138
Request URI ......................................................................................138

Company Confidential
7
Request parameters ..........................................................................139
Response fields ..................................................................................139
Sample request and response ..............................................................139
Request ................................................................................................... 139
Response ................................................................................................. 139

Create an app category ...................................................................... 141


Required Role ....................................................................................141
HTTP method ....................................................................................141
Request URI ......................................................................................141
Request parameters ..........................................................................142
Response fields ..................................................................................142
Sample request and response ..............................................................142
Request ................................................................................................... 142
Response ................................................................................................. 142

Edit an app category ......................................................................... 143


Required Role ....................................................................................143
HTTP method ....................................................................................143
Request URI ......................................................................................143
Request parameters ..........................................................................144
Response fields ..................................................................................144
Sample request and response ..............................................................144
Request ................................................................................................... 144
Response ................................................................................................. 144

Delete an app category ...................................................................... 145


Required Role ....................................................................................145
HTTP method ....................................................................................145
Request URI ......................................................................................145
Request parameters ..........................................................................146
Response fields ..................................................................................146
Sample request and response ..............................................................146
Request ................................................................................................... 146
Response ................................................................................................. 146

Get per app list of VPNs ..................................................................... 147


Required Role ....................................................................................147
HTTP method ....................................................................................147
Request URI ......................................................................................147
Request parameters ..........................................................................148
Response fields ..................................................................................148
Sample request and response ..............................................................148
Request ................................................................................................... 148
Response ................................................................................................. 148

Delete an app ................................................................................... 149


Required Role ....................................................................................149
HTTP method ....................................................................................149
Request URI ......................................................................................149
Request parameters ..........................................................................150
Response fields ..................................................................................150

Company Confidential
8
Sample request and response ..............................................................150
Request ................................................................................................... 150
Response ................................................................................................. 150

Send a message to an app ................................................................. 151


Required Role ....................................................................................151
HTTP method ....................................................................................151
Request URI ......................................................................................151
Request parameters ..........................................................................152
Response fields ..................................................................................152
Sample request and response ..............................................................153
Request ................................................................................................... 153
Response ................................................................................................. 153

Apply Apps To Labels ......................................................................... 154


Required Role ....................................................................................154
HTTP method ....................................................................................154
Request URI ......................................................................................154
Request parameters ..........................................................................155
Response fields ..................................................................................155
Sample request and response ..............................................................155
Request ................................................................................................... 155
Response ................................................................................................. 155

Remove Apps From Labels ................................................................. 156


Required Role ....................................................................................156
HTTP method ....................................................................................156
Request URI ......................................................................................156
Request parameters ..........................................................................157
Response fields ..................................................................................157
Sample request and response ..............................................................157
Request ................................................................................................... 157
Response ................................................................................................. 157

Chapter 8 Audit Logs Management ............................................................ 158


Export audit logs to a CSV file ............................................................. 159
Initiate the processing of audit logs to be exported .................................159
Required Role ........................................................................................... 159
HTTP method ............................................................................................ 159
Request URI ............................................................................................. 160
Request parameters ................................................................................. 160
Response fields ......................................................................................... 161
Sample Request ........................................................................................ 161
Sample Responses .................................................................................... 161
Get status of the export process ..........................................................161
Required Role ........................................................................................... 162
HTTP method ............................................................................................ 162
Request URI ............................................................................................. 162
Request parameters ................................................................................. 162
Response fields ......................................................................................... 163
Sample Request ........................................................................................ 163
Sample Responses .................................................................................... 163
Download the CSV file ........................................................................163
Required Role ........................................................................................... 163

Company Confidential
9
HTTP method ............................................................................................ 164
Request URI ............................................................................................. 164
Request parameters ................................................................................. 164
Response fields ......................................................................................... 165
Sample Request ........................................................................................ 165
Sample Response ...................................................................................... 165

Search/Retrieve audit logs ................................................................. 166


Required Role ....................................................................................166
HTTP method ....................................................................................166
Request URI ......................................................................................166
Request parameters ...........................................................................167
Response fields ..................................................................................168
Sample request and response ..............................................................168
Request ................................................................................................... 168
Response ................................................................................................. 168

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

Chapter 9 Device Management ................................................................. 176


Search for devices ............................................................................. 177
Required Role ....................................................................................177
HTTP method ....................................................................................177
Request URI ......................................................................................177
Request parameters ..........................................................................178
Response fields ..................................................................................180
Sample request and response ..............................................................182
Request ................................................................................................... 182
Response ................................................................................................. 182

Act on a device ................................................................................. 184


Required Role ....................................................................................184
HTTP method ....................................................................................184
Request URI ......................................................................................185
Request parameters ..........................................................................185
Response fields ..................................................................................186
Sample request and response ..............................................................186
Request ................................................................................................... 186
Response ................................................................................................. 186

Export devices .................................................................................. 187


Required Role ....................................................................................187
HTTP method ....................................................................................187
Request URI ......................................................................................187
Request parameters ...........................................................................188

Company Confidential
10
Response values ................................................................................189
Sample request and response ..............................................................189
Request ................................................................................................... 189
Response ................................................................................................. 189

Delete devices .................................................................................. 190


Required Role ....................................................................................190
HTTP method ....................................................................................190
Request URI ......................................................................................190
Request parameters ...........................................................................191
Response object ................................................................................191
Sample request and response ..............................................................191
Request ................................................................................................... 191
Response ................................................................................................. 192

Count devices ................................................................................... 193


Required Role ....................................................................................193
HTTP method ....................................................................................193
Request URI ......................................................................................193
Request parameters ...........................................................................194
Response fields ..................................................................................194
Sample request and response ..............................................................194
Request ................................................................................................... 194
Response ................................................................................................. 194

Test an advanced search query ........................................................... 195


Required Role ....................................................................................195
HTTP method ....................................................................................195
Request URI ......................................................................................195
Request parameters ...........................................................................196
Response fields ..................................................................................196
Sample request and response ..............................................................196
Request ................................................................................................... 196
Response ................................................................................................. 196

Get the list of searchable device fields ................................................. 197


Required Role ....................................................................................197
HTTP method ....................................................................................197
Request URI ......................................................................................197
Request parameters ...........................................................................198
Response fields ..................................................................................198
Sample request and response ..............................................................198
Request ................................................................................................... 198
Response ................................................................................................. 198

Get device details ............................................................................. 199


Required Role ....................................................................................199
HTTP method ....................................................................................199
Request URI ......................................................................................199
Request parameters ...........................................................................200
Response fields ..................................................................................200
Sample request and response ..............................................................200

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

Get app control compliance information for a device .............................. 204


Required Roles ..................................................................................204
HTTP method ....................................................................................204
Request URI ......................................................................................204
Request parameters ...........................................................................205
Response fields ..................................................................................205
Sample request and response ..............................................................205
Request ................................................................................................... 205
Response ................................................................................................. 205

Chapter 10 Device Spaces Management....................................................... 207


List device spaces ............................................................................. 208
Required Role ....................................................................................208
HTTP method ....................................................................................208
Request URI ......................................................................................208
Request parameters ...........................................................................209
Response fields ..................................................................................210
Sample request and response ..............................................................210
Request ................................................................................................... 210
Response ................................................................................................. 210

Get my device spaces ........................................................................ 211


Required Role ....................................................................................211
HTTP method ....................................................................................211
Request URI ......................................................................................211
Request parameters ...........................................................................212
Response fields ..................................................................................212
Sample request and response ..............................................................212
Request ................................................................................................... 212
Response ................................................................................................. 212

List fields for device space criteria ....................................................... 213


Required Role ....................................................................................213
HTTP method ....................................................................................213
Request URI ......................................................................................213
Request parameters ...........................................................................214
Sample request and response ..............................................................214
Request ................................................................................................... 214
Response ................................................................................................. 214

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

Delete a device space ........................................................................ 218


Required Role ....................................................................................218
HTTP method ....................................................................................218
Request URI ......................................................................................218
Request parameters ...........................................................................219
Response fields ..................................................................................219
Sample request and response ..............................................................219
Request ................................................................................................... 219
Response ................................................................................................. 219

Assign admins to device space ............................................................ 220


Required Role ....................................................................................220
HTTP method ....................................................................................220
Request URI ......................................................................................220
Request parameters ...........................................................................221
Response fields ..................................................................................222
Sample request and response ..............................................................222
Request ................................................................................................... 222
Response ................................................................................................. 222

Delete admins from device space ........................................................ 223


Required Role ....................................................................................223
HTTP method ....................................................................................223
Request URI ......................................................................................223
Request parameters ...........................................................................224
Response fields ..................................................................................224
Sample request and response ..............................................................225
Request ................................................................................................... 225
Response ................................................................................................. 225

Change device space priority .............................................................. 226


Required Role ....................................................................................226
HTTP method ....................................................................................226
Request URI ......................................................................................226
Request parameters ...........................................................................227
Response fields ..................................................................................227
Sample request and response ..............................................................227
Request ................................................................................................... 227
Response ................................................................................................. 227

Evaluate device spaces ...................................................................... 229


Required Role ....................................................................................229

Company Confidential
13
HTTP method ....................................................................................229
Request URI ......................................................................................229
Request parameters ...........................................................................230
Response fields ..................................................................................230
Sample request and response ..............................................................230
Request ................................................................................................... 230
Response ................................................................................................. 230

Chapter 11 Label Management ................................................................... 231


Get information on all labels ............................................................... 232
Required Role ....................................................................................232
HTTP method ....................................................................................232
Request URI ......................................................................................232
Request parameters ..........................................................................233
Response fields ..................................................................................233
Sample request and response ..............................................................234
Request ................................................................................................... 234
Response ................................................................................................. 234

Get label usage information ................................................................ 235


Required Role ....................................................................................235
HTTP method ....................................................................................235
Request URI ......................................................................................235
Request parameters ..........................................................................236
Response fields ..................................................................................236
Sample request and response ..............................................................236
Request ................................................................................................... 236
Response ................................................................................................. 236

Get information about a specific label .................................................. 238


Required Role ....................................................................................238
HTTP method ....................................................................................238
Request URI ......................................................................................238
Request parameters ..........................................................................239
Response fields ..................................................................................239
Sample request and response ..............................................................239
Request ................................................................................................... 240
Response ................................................................................................. 240

Add/Edit a label ................................................................................ 241


Required Role ....................................................................................241
HTTP method ....................................................................................241
Request URI ......................................................................................241
Request parameters ..........................................................................242
Response fields ..................................................................................242
Sample request and response ..............................................................243
Request ................................................................................................... 243
Response ................................................................................................. 243

Delete a label ................................................................................... 245


Required Role ....................................................................................245
HTTP method ....................................................................................245

Company Confidential
14
Request URI ......................................................................................245
Request parameters ..........................................................................246
Response ..........................................................................................246
Sample request and response ..............................................................246
Request ................................................................................................... 246
Response ................................................................................................. 246

Get list of applied/non-applied static labels for devices ........................... 247


Required Role ....................................................................................247
HTTP method ....................................................................................247
Request URI ......................................................................................247
Request parameters ..........................................................................248
Response fields ..................................................................................249
Sample request and response ..............................................................249
Request ................................................................................................... 249
Response ................................................................................................. 250

Chapter 12 Custom Attributes Management.................................................. 251


Get custom attribute definitions .......................................................... 252
Required Role ....................................................................................252
HTTP method ....................................................................................252
Request URI ......................................................................................252
Request parameters ..........................................................................253
Response fields ..................................................................................253
Sample Request .................................................................................254
Sample Responses .............................................................................254
Get custom attribute definition ............................................................ 255
Required Role ....................................................................................255
HTTP method ....................................................................................255
Request URI ......................................................................................255
Request parameters ..........................................................................256
Response fields ..................................................................................256
Sample Request .................................................................................256
Sample Responses .............................................................................256
Create custom attribute definition ....................................................... 258
Required Role ....................................................................................258
HTTP method ....................................................................................258
Request URI ......................................................................................258
Request parameters ..........................................................................259
Response fields ..................................................................................259
Sample Request .................................................................................259
Sample Responses .............................................................................260
Update custom attribute definition ....................................................... 261
Required Role ....................................................................................261
HTTP method ....................................................................................261
Request URI ......................................................................................261
Request parameters ..........................................................................262
Response fields ..................................................................................262

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

Search/Retrieve certificate details ....................................................... 282


Required Roles ..................................................................................282
HTTP method ....................................................................................283
Request URI ......................................................................................283
Request parameters ...........................................................................283
Response fields ..................................................................................285
Sample request and response ..............................................................285
Request ................................................................................................... 285
Response ................................................................................................. 285

Managing user certificates .................................................................. 287


Error checking and validation ...............................................................287
Upload user-provided certificate ...........................................................287
Required Roles .......................................................................................... 287
HTTP method ............................................................................................ 288
Request URI ............................................................................................. 288
Request parameters ................................................................................. 288
Response fields ......................................................................................... 289
Sample Request ........................................................................................ 289
Sample Response ...................................................................................... 289
Delete user-provided certificates ..........................................................289
Required Roles .......................................................................................... 289
HTTP method ............................................................................................ 290
Request URI ............................................................................................. 290
Request parameters ................................................................................. 290
Response fields ......................................................................................... 291
Sample Request ........................................................................................ 291
Sample Response ...................................................................................... 291
Get list of user provided certificate enrollment ID information with associated
certificate details ...............................................................................291
Required Roles .......................................................................................... 291
HTTP method ............................................................................................ 292
Request URI ............................................................................................. 292
Request parameters ................................................................................. 292
Response fields ......................................................................................... 293
Sample Request ........................................................................................ 293
Sample Response ...................................................................................... 293
Get list of all user provided certificate enrollment IDs' information with associated
certificate details. ..............................................................................294
Required Roles .......................................................................................... 294
HTTP method ............................................................................................ 294
Request URI ............................................................................................. 294
Request parameters ................................................................................. 294
Response fields ......................................................................................... 295
Sample Request ........................................................................................ 295
Sample Response ...................................................................................... 295

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

Get API feature usage ........................................................................ 300


Required Role ....................................................................................300
HTTP method ....................................................................................300
Request URI ......................................................................................300
Request parameters ..........................................................................301
Response fields ..................................................................................301
Sample requests and response ............................................................302
Requests .................................................................................................. 302
Response to first example .......................................................................... 302

Appendix A Valid fields Parameter Values .......................................................................................... 304


Appendix B Query Operators and Search Fields .................................................................................. 306
Valid Query Operators ....................................................................... 307
Valid Search Fields ............................................................................ 308
Common Device Search Fields .............................................................308
Android-Only Device Search Fields .......................................................310
iOS and OS X Device Search Fields .......................................................311
Windows Phone and Surface Device Search Fields ..................................313
User-Related Device Search Fields ........................................................314
Local User Device Search Fields .................................................................. 314
LDAP-User Device Search Fields .................................................................. 314
LDAP-Group Device Search Fields ............................................................... 315
Value Enumerations ...........................................................................315
Values for the "platform" Device Search Field ................................................ 315
Values for the "platform_name" Device Search Field ...................................... 315
Values for the "status" Device Search Field ................................................... 317
Values for the "owner" Device Search Field ................................................... 317
Array Value Enumerations ...................................................................317
Values for the "blocked_reasons", "noncompliance_reasons", and "quarantined_reasons"
Device Search Fields .................................................................................. 317

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.

Prerequisites for using the V2 API


Using the MobileIron V2 API requires:
• MobileIron login credentials for users with the necessary user roles to make the various API calls. You will
send these credentials using basic authentication. See “Authentication” on page 19.
• familiarity with making REST API calls using the HTTPS protocol
• familiarity with JSON

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.

Assigning admin roles to a user

To assign admin roles to a user:


1. Log in to MobileIron and then click Admin.

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.

Making API Calls to MobileIron Connected Cloud


When making API calls to MobileIron Connected Cloud, prepend the URI with “rest/”. For example, if the call is
“api/v2/devices/search_fields” in MobileIron Core, it would be “rest/api/v2/devices/search_fields” in MobileIron
Connected Cloud.

HTTP response status codes


The MobileIron V2 API can return the following HTTP response status codes:

Response code Description


200 Success.
400 Request error.

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.

Using Postman to Test API Calls


If you encounter difficulties using Postman to test API calls, try sending a Content-Type header as application/
json, and using the raw/JSON (application/json) input method to input your JSON object into the code field. For
example, the API call described in “Delete devices” on page 190 requires that you send a Content-Type
header as application/json.

Company Confidential
21
Chapter 2

API status check

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Parameter Type: Query mia
Data Type: String
Min: 1 character
Max: 20 characters
Search expression. Will search against first name, last name,
and principal fields. The call returns all authorized users in the
absence of this parameter.
limit Parameter Type: Query
Data Type: Number
Min: 0
Max: 200
Default: 200
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.
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
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.

Sample request and response

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

Parameter Description Sample Value


query Parameter Type: Query bsmith
Data Type: String
Min: 1 character
Max: 20 characters
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.
limit Parameter Type: Query
Data Type: Number
Min: 0
Max: 200
Default: 200
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
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
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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Required query=admin
Parameter Type: Query (This value instructs the
Data Type: String call to search for ldap
entities with the word
Min: 1 character “admin” in their name”)
Max: 20 characters
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 242 for complete details on the query
operators and search fields you can use to construct the query
parameter statement.
type Required type=user
Parameter Type: Query (This value instructs the
Data Type: String call to search for LDAP
users)
Default: ALL
Type of LDAP entity to search. May be OU, GROUP, or
USER
limit Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000
Default: 10,000
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 10,000.
offset Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
limit Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000
Default: 10,000
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 10,000.
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
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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Parameter Type: Query query=admin
Data Type: String (This value instructs the
Min: 1 character call to search for ldap
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.
type Required type=user
Parameter Type: Query (This value instructs the
Data Type: Number call to search for LDAP
users)
Default: ALL
Type of LDAP entity to search. May be OU, GROUP, USER,
or ALL.
limit Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000
Default: 10,000
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 10,000.
offset Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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.

Sample request and response

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

Admin Actions Management

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

Parameter Description Sample Values


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
source Parameter Type: Path api/v2/admins/
Data Type: String deviceDetails/actions
Specifies the source from which the api call requests audit or
logged Admin actions. The api can request audit logged api/v2/admins/actions
actions from two places, the Audit Logs page and Device
Details Page.
Sending a blank value for the source parameter returns all the
categories and its action types.
Sending deviceDetails, which means the source is Device
Details Page, removes all the User related actions in the
Certificate category, and returns all categories and action
types as is.

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

Sample request and response

Request

Get all the categories and their action types


curl -sS -k -u <userName>:<password> -G https://<mobileironcore>/api/v2/admins/actions?
adminDeviceSpaceId=1

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

App Inventory Management

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
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.
platformType Parameter Type: Query A
Data Type: Char
Specifies from which platform to return installed apps.
Default to return apps from all platforms.
Valid values: I, A, M, E, Q
• I = iOS
• A = Android
• M = Windows Phone
• E = Windows 10 and Windows 8.1
• Q = Web Application
query Parameter Type: Query weather
Data Type: String
Specifies a search string for which to search in the app’s name.
For example, searching for “weather” would return the
“AccuWeather” app.
sortField Parameter Type: Query
Data Type: String
Min: 1 character
Max: 320 characters
Name of the field to use for sorting.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
deviceUuids Parameter Type: Query df5e84fa-ffc0-47d7-
Data Type: String list 98c2-300a4ada396b
Default: false
Comma separated list of device uuids.
Maximum combined number of 25 deviceUuids and
wifiMacs.
wifiMacs Parameter Type: Query AC3C0B79FED7
Data Type: String list
Comma separated list of device wifi mac addresses.
Maximum combined number of 25 deviceUuids and
wifiMacs.

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”.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
inventoryId Required: One of inventoryId, appName ,or AppId is 14
mandatory.
Parameter Type: Query
Data Type: Integer
Use /appinventory/apps?summaryView=false to get
InventoryID.
appName Required: One of inventoryId, appName ,or AppId is Hangouts
mandatory.
Parameter Type: Query
Data Type: String
The name of the app.
appId Required: One of inventoryId, appName ,or AppId is com.google.hangouts
mandatory.
Parameter Type: Query
Data Type: String
Bundle ID of the app.
platformType Required; A
• Yes when appName or appId is used.
• No when inventoryId is used.
Parameter Type: Query
Data Type: String
Specifies from which platform to return installed apps.
Default to return apps from all platforms.
Valid values: I, A, M, E, Q
• I = iOS
• A = Android
• M = Windows Phone
• E = Windows 10 and Windows 8.1
• Q = Web Application
appDisplayVersi Parameter Type: Query 5.1.20393
on Data Type: String
Specifies the version of the app.

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.

Sample request and response

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

App Store Management

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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

Sample request and responses

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id Required 2
Parameter Type: Query
Data Type: Number
The app’s ID. You can find it by issuing GET /api/v2/appstore/
apps..

iOS 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
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

Sample request and responses

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Request body
Data Type: Number
Device space ID of the administrator.
query Required mobileiron
Parameter Type: Request body
Data Type: String
Keyword from the app name or description.
countryCode Required US
Parameter Type: Request body
Data Type: String
Two character ISO country code.
limit Parameter Type: Query
Data Type: Number
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 200. 0 returns all results.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
trackId Required 530168168
Parameter Type: Query
Data Type: Long
App’s trackId on iTunes.
countryCode Parameter Type: Query US
Data Type: String
Default: The browser's locale country code.
The two character ISO code of the country within which the
app should be looked up.
languageCode Parameter Type: Query EN
Data Type: String
Default: The browser's locale language code.
The ISO code of the language for the description of the app, if
available.
forceUpdate Parameter Type: Query False
Data Type: Boolean
Default: True
Whether the existing app with the same bundle ID should be
overwritten if it exists.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Request body
Data Type: Number
Device space ID of the administrator.
query Required facebook
Parameter Type: Query
Data Type: String
Keyword from the app name or description.
countryCode Parameter Type: Query US
Data Type: String
Default: The browser's locale country code.
The two character ISO code of the country within which the
app should be looked up.
languageCode Parameter Type: Query EN
Data Type: String
Default: The browser's locale language code.
The ISO code of the language for the description of the app, if
available.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
searchText Required Apps%40Work
Parameter Type: Query
Data Type: String
Keyword from the app name or description.
storeType Required WIN8
Parameter Type: Query
Data Type: String
They type of Windows store to search. Valid values are:
• WIN_PHONE
• WIN8
• WIN10
languageCode Parameter Type: Query en-us
Data Type: String
Default: The browser's locale language code.
The ISO code of the language for the description of the app, if
available.
limit Parameter Type: Query
Data Type: Number
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 200. 0 returns all results.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
appId Required ccf8eda8-f26a-4663-
Parameter Type: Path and Request body a877-68d8a8e8e247
Data Type: String
You repeat this value in the request path and request body.
version Required N/A
Parameter Type: Request body
Data Type: String
Send N/A if no app version.
title Parameter Type: Request body Canvas Business Forms,
Data Type: String Apps, Work Orders,
Dispatch & Inspections
app description.
storeType Required WIN8
Parameter Type: Query
Data Type: String
They type of Windows store to search. Valid values are:
• WIN_PHONE
• WIN8
• WIN10

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.

Sample request and response

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.

Canvas lets you…

- Replace paper forms with mobile apps in minutes


- Create mobile inspections, work orders, invoices, expense reports, checklists, etc.
- Collect information using your mobile device
- Share data securely in the cloud with customers and colleagues
- Choose from over 14,000 \"starter\" apps (customizable, pre-built forms)

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Request body
Data Type: Number
Device space ID of the administrator.
installer Required OnHoliday-resigned.ipa
Parameter Type: Request body
Data Type: Multipart file
This is an iOS, Android, or Windows app installer file ready
for deployment.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
name Required Online Meet Entry
Parameter Type: Request body
Data Type: String
Name of the web application.
webAppUrl Parameter Type: Request body http://
Data Type: String ome.swimconnection.co
m/meets
URL of the web application.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id Required 2
Parameter Type: Query
Data Type: Number
The app’s ID. You can find it by issuing the GET /api/v2/
appstore/apps call without an ID.
appData Required /Users/ssmith/
Parameter Type: Query editreq2.json
Data Type: String
A file containing a JSON string representation of the app
fields to modify, as one of the Multipart request parts.
JSON syntax example
The JSON file should be formatted like the example below:
{
"appId":105,
"platformType":"Android",
"name":"Hyderbad",
"description":"1234er",
"mandatory":false,
"versionRequired":false
}

Available fields vary by platform type. See Common


appData request parameters, iOS appData request
parameters, and Android appData request parameters
below.
icon Parameter Type: Query icon=@/Users/ssmith/
Data Type: Multipart file icon.png
Icon file to replace any existing icon.
phoneScreenshot Parameter Type: Query phoneScreenshot=@/
Data Type: Multipart file Users/ssmith/ss1.png
An array of phone screenshot files to add to existing
screenshots.
tabletScreenshot Parameter Type: Query tabletScreenshot=@/
Data Type: Multipart file Users/ssmith/tss1.png
An array of tablet screenshot files to add to existing
screenshots..

Company Confidential
129
Common appData request parameters

Parameter Description Sample Value


appId Required
Parameter Type: Request body
Data Type: Number
The appId of the app to update.
platformType Required iPhone
Parameter Type: Request body
Data Type: String
The platform type on which the app runs.
name Parameter Type: Request body
Data Type: String
description Parameter Type: Request body
Data Type: String
publicStoreId Parameter Type: Request body
Data Type: String
featuredApp Parameter Type: Request body
Data Type: Boolean
perAppVpnByLa Parameter Type: Request body
belOnly Data Type: Boolean
quarantinable Parameter Type: Request body
Data Type: Boolean
pushedOnRegistr Parameter Type: Request body
ation Data Type: Boolean
backupPrevented Parameter Type: Request body
Data Type: Boolean
dataProtectionRe Parameter Type: Request body
quired Data Type: Boolean
overrideURL Parameter Type: Request body
Data Type: String
cdnDisabled Parameter Type: Request body
Data Type: Boolean
vpnIds Parameter Type: Request body
Data Type: Integer
VPN ID's. Replaces any existing VPN ID's

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.

iOS appData request parameters

Parameter Description Sample Value


noCostApp Required
Parameter Type: Request body
Data Type: Boolean
hiddenInAppstor Required
e Parameter Type: Request body
Data Type: Boolean
ipadOnly Parameter Type: Request body
Data Type: Boolean

Android appData request parameters

Parameter Description Sample Value


mandatory Required
Parameter Type: Request body
Data Type: Boolean
versionRequired Required
Parameter Type: Request body
Data Type: Boolean
minimumOsVers Parameter Type: Request body
ion Data Type: String
androidWork Parameter Type: Request body
Data Type: Boolean
silentInstall Parameter Type: Request body
Data Type: Boolean

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id Required 2
Parameter Type: Path
Data Type: Number
The id of the app whose screenshot to upload.
type Required phone
Parameter Type: Path
Data Type: String
Type of screenshot to upload. Valid values are:
• phone
• tablet

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id Required 2
Parameter Type: Path
Data Type: Number
ID of the app category whose information to retrieve. You can
get this value with the Get all app categories call.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
name Required Action Game
Parameter Type: Request body
Data Type: String
Name of the category to create.
description Required Action games with
Parameter Type: Request body multiple player
capability.
Data Type: String
Description of the category to create.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
name Parameter Type: Request body Memory Game
Data Type: String
Updated category name.
description Parameter Type: Request body Memory games with
Data Type: String multiple player
capability.
Updated category description.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
ids Required 119
Parameter Type: Query
Data Type: Number
ID of the app to remove.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id Required 117
Parameter Type: Path
Data Type: Number
ID of the app to which to send the message.
installIncluded Parameter Type: Request body false
Data Type: Boolean
Default: false
If true, send message for new installs.
updateIncluded Parameter Type: Request body false
Data Type: Boolean
Default: false
If true, send message for updates.
pushApp Parameter Type: Request body false
Data Type: Boolean
Default: false
If true, push the app.
convertToManag Parameter Type: Boolean false
ed Data Type: Number
Default: false
If true, convert un-managed to managed app.
deviceUuids Parameter Type: Request body ["a2b149e8-817d-484b-
Data Type: Array of string 874c-e2113b8524b8",
"a8733819-eea9-4e43-
Default: null b87e-2824d02f7bcf"]
If not null, specifies a specific set of devices to receive the
message. If null, devices to receive the message will be
determined based on labels.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
appIds Required 119
Parameter Type: Path
Data Type: Number
IDs of the apps to apply to labels.
labelIds Parameter Type: Path -1
Data Type: Number
ID of the labels to which to apply the apps.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
appIds Required 119
Parameter Type: Path
Data Type: Number
IDs of the apps to remove from labels.
labelIds Parameter Type: Path -1
Data Type: Number
ID of the labels from which to remove the apps.

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.

Sample request and response

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

Audit Logs Management

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

Initiate the processing of audit logs to be exported


This call initiates audit log processing.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
userActionIds Parameter Type: Request body
Data Type: Integer[ ]
Comma separated values of user action type Ids, The User
action type Ids are fetched from the /api/v2/admins/{source}/
actions call.
If this is empty, then all the user action types will be
considered for the search.
status Parameter Type: Request body Success, Failed, Initiated
Data Type: String[ ]
Comma separated values of Audit Log status to filter. If this is
empty, then returned Audit Logs may contain all kinds of
statuses.
subject Parameter Type: Request body
Data Type: String
Place holder for a device uuid to filter logs for a particular
device.
actionStart Parameter Type: Request body
Data Type: Number
Start time after which the audit logs are required.
actionEnd Parameter Type: Request body
Data Type: Number
This can be used along with actionStart to form a date range
during which the Audit logs are required.

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
}

If the process is already initiated:


{
"exportStatusMsg":"Audit Logs Export is in progress. It might be issued by another admin. Please try
after some time.",
"isRunning":false
}

Failure:
{
"exportStatusMsg":"Failed to initiate audit logs export",
"isRunning":false
}

Get status of the export process


This call gets the status of the audit log export process.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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
}

When the processing of audit log entries to be exported is completed successfully:


{
"exportStatusMsg":"success",
"isRunning":false,
"isExportStatusAvailable":true
}

Failure:
{
"exportStatusMsg":"fail",
"isRunning":false,
"isExportStatusAvailable":true
}

Download the CSV file


This call downloads 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: 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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
userActionIds Parameter Type: Request body
Data Type: Integer[ ]
Comma separated values of user action type Ids, The User
action type Ids are fetched from /api/v2/admins/{source}/
actions .
If this is empty then all the user action types will be
considered for the search.
status Parameter Type: Request body Success, Failed, Initiated
Data Type: String[ ]
Comma separated values of Audit Log status to filter.
If this is empty then returned Audit Logs may contain all
kinds of statuses.
subject Parameter Type: Request body
Data Type: String
Place holder for a device uuid to filter logs for a particular
device.
actionStart Parameter Type: Request body
Data Type: Number
Start time after which the audit logs are required.
actionEnd Parameter Type: Request body
Data Type: Number
This can be used along with actionStart to form a date range
during which the Audit logs are required.
limit Parameter Type: Request body
Data Type: Number
Min: 0
Max: 200
Default: 200
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 200.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
requestType Required actionType
Parameter Type: Request body
Data Type: String
Default: actionType
Indicates the request type for the facets API.
userActionIds Parameter Type: Request body
Data Type: Integer[ ]
Comma separated values of user action type Ids, The User
action type Ids are fetched from the /api/v2/admins/{source}/
actions call.
If this is empty, then all the user action types will be
considered for the search.
status Parameter Type: Request body Success, Failed, Initiated
Data Type: String[ ]
Comma separated values of Audit Log status to filter. If this is
empty, then returned Audit Logs may contain all kinds of
statuses.
subject Parameter Type: Request body
Data Type: String
Place holder for a device uuid to filter logs for a particular
device.
actionStart Parameter Type: Request body
Data Type: Number
Start time after which the audit logs are required.
actionEnd Parameter Type: Request body
Data Type: Number
This can be used along with actionStart to form a date range
during which the Audit logs are required.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Required: One of either the query or labelId parameters is
required, and you can use both in the same call, but not both
with an advanced query.
Parameter Type: Query
Data Type: String
Min: 0 character
Max: 2000 characters
Search expression. An empty query returns everything. 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.
labelId Required: One of either the labelId or query parameter is
required, and you can use both in the same call.
Parameter Type: Query
Data Type: Number
The Label ID.
fields Required user.display_name%2Cc
Parameter Type: Query ommon.current_phone_n
umber
Data Type: List of strings
Min: 1 field
Max: 512 fields
Comma-separated list of the names of fields to be returned;
Each field should be no more than 320 characters long. See
“Valid fields Parameter Values” on page 304 for a list of
valid values, and “Get the list of searchable device
fields” on page 197 for how to query for the values.
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.

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

Search for smart phones with “Samsung” in their name.


{noformat}
curl 'https://<mobileironcore>/admin/rest/api/v2/
devices?count=50&offset=0&sortOrder=ASC&sortField=user.display_name&fields=user.display_name,common.
current_phone_number,common.model,common.manufacturer,common.mdm_managed,common.platform_name,common
.home_country_name,common.registration_date,common.last_connected_at,common.miclient_last_connected_
at,common.owner,common.home_operator_name,common.language,common.creation_date,common.uuid,common.cl
ientId,user.email_address,common.comment,user.user_id,common.storage_capacity,common.device_is_compr
omised,common.noncompliance_reasons,common.compliant,common.platform,common.quarantined,common.quara
ntined_reasons,common.id,android.attestation,ios.wakeup_status,common.status,common.device_space_nam
e,common.background_status,common.data_protection_enabled,common.data_protection_reasons,common.devi
ce_admin_enabled,common.memory_capacity,common.memory_free,common.storage_capacity,common.storage_fr
ee,common.battery_level,common.client_name,common.client_version,ios.DataRoamingEnabled,common.local
e,common.ethernet_mac,common.imei,common.imsi,common.ip_address,ios.iPhone ICCID,ios.iPhone MAC_AD-
DRESS_EN0,ios.iPhone UDID,ios.iPhone VERSION,ios.DeviceName,common.os_version,android.afw_ca-
pable,android.registration_status&labelId=-1&query=samsung&page=1&start=0&limit=50' -H 'authUserId:
bWlhZG1pbg=='
{noformat}

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
actionType Required ENABLE_VOICE_ROA
Parameter Type: Query MING
Data Type: String
The action to perform.
One of:
• 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)
deviceUuids Required a2556e62-2ed0-4d42-
Parameter Type: Request body 98fd-a342eaf3e4e6
Data Type: Array of UUID Strings
UUID Strings of the devices on which to perform the action.
note Parameter Type: Request body Turning off voice
Data Type: String roaming.
Min: 1 character
Max: 200 characters
Note describing the action.

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.

Sample request and response

Request

Enable data roaming.


curl -k -sS -u <userName>:<password> -v -XPOST 'https://<mobileironcore>/api/v2/devices/action?admin-
DeviceSpaceId=1&actionType=ENABLE_VOICE_ROAMING' -d '{ "deviceUuids": ["a2556e62-2ed0-4d42-98fd-
a342eaf3e4e6","aa0a05dc-14c9-4355-9640-406b5c219c06","d427879e-bdce-469a-810e-d38eef39bf8e"], "note"
: "sample note" }' -H 'Content-Type:application/json'

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Required: One of either the query or labelId parameters is
required, and you can use both in the same call.
Parameter Type: Query
Data Type: String
Min: 0 character
Max: 2000 characters
Search expression. An empty query returns everything. 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.
labelId Required: One of either the labelId or query parameter is
required, and you can use both in the same call.
Parameter Type: Query
Data Type: Number
The Label ID.
fieldGroups Required USER,COMMON,AND
Parameter Type: Query ROID,IOS,WINDOWS_
PHONE
Data Type: List of strings
Min: 1 field group
Max: 20 field groups
Comma-separated list of the names of field groups to be
returned. Each field group should be no more than 20
characters long. May be any sequence of the following group
names: "BASIC", "COMMON", "ANDROID", "IOS",
"USER", "WINDOWS_PHONE"
limit Parameter Type: Query
Data Type: Number
Min: 0
Max: 5000
Default: 5000
Indicates the maximum number of entries to return.

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

Content-Disposition: attachment; filename= DeviceSearchResult.csv

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
deviceUuids Parameter Type: Request body 10c43352-15b2-413b-
Data Type: Array of strings a3e0-4daf3977711a
Min: 1 deviceUuid
Max: 512 deviceUuids
Comma-separated list of device uuids to delete if retired and is
of platform iOS, OS X, Win8, Android.
wifiMacs Parameter Type: Request body 2a393b114f7c
Data Type: Array of strings
Min: 1 wifiMacs
Max: 512 wifiMacs
Comma-separated list of wifiMacs to delete if retired and is of
platform iOS, OS X, Win8, Android.
principals Parameter Type: Request body
Data Type: Array of strings
Min: 1 principals
Max: 512 principals
Comma-separated list of principals to delete if retired and is of
platform iOS, OS X, Win8, Android.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required adminDeviceSpaceId=1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Required query="common.manufa
Parameter Type: Query cturer" starts with
"Appl"
Data Type: Number
Min: 0 characters
Max: 2000 characters
Search expression. An empty query returns the count of all
devices. 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.

Response fields

Field Description
totalCount The total number of entries that the query matched.

Sample request and response

Request

Count all devices that are manufactured by Apple.


curl -X GET -H "Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ==" https://mobileironcore]/api/v2/
devices/count?adminDeviceSpaceId=1&query="common.manufacturer" starts with "Appl"

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

Parameter Description Sample Value


adminDeviceSpa Required adminDeviceSpaceId=1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
query Required query=manufacturer
contains "Apple"
Parameter Type: Query
Data Type: Number
Min: 0 characters
Max: 2000 characters
Search expression. An empty query is valid. 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.

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.

Sample request and response

Request

Validate the query.


curl -G -k -sS -u username:password 'https://[mobileironcore]/api/v2/device/query_test' --data
'query%3Dmanufacturer%20contains%20%22blargle%22'

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

Parameter Description Sample Value


adminDeviceSpa Required
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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".

Sample request and response

Request

Get the fields.


curl -G -k -sS -u username:password 'https://[mobileironcore]/api/v2/device/search_fields'

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

Parameter Description Sample Value


deviceId Required 2e33329d-fed5-4f56-
Parameter Type: Path a2b7-65caa5ef0cfe
Data Type: String
The deviceId is the device UUID.

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.

Sample request and response

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

Parameter Description Sample Value


daysIdle Required 0
Parameter Type: Query
Data Type: Integer
Enter a value corresponding the number of days idle devices should be
to be returned by the call. For example, to find devices that have been
idle for one day, use 1 (one). Use 0 (zero) to find devices regardless of
the last session time.
state Parameter Type: Query a
Data Type: String
Valid values:
• a
Searches for allowed devices
• b
Searches for blocked devices
• w
Searches for wiped devices
• q
Searches for allowed quarantined devices
• r
Searches for retired devices

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
deviceUuid Required 7b3ad194-
Parameter Type: Path 3bc0-4229-
b30f-
Data Type: String 26f6bb277dd7
The device UUID.

Response fields

Field Description
results Container for the results array shown below.
deviceUuid
appViolationsByType
Disallowed
type
appName
appVersion
Required
type
appName
appVersion

Sample request and response

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

Device Spaces Management

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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Default: 0
Device space ID of the administrator.
limit Parameter Type: Query 5000
Data Type: Number
Min: 0 character
Max: 10,000 characters
Default: 10,000
Indicates the maximum number of entries to return. Must be at
least 0 and no more than 10,000.
offset Parameter Type: Query
Data Type: Number
Min: 0
Max: 10,000,000
Default: 0
Indicates the index of the first entry to return.
excludeDeviceC Parameter Type: Query
ount Data Type: Boolean
Default: false
true = deviceCount field returned is always zero and you
should ignore this value.
false = deviceCount field contains actual device count.
If you do not need the device count, then call it with
"excludeDeviceCount=true," which yields faster results.

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.

Sample request and response

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Default: 0
Device space ID of the administrator.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Default: 0
Device space ID of the administrator.
name Required
Parameter Type: Request body
Data Type: String
Name of the space. Name must be unique.
id Required when updating a space
Parameter Type:
Data Type: Number
ID of the space. Used for updating a space.
parentId Required
Parameter Type: Request body
Data Type: Number
ID of the parent device space. 1 is the ID for the Global device
space
criteria Required ""criteria"":""\\""com
mon.home_country_code\
Parameter Type: Request body \"" = \\""US\\"" AND
Data Type: String \\""common.home_countr
y_name\\"" =
Space criteria. \\""United
States\\"""",""name"":
""USA Devices""}"

Response fields

Field Description
id The ID of the created or updated device space.

Sample request and response

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Min: 0
Default: 0
Device space ID of the administrator.
deviceSpaceId Required
Parameter Type: Path
Data Type: Number
Min: 1
Max: 10,000,000
The ID of device space ID to which to assign admins
roles Required
Parameter Type: Request body
Data Type: List
Min: 1
Max: 100
List of roles to assign to the admins. See “Get a list of
admin roles” on page 46 for the call you use to find the
values for this parameter.
adminUsers Parameter Type: Request body
Data Type: List
Min: 1
Max: 500
List of admin userIds (i.e., principals). Each element in the list
must be no more than 50 characters in length. May not be used
if adminLdapEntities is used.
adminLdapEntiti Parameter Type: Request body
es Data Type: List
Min: 1
Max: 500
List of admin LDAP entities, composed of a name, an LDAP
type and a DN. LDAP type choices are "GROUP", "USER",
or "OU". May not be used if adminUsers parameter is used.
Note: LDAP entities are not validated against LDAP. You
must to pass in the correct values.

Company Confidential
221
Response fields
This call does not return any response fields, but does return the HTTP 200 OK response code upon success.

Sample request and response

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""}]}"

Request payload structure


{
"roles": [
2,
4,
5,
7,
8,
3,
6,
13,
14,
15,
16,
33,
18,
20,
21,
23,
35
],
"adminLdapEntities": [
{
"name": "testuser000000",
"type": "USER",
"dn": "cn=testuser000000,ou=contacts,dc=auto2,dc=mobileiron,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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Min: 0
Default: 0
Device space ID of the administrator.
deviceSpaceId Required
Parameter Type: Path and Request body
Data Type: Number
Min: 1
Max: 10,000,000
The ID of device space from which to delete admins. This call
requires this parameter in the request path and in the request
body.
adminUsers Parameter Type: Request body
Data Type: List
Min: 1
Max: 500
List of admin userIds (i.e., principals) to delete as admins.
Each element in the list must be no more than 50 characters in
length. May not be used if adminLdapEntities is used.
adminLdapEntiti Parameter Type: Request body
es Data Type: List
Min: 1
Max: 500
List of admin LDAP entities to delete as admins, composed of
a name, an LDAP type and a DN. LDAP type choices are
"GROUP", "USER", or "OU". May not be used if adminUsers
parameter is used.
Note: LDAP entities are not validated against LDAP. You
must to pass in the correct values.

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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Default: 0
Device space ID of the administrator.
deviceSpaceId Required
Parameter Type: Path
Data Type: Number
The ID of device space whose priority to change.
deviceSpaceIdA Parameter Type: Request body
boveMe Data Type: List
Min: 1
Max: 500
The ID of the device space whose priority is one step higher
than the target device space.
Use 0 (zero) if the target device space is to have no other
spaces above it.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Parameter Type: Query
ceId Data Type: Number
Default: 0
Device space ID of the administrator.

Response fields
This call does not return any response fields, but does return the HTTP 200 OK response code upon success.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
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
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 An array of retrieved objects shown below.
id
name
description

Company Confidential
233
Field Description
isStatic
criteria
deviceCount
deviceSpaceId
deviceSpaceName
deviceSpacePath

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
-labelId Required -11
Parameter Type: Path
Data Type: Number
Note that you need to precede the value with a dash.

Response fields

Field Description
policies
configs
id
name
description
applications
deviceCount
policyCount
configCount
userCount
applicationCount

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
-labelId Required -11
Parameter Type: Path
Data Type: Number
Note that you need to precede the value with a dash.

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

Sample request and response

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

Parameter Description Sample Value


deviceSpaceId Required 1
Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
criteria Required common.platform"="An
Parameter Type: Request body droid" AND
"common.retired"=false
Data Type: String
Label criteria.
description Required Label for all Android
Parameter Type: Request body Phones.
Data Type: String
Description of the label.
labelId Required if editing an existing label. Omit if adding a new -10
label.
Parameter Type: Request body
Data Type: Number
Precede the label with a dash.
name Required Android
Parameter Type: Request body
Data Type: Number
Name of the label.
static Required false
Parameter Type: Request body
Data Type: Boolean
Determines whether the label is static.

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

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
-labelId Required -11
Parameter Type: Request body
Data Type: Number
Note that you need to precede the value with a dash.
reason Parameter Type: Request body No longer needed.
Data Type: String
Reason for deletion.

Response
200 OK

Sample request and response

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

Parameter Description Sample Value


deviceSpaceId Required 1
Parameter Type: Request body
Data Type: Number
Device space ID of the administrator.
entityIds Parameter Type: Request body 1,98
Data Type: Number
A list of device ID for applied labels, empty for non-applied
labels.
query Required Label for all Android
Parameter Type: Request body Phones.
Data Type: String
Name or description of label.
assignedOnly Required if editing an existing label. Omit if adding a new false
label.
Parameter Type: Request body
Data Type: Boolean
Default: false
true to get only assigned labels, otherwise it returns both
assigned or unassigned labels
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.

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

Sample request and response

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

Custom Attributes Management

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
type Required device
Parameter Type: Query
Data Type: String
Type of attributes to return, device or user.
status Parameter Type: Query active
Data Type: String
Restricts the returned list to definitions of a specific status,
active or inactive.
keyword Parameter Type: Query platform
Data Type: String
Restricts returned list to definitions containing the specified
keyword in name or description.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id Required 2
Parameter Type: Request path
Data Type: String
ID of the custom attribute whose data to retrieve.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
description Parameter Type: Request body Platform custom
Data Type: String attribute.
Description of the custom attribute to create.
name Required TestAttribute
Parameter Type: Request body
Data Type: String
Name of the custom attribute to create.
dataType Required long
Parameter Type: Request body
Data Type: String
Data type of the custom attribute to create. Three possible
types:
• BOOLEAN
• LONG
• STRING
type Required device
Parameter Type: Request body
Data Type: String
Type of the custom attribute to create, device or user.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
id ID of the custom attribute definition to update. 2
description Parameter Type: Request body Platform costum
Data Type: String attribute.
Updated description of the custom attribute.
status Parameter Type: Request body TestAttribute
Data Type: String
Updated status of the custom attribute, active or inactive.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
uuid Required 5f1db255-8d3d-4943-
Parameter Type: Request path 8bab-d556cacce855
Data Type: String
uuid of the device whose custom attributes to retrieve.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
uuids Required "136da21e-9e95-4ea2-
Parameter Type: Request body 8b51-343297c58d8b",
"ada0e9cd-ca15-49f6-
Data Type: String 98a8-3d304b83809f"
uuids of the devices whose custom attributes to set.
attributes Required { "flag1": "true", "flag2"
Parameter Type: Request body : "false" }
Data Type: String
key-value pairs of the custom attributes to set and the desired
values. Null or empty string ("") passed in as the value will
remove any existing attribute value.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
uuid Required 5f1db255-8d3d-4943-
Parameter Type: Request path 8bab-d556cacce855
Data Type: String
uuid of the user whose custom attributes to retrieve.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
uuids Required "c9d3a454-c1b9-4922-
Parameter Type: Request body a381-932823d0c0e5",
"28df8c43-20e0-44f3-
Data Type: String 9771-d526cc854e33",
uuids of the users whose custom attributes to set. "a5eb8acb-5fad-4b59-
b2bf-b98d04fc61c5"
attributes Required "userString1": "Woof!",
Parameter Type: Request body "userLong1" : ""
Data Type: String
key-value pairs of the custom attributes to set and the desired
values. Null or empty string ("") passed in as the value will
remove any existing attribute value.

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

Initiate the processing of certificate details to be exported


Initiates processing certificate details to query.

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

Category: Device Management


Role Description: View dashboard, device page, device details

Company Confidential
274
Required Roles
Finding this role in MobileIron Core

HTTP method
POST

Request URI

api/v2/certificates/search_export

Request parameters

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.
ceSettingName Required LccalCE
Parameter Type: Request body
Data Type: String
Certificate enrollment configuration name.

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": [ ]
}
]
}

If the process is already initiated:


{
"messages": [
{
"type": "Info",
"messageKey": "com.mobileiron.vsp.rest.controllers.CertificateManagementController.Mes-
sages.PROCESS_INITIATED",
"localizedMessage": "Certificate details export is already progress. It might be issued by
a different user",
"messageParameters": [ ]
}
]
}

Get status of the export process


This call gets the status of the certificate details export process.

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

Category: Device Management


Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core

Company Confidential
278
HTTP method
GET

Request URI
api/v2/certificates/search_export_status

Request parameters

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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}
}

Download the CSV file


This call downloads the CSV file.

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

Category: Device Management


Role Description: View dashboard, device page, device details
Finding this role in MobileIron Core

HTTP method
GET

Company Confidential
280
Request URI
api/v2/certificates/search_download_csv

Request parameters

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
Device space ID of the administrator.

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

Category: Device Management


Role Description: View dashboard, device page, device details

Company Confidential
282
Required Roles
Finding this role in MobileIron Core

HTTP method
GET

Request URI

api/v2/certificates/search

Request parameters

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Request body
Data Type: Number
Device space ID of the administrator.
ceSettingName Required LocalICE
Parameter Type: Request body
Data Type: String
This is the certificate enrollment configuration name.

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.

Sample request and response

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.

Error checking and validation


• Core will display an error message warning when a configuration is created without a private key password for
configurations used by iOS_MDM_OTA, Android for Work and Windows. These configurations require a
private key password and will not work without one.
• Core verifies the file type of user-provided certificates, generates an error message popup and does not save the
file if it is not a valid PKCS#12.
• Core verifies if the supplied Certificate Enrollment ID (CEid) is a valid user provided configuration and
generates an error message if it is not.
• Core verifies if the supplied userId is a valid user principal and generates an error message if it is not.
• Core will display an error message with response code 410 if the V1 API for managing user-provided
certificates is used.

Upload user-provided certificate


Use this call to upload a user-provided certificate.

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

Parameter Description Sample Value


CEid Required 9
Parameter Type: Query path
Data Type: String
Internal certificate ID
username Required testuser1000
Parameter Type: Query path
Data Type: String
Username of the certificate owner

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":[]
}
]
}

Delete user-provided certificates


Use this call to delete a user-provided certificate.

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

Parameter Description Sample Value


CEid Required 9
Parameter Type: Query path
Data Type: String
Internal certificate ID.
username Required testuser1000
Parameter Type: Query path
Data Type: String
Username of the certificate owner.

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":[]
}
]
}

Get list of user provided certificate enrollment ID information with associated


certificate details
This call gets a list of user provided certificate enrollment ID information with associated 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 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

Parameter Description Sample Value


CEid Required 9
Parameter Type: Query path
Data Type: String
Internal certificate ID.
username Required testuser1000
Parameter Type: Query path
Data Type: String
Username of the certificate owner.

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

Parameter Description Sample Value


username Required testuser1000
Parameter Type: Query path
Data Type: String
Username of the certificate owner.

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
The effective device space ID to become when searching for
devices, to which the user must belong to search for devices.
The feature usage data contains entries for all active devices,
which requires the user be a member of the Global space.
Global space is always 1.

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.

Sample request and response

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

Parameter Description Sample Value


adminDeviceSpa Required 1
ceId Parameter Type: Query
Data Type: Number
The effective device space ID to become when searching for
devices, to which the user must belong to search for devices.
The feature usage data contains entries for all active devices,
which requires the user be a member of the Global space.
Global space is always 1.
format Parameter Type: Query csv
Data Type: String
Default: json
This specifies the return data format of the feature usage
report. The default format is JSON. CSV format may also be
requested by setting "format=csv".
datafile Parameter Type: Query app993.auto.mobileiron.
Data Type: String com_20160411182400
This specified the name of the feature report data file. If this
parameter is not set, the last run feature report file will be
returned.

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.

Sample requests and response

Requests
curl -X GET -u <userName>:<password> "https://<mobileironcore>/api/v2/featureusage?adminDeviceSpa-
ceId=1"

curl -X GET -u <userName>:<password> "https://<mobileironcore>/api/v2/featureusage?format=csv&data-


file=app993.auto.mobileiron.com_20160411182400&adminDeviceSpaceId=1"

Response to first example


{
"coreFQDN": "manual220.auto.mobileiron.com",
"coreVersion": "9.1",
"coreId": "fd1caa40-3491-4b27-b721-f82763f67967",
"coreLicenseKey": "demo-key",
"reportRun": "2016-08-07 00:00:00",
"featuresGlobal": {
"userPortalCertAuth": false,
"helpIos": true,
"helpAndroid": false
},
"featuresDevices": [
{
"deviceUUID": "337f198a-f1bf-43a9-bc5e-09965e2a7124",
"userUUID": "00b92e54-3374-469e-9996-b724b45a848a",
"registeredAt": "2016-08-06 19:11:34",
"platform": "Windows Phone 8",
"featureAppConnect": "false",
"featureDocs": "false",
"featureDocsAC": "false",
"featureWeb": "false",

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

Valid fields Parameter Values

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

Query Operators and Search Fields

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:

Priority Operator Operation


1 = Equals and case-insensitive string comparison
2 > Is greater than
3 >= Is greater than or equal to
4 < Is less than
5 <= Is less than or equal to
6 "contains" Case-insensitive substring matching
7 "starts with" Case-insensitive prefix matching
8 != Not Equals
9 "does not contain" Case-insensitive substring exclusion
10 "is empty" Is empty
11 "is not empty" Is not empty

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.

Common Device Search Fields

Field name format:


"common.<field_name>"

Field Data Type Sample Data


apns_capable boolean e43f9c41484baf6601b2e80f7390fe195df5
background_status string
battery_level long 15
99
blocked_reasons array of 2
strings
blocked boolean 2
cellular_technology string GSM
client_id long 1073741831
client_name string com.mobileiron
client_build_date date Aug 29 2013 13:02:18
client_version string 5.7.0.1.17R
comment string
noncompliance_reasons array of 3
strings
compliant boolean 3
creation_date date 2014-01-20 19:08:27
current_country_code string US
current_country_name string United States
current_operator_name string AT&T
current_phone_number string PDA
data_protection_enabled boolean
data_protection_reasons array of
strings
device_admin_enabled boolean

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

Android-Only Device Search Fields


Field name format:
"android.<field_name>"

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

iOS and OS X Device Search Fields


Field name format:
"ios.<field_name>"

Field Data Type Sample Data


Activation Lock Bypass Code string JX17H-R0A7Z-E06R-X923-VUF8-81F3
Activation Lock Is Enabled boolean false
apnsToken string e43f9c41484baf6601b2e80f7390fe195df5..
.
BluetoothMAC string A88808C93459

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

Windows Phone and Surface Device Search Fields


Field name format:
"windows_phone.<field_name>"

Field Data Type Sample Data


dm_client_version double 1.3
network_adapter string Hyper-V Virtual Ethernet Adapter #2
processor_type string Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
wns_channel_url string https://bn1.notify.windows.com/
?token=AgYAAAC1r8nFA5Uhc
wp_cert_renew_timestamp date 0
wp_ent_dm_id long 0
wp_exchange_id string 37D9EC65D7F9CC35AF5B8B944256361A
wp_firmware_version string 3045.0000.1328.2046
wp_hardware_version string 1.0.0.0
wp_local_time date 2013-10-22T20:08:07.0000258-04:00
wp_processor_type long 0
wp_signed_ent_dm_id long 0
wp_management_service_ string
address
wp_mpns_notification_uri string
wp_os_platform string
wp_radio_swv string
wp_publisher_device_id string
wp_ent_device_name string

Company Confidential
313
User-Related Device Search Fields
The set of user-related device search fields include:
• local user search fields
• LDAP search fields

Local User Device Search Fields


Field name format:
"user.<field_name>"

Field Data Type Sample Data


email_address string bsmith@mobileiron.com
display_name string BlargleFalargle
first_name string Bob
last_admin_portal_login_ti date 1382485711228
me
last_name string Smith
user_id string blargle
uuid string d0cae3dd-a3dd-46b8-8f5a-
564cbe9152ac

LDAP-User Device Search Fields


LDAP-related search fields include:
• basic LDAP-related device search fields
• groups

Basic LDAP-User Device Search Fields


Field name format:
"user.ldap.<field_name>"

Field Data Type


attr_dn string
dn string
locale string
principal string
upn string

LDAP User-Attributes Device Search Fields


Field name format:
"user.ldap.user_attributes.<field_name>"

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

LDAP-Group Device Search Fields


Field name format:
"user.ldap.groups.<field_name>"

Field Data Type


dn string
name string

Value Enumerations

Values for the "platform" Device Search Field

Value
Android
iOS
OS X
Windows
Windows Phone

Values for the "platform_name" Device Search Field

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

Values for the "status" Device Search Field

Enum Name Meaning


ACTIVE Active
BLOCKED Blocked
IENROLL_VERIFIED Enrollment verified
IENROLL_INPROGRESS Enrolling
IENROLL_COMPLETE Enrolled
INFECTED Infected
LOST Lost
RETIRED Retired
VERIFIED Verified
VERIFICATION_PENDING Pending
EXPIRED Expired
WIPED Wiped
WIPE_PENDING Wipe pending
UNKNOWN Unknown status

Values for the "owner" Device Search Field

Name Meaning
COMPANY Company-owned device
EMPLOYE Employee-owned (personal) device
E

Array Value Enumerations

Values for the "blocked_reasons", "noncompliance_reasons", and "quarantined_reasons" Device


Search Fields

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

You might also like