App Store Management

Get a list of all available apps

This call gets a list of all available apps.

Required Role

See Authentication 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

HTTP method

GET

Request URI

/api/v2/appstore/apps

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

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

 

        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://[Ivanti EPMM]/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,

            "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

        },

        ...

    ]

}

Get app data by id

This call gets app data by app id.

Required Role

See Authentication 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

HTTP method

GET

Request URI

/api/v2/appstore/apps/{id}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

id

Required

Parameter Type: Query

Data Type: Number

The app’s ID. You can find it by issuing GET /api/v2/appstore/apps.

2

iOS Response fields

Field

Description

results

 

    id

 

    name

 

    platformType

 

    platformCode

 

    version

 

    altVersion

 

    displayVersion

 

    appId

 

    creatorType

 

    catalogType

 

    publicAppStoreType

 

    publicStoreId

 

    developerName

 

    description

 

    cost

 

    currency

 

    averageRating

 

    ratingCount

 

    installSize

 

    createdAt

 

    modifiedAt

 

    vpnIds

 

    iconFile

 

        fileName

 

        uuid

 

        url

 

        }

 

    installer

 

    phoneScreenshots

 

            fileName

 

            uuid

 

            url

 

    tabletScreenshots

 

            fileName

 

            uuid

 

            url

 

    categories

 

    featuredApp

 

    featuredBanner

 

    bannerDescription

 

    bannerStyle

 

    hiddenInAppstore

 

    perAppVpnByLabelOnly

 

    dataProtectionRequired

 

    overrideURL

 

    quarantinable

 

    pushedOnRegistration

 

    backupPrevented

 

    cdnServiceEnabled

 

    cdnDisabled

 

    deviceSpaceId

 

    spaces

 

            id

 

            name

 

            parentId

 

            path

 

    newApp

 

    minimumOsVersion

This call returns a cryptic value for minimumOsVersion. Please see the call Get minimumOsVersion Information to decode the minimumOsVersion value returned by this call.

    apnsCertificate

 

    ipadOnly

 

    noCostApp

 

    provisioningProfile

 

    messagingSupported

 

    allowUpdateFromUnmanagedToManaged

 

    enforceUpdateFromUnmanagedToManaged

 

    profileExpirationDate

 

    removeAppWhenMDMDisabled

 

    pushedOnQuarantine

 

    codeVersion

 

    autoUpdateEnabled

 

    manualUpdateEnabled

 

    appStoreDetailUrl

 

    vpnNames

 

    preferPlistAppConfig

 

    oneTouchAppConfigs

 

    updatedSpecAvailable

 

messages

 

        type

 

        messageKey

 

        localizedMessage

 

 

Android Response fields

Field

Description

results

 

    id

 

    name

 

    platformType

 

    platformCode

 

    version

 

    altVersion

 

    displayVersion

 

    appId

 

    creatorType

 

    catalogType

 

    publicAppStoreType

 

    publicStoreId

 

    developerName

 

    description

 

    updateNotes

 

    cost

 

    currency

 

    averageRating

 

    ratingCount

 

    installSize

 

    createdAt

 

    modifiedAt

 

    vpnIds

 

    iconFile

 

        fileName

 

        uuid

 

        url

 

    installer

 

    phoneScreenshots

 

            fileName

 

            uuid

 

            url

 

    tabletScreenshots

 

    categories

 

    featuredApp

 

    featuredBanner

 

    bannerDescription

 

    bannerStyle

 

    hiddenInAppstore

 

    perAppVpnByLabelOnly

 

    dataProtectionRequired

 

    overrideURL

 

    quarantinable

 

    pushedOnRegistration

 

    backupPrevented

 

    cdnServiceEnabled

 

    cdnDisabled

 

    deviceSpaceId

 

    spaces

 

            id

 

            name

 

            parentId

 

            path

 

    newApp

 

    minimumOsVersion

 

    androidWork

 

    androidWorkSilentInstall

 

    androidWorkBlockUninstall

 

    blockWidget

 

    autoUpdate

 

    permissionUpdateAvailable

 

    enterpriseConfigs

 

            name

 

            restrictions

 

                    title

 

                    key

 

                    value

 

                    type

 

                    values

 

                    displayValue

 

            permissions

 

                    id

 

                    name

 

                    description

 

                    value

 

                    displayValue

 

                    permissionId

 

            labels

 

                    id

 

                    name

 

            name

 

            restrictions

 

            permissions

 

                    id

 

                    name

 

                    description

 

                    value

 

                    displayValue

 

                    permissionId

 

            labels

 

                    id

 

                    name

 

            name

 

            restrictions

 

            permissions

 

                    id

 

                    name

 

                    description

 

                    value

 

                    displayValue

 

                    permissionId

 

            labels

 

    versionRequired

 

    codeVersion

 

    mandatory

 

    mandatoryOverwrite

 

    secureApp

 

    enforceVersion

 

    vpnNames

 

messages

 

        type

 

        messageKey

 

        localizedMessage

 

Sample request and responses

iOS Request

curl -X GET \

  'https://[Ivanti EPMM]/api/v2/appstore/apps/119?adminDeviceSpaceId=1' \

iOS Response

{

    "results": {

        "id": 119,

        "name": "Words With Friends – Word Game",

        "platformType": "IPhone",

        "platformCode": "I",

        "version": null,

        "altVersion": "",

        "displayVersion": null,

        "appId": "com.newtoyinc.NewWordsWithFriendsFree",

        "creatorType": "ADMIN",

        "catalogType": "APP",

        "publicAppStoreType": "ITUNES",

        "publicStoreId": "804379658",

        "developerName": "Zynga Inc.",

        "description": "The World’s Most Popular Mobile Word Game now has even more ways to play! Try new rewards and boosts to help you play smarter and faster!\n\nWords With Friends is the fun, free word game that lets you connect with friends and family while expanding your vocabulary and sharpening your wit. Test your brain power and spell your way to victory.  \n\nMay the Best Friend Win.™ \n\nGame Features: \n\n•\tWEEKLY CHALLENGE: Play the weekly challenge and earn fun, themed badges\n•\tSOLO PLAY: Play offline and sharpen your skills with solo play\n•\tHINDSIGHT: Uncover the best word you could have played after each turn \n•\tWORD RADAR: Heat map reveals all possible moves before you take a turn\n•\tPROFILE FRAMES: Show off your unique style with custom profile frames \n•\tSMART MATCH: Connect with players of a similar skill with Smart Match\n•\t6 LANGUAGES: Choose to play in Spanish, French, German, Italian, Brazilian Portuguese and British English\n\n*Play Words With Friends without third party ads between moves if you previously purchased Words With Friends Pro on iOS or any other mobile device. Be sure to login with Facebook or the email account you used to make the previous purchase to continue to play without third party ads between moves.\n\nAlready an accomplished Wordie? Like us on Facebook or follow us on Twitter to stay up-to-date on game news, contests, polls and more.\n\nhttps://www.facebook.com/WordsWithFriends\nhttps://twitter.com/WordsWFriends  \nhttps://instagram.com/wordswithfriends \n\nWe love hearing from you! Have a question or a suggestion? \nAsk questions here: http://zynga.tm/d01Tx  \nShare suggestions here: http://zynga.tm/r02dY \n\nThank you for playing Words With Friends!\n\nAdditional Information:\nThe game is free to play; however, in-app purchases are available for additional content and in-game currency. In-app purchases range from $0.99 to $99.99 USD.",

        "updateNotes": "Dear Wordies,\nWe’ve updated our latest version with bug fixes and improvements!\nMay The Best Friend Win\nWords With Friends",

        "cost": 0,

        "currency": "USD",

        "averageRating": 4.5,

        "ratingCount": 237475,

        "installSize": 269412352,

        "createdAt": 1558033456000,

        "modifiedAt": 1558033473000,

        "vpnIds": [],

        "iconFile": {

            "fileName": "logo.png",

            "uuid": "fef256c0-55bb-4fab-8b73-6790db3cbdce",

            "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=fef256c0-55bb-4fab-8b73-6790db3cbdce&ext=PNG"

        },

        "installer": null,

        "phoneScreenshots": [

            {

                "fileName": "screen-shot-0.png",

                "uuid": "485f75da-fd29-402e-b906-099ba3207a11",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=485f75da-fd29-402e-b906-099ba3207a11&ext=PNG"

            },

            {

                "fileName": "screen-shot-1.png",

                "uuid": "cbdfd6da-2e62-48fe-a5f1-5924767da24a",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=cbdfd6da-2e62-48fe-a5f1-5924767da24a&ext=PNG"

            },

            {

                "fileName": "screen-shot-2.png",

                "uuid": "041018d2-88a3-4d8b-9c2e-cd0d019d297e",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=041018d2-88a3-4d8b-9c2e-cd0d019d297e&ext=PNG"

            },

            {

                "fileName": "screen-shot-3.png",

                "uuid": "ac6cf248-e540-4288-838e-dac7e8b0e70c",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=ac6cf248-e540-4288-838e-dac7e8b0e70c&ext=PNG"

            },

            {

                "fileName": "screen-shot-4.png",

                "uuid": "bb07b4cf-456f-42fd-94a0-f6a5b419a2d1",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=bb07b4cf-456f-42fd-94a0-f6a5b419a2d1&ext=PNG"

            },

            {

                "fileName": "screen-shot-5.png",

                "uuid": "36609455-8a1b-4748-9b9f-bbaece68d559",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=36609455-8a1b-4748-9b9f-bbaece68d559&ext=PNG"

            },

            {

                "fileName": "screen-shot-6.png",

                "uuid": "adb326c4-e395-4ebe-bab1-eccb774285cf",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=adb326c4-e395-4ebe-bab1-eccb774285cf&ext=PNG"

            }

        ],

        "tabletScreenshots": [

            {

                "fileName": "screen-shot-0.png",

                "uuid": "db7738cc-ae44-4f4d-8440-b96f18171bde",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=db7738cc-ae44-4f4d-8440-b96f18171bde&ext=PNG"

            },

            {

                "fileName": "screen-shot-1.png",

                "uuid": "3ffc7873-b420-443a-87c6-94e5bdc5463f",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=3ffc7873-b420-443a-87c6-94e5bdc5463f&ext=PNG"

            },

            {

                "fileName": "screen-shot-2.png",

                "uuid": "0fbd03e7-22a8-4dd3-b5db-d7be40ff2a83",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=0fbd03e7-22a8-4dd3-b5db-d7be40ff2a83&ext=PNG"

            },

            {

                "fileName": "screen-shot-3.png",

                "uuid": "3e04a2e1-17c9-4fca-971d-633aab95f5f3",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=3e04a2e1-17c9-4fca-971d-633aab95f5f3&ext=PNG"

            },

            {

                "fileName": "screen-shot-4.png",

                "uuid": "117ff378-0584-4cc6-82dc-76e69297cb00",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=117ff378-0584-4cc6-82dc-76e69297cb00&ext=PNG"

            },

            {

                "fileName": "screen-shot-5.png",

                "uuid": "89027db9-3fbc-4a21-837c-9e62b4cf621e",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=89027db9-3fbc-4a21-837c-9e62b4cf621e&ext=PNG"

            },

            {

                "fileName": "screen-shot-6.png",

                "uuid": "56de0099-6922-4002-bbe3-16d535fabd94",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=119&uuid=56de0099-6922-4002-bbe3-16d535fabd94&ext=PNG"

            }

        ],

        "categories": [],

        "featuredApp": false,

        "featuredBanner": false,

        "bannerDescription": null,

        "bannerStyle": null,

        "hiddenInAppstore": false,

        "perAppVpnByLabelOnly": false,

        "dataProtectionRequired": false,

        "overrideURL": null,

        "quarantinable": false,

        "pushedOnRegistration": false,

        "backupPrevented": false,

        "cdnServiceEnabled": false,

        "cdnDisabled": false,

        "deviceSpaceId": 1,

        "spaces": [

            {

                "id": 1,

                "name": "Global",

                "parentId": 0,

                "path": "/1/"

            }

        ],

        "newApp": true,

        "minimumOsVersion": "11000000",

        "apnsCertificate": null,

        "ipadOnly": false,

        "noCostApp": true,

        "provisioningProfile": null,

        "messagingSupported": false,

        "allowUpdateFromUnmanagedToManaged": false,

        "enforceUpdateFromUnmanagedToManaged": false,

        "profileExpirationDate": null,

        "removeAppWhenMDMDisabled": true,

        "pushedOnQuarantine": false,

        "codeVersion": "",

        "autoUpdateEnabled": false,

        "manualUpdateEnabled": false,

        "appStoreDetailUrl": "https://app642.auto.mobileiron.com/mifs/asfV3x/appstore?appid=119",

        "vpnNames": null,

        "preferPlistAppConfig": false,

        "oneTouchAppConfigs": [],

        "updatedSpecAvailable": false

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.get.app.success",

            "localizedMessage": "App successfully fetched."

        }

    ]

}

Android request

curl -G -k -sS -u <userName>:<password> 'https://[Ivanti EPMM]/api/v2/appstore/apps/124' --data-urlencode 'adminDeviceSpaceId=1'

Android response

{

    "results": {

        "id": 124,

        "name": "Maps - Navigation & Transit",

        "platformType": "Android",

        "platformCode": "A",

        "version": null,

        "altVersion": "",

        "displayVersion": null,

        "appId": "com.google.android.apps.maps",

        "creatorType": "ADMIN",

        "catalogType": "APP",

        "publicAppStoreType": "GOOGLE_PLAY",

        "publicStoreId": "com.google.android.apps.maps",

        "developerName": "Google Inc.",

        "description": "Going somewhere? Go with Maps, the official app you can rely on for real-time GPS navigation, traffic, transit, and details about millions of places, such as reviews and popular times.<br><br>Get there faster with real-time updates<br>Beat traffic with real-time navigation, ETAs and traffic conditions<br>Catch your bus, train, or ride-share with real-time transit info<br>Save time with automatic re-routing based on live traffic, road closures and traffic incidents<br>Navigation with lane guidance so you don't miss a turn or exit<br>Find pit stops along your route like gas stations and coffee spots<br><br>Discover places and explore like a local<br>Find top-rated restaurants and local businesses, wherever you are<br>Decide on the best places to go with reviews, ratings, and pictures of foods and interiors<br>Plan your visit and see menus, make reservations, and find when places are typically busiest<br>Help others discover the best places by sharing reviews, photos and more<br>Save places you want to or often visit, and quickly find them later from any computer or device<br><br>Experience the Google Maps difference<br>Offline maps to search, get directions and use navigation without an internet connection<br>Street View and indoor imagery for restaurants, shops, museums and more<br>Indoor maps to quickly find your way inside big places like airports, malls and stadiums<br>Comprehensive, accurate maps in 220 countries and territories<br>Transit schedules and maps for over 15,000 cities<br>Detailed business information on over 100 million places<br><br>* Some features not available in all countries<br><br>___<br>Popular tips<br>• Get better location accuracy http://goo.gl/OgnOsv<br>• Improve voice navigation http://goo.gl/bDMK6P<br>• Report wrong directions http://goo.gl/hyOG6m<br><br>___<br>More tips<br>Visit the help center: http://goo.gl/zganXz<br>Become a beta tester: http://goo.gl/vLUcaJ",

        "updateNotes": "• Bug FixesBecome a beta tester: http://goo.gl/vLUcaJ",

        "cost": 0,

        "currency": null,

        "averageRating": null,

        "ratingCount": null,

        "installSize": 0,

        "createdAt": 1495579731000,

        "modifiedAt": 1495663372000,

        "vpnIds": [ ],

        "iconFile": {

            "fileName": "logo.png",

            "uuid": "ce7260f6-086a-4b73-b422-f7e17aa2479d",

            "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=ce7260f6-086a-4b73-b422-f7e17aa2479d&ext=PNG"

        },

        "installer": null,

        "phoneScreenshots": [

            {

                "fileName": "screen-shot-0.png",

                "uuid": "fd4f42e9-5fdb-4a9e-a5c3-ce71c69d7a49",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=fd4f42e9-5fdb-4a9e-a5c3-ce71c69d7a49&ext=PNG"

            },

            {

                "fileName": "screen-shot-1.png",

                "uuid": "8021484d-f67b-4d1f-b44b-42b665e44e35",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=8021484d-f67b-4d1f-b44b-42b665e44e35&ext=PNG"

            },

            {

                "fileName": "screen-shot-2.png",

                "uuid": "706a3467-9259-48f7-afff-f25b6e3ac59b",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=706a3467-9259-48f7-afff-f25b6e3ac59b&ext=PNG"

            },

            {

                "fileName": "screen-shot-3.png",

                "uuid": "6e99341f-c00e-4c3e-96a0-643d42842261",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=6e99341f-c00e-4c3e-96a0-643d42842261&ext=PNG"

            },

            {

                "fileName": "screen-shot-4.png",

                "uuid": "6c3a8c53-d470-49da-97a7-797a15b17039",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=6c3a8c53-d470-49da-97a7-797a15b17039&ext=PNG"

            },

            {

                "fileName": "screen-shot-5.png",

                "uuid": "b60ff489-a4b6-4840-908c-7b3f3a15f324",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=b60ff489-a4b6-4840-908c-7b3f3a15f324&ext=PNG"

            },

            {

                "fileName": "screen-shot-6.png",

                "uuid": "30d42977-c9e3-4ec8-83af-20688589e73a",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=30d42977-c9e3-4ec8-83af-20688589e73a&ext=PNG"

            },

            {

                "fileName": "screen-shot-7.png",

                "uuid": "0f4c538e-aef7-47d2-a7fd-e6156f023442",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=0f4c538e-aef7-47d2-a7fd-e6156f023442&ext=PNG"

            },

            {

                "fileName": "screen-shot-8.png",

                "uuid": "b5b11f03-6943-466e-8edc-a5c97426d3e1",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=b5b11f03-6943-466e-8edc-a5c97426d3e1&ext=PNG"

            },

            {

                "fileName": "screen-shot-9.png",

                "uuid": "ee5d36b9-436d-42ec-a977-48a65a53750c",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=ee5d36b9-436d-42ec-a977-48a65a53750c&ext=PNG"

            },

            {

                "fileName": "screen-shot-10.png",

                "uuid": "8f27afa5-6130-4bc7-a10a-093f6de35a8d",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=8f27afa5-6130-4bc7-a10a-093f6de35a8d&ext=PNG"

            },

            {

                "fileName": "screen-shot-11.png",

                "uuid": "98a4e274-85a0-40c3-9675-589d8bc8c34f",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=124&uuid=98a4e274-85a0-40c3-9675-589d8bc8c34f&ext=PNG"

            }

        ],

        "tabletScreenshots": [ ],

        "categories": [ ],

        "featuredApp": false,

        "featuredBanner": false,

        "bannerDescription": null,

        "bannerStyle": null,

        "hiddenInAppstore": false,

        "perAppVpnByLabelOnly": false,

        "dataProtectionRequired": false,

        "overrideURL": null,

        "quarantinable": false,

        "pushedOnRegistration": false,

        "backupPrevented": false,

        "cdnServiceEnabled": false,

        "cdnDisabled": false,

        "deviceSpaceId": 1,

        "spaces": [

            {

                "id": 1,

                "name": "Global",

                "parentId": 0,

                "path": "/1/"

            }

        ],

        "newApp": true,

        "minimumOsVersion": null,

        "androidWork": true,

        "androidWorkSilentInstall": true,

        "androidWorkBlockUninstall": false,

        "blockWidget": false,

        "autoUpdate": false,

        "permissionUpdateAvailable": false,

        "enterpriseConfigs": [

            {

                "name": "GM2",

                "restrictions": [  

         {  

            "title":"",

            "key":"",

            "value":"",

            "type":"",

            "values":[  

 

            ],

            "displayValue":""

         }

      ],,

                "permissions": [

                    {

                        "id": 118,

                        "name": "read your contacts",

                        "description": "Allows the app to read data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific individuals. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_CONTACTS"

                    },

                    {

                        "id": 119,

                        "name": "directly call phone numbers",

                        "description": "Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.",

                        "value": 1,

                        "displayValue": "Use Default",

                        "permissionId": "android.permission.CALL_PHONE"

                    },

                    {

                        "id": 120,

                        "name": "find accounts on the device",

                        "description": "Allows the app to get the list of accounts known by the device. This may include any accounts created by applications you have installed.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.GET_ACCOUNTS"

                    },

                    {

                        "id": 121,

                        "name": "modify or delete the contents of your USB storage",

                        "description": "Allows the app to write to the USB storage.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_EXTERNAL_STORAGE"

                    },

                    {

                        "id": 122,

                        "name": "precise location (GPS and network-based)",

                        "description": "Allows the app to get your precise location using the Global Positioning System (GPS) or network location sources such as cell towers and Wi-Fi. These location services must be turned on and available to your device for the app to use them. Apps may use this to determine where you are, and may consume additional battery power.",

                        "value": 1,

                        "displayValue": "Use Default",

                        "permissionId": "android.permission.ACCESS_FINE_LOCATION"

                    },

                    {

                        "id": 123,

                        "name": "approximate location (network-based)",

                        "description": "Allows the app to get your approximate location. This location is derived by location services using network location sources such as cell towers and Wi-Fi. These location services must be turned on and available to your device for the app to use them. Apps may use this to determine approximately where you are.",

                        "value": 1,

                        "displayValue": "Use Default",

                        "permissionId": "android.permission.ACCESS_COARSE_LOCATION"

                    },

                    {

                        "id": 124,

                        "name": "modify your contacts",

                        "description": "Allows the app to modify the data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific contacts. This permission allows apps to delete contact data.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_CONTACTS"

                    },

                    {

                        "id": 125,

                        "name": "write call log",

                        "description": "Allows the app to modify your device's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_CALL_LOG"

                    },

                    {

                        "id": 126,

                        "name": "record audio",

                        "description": "Allows the app to record audio with the microphone. This permission allows the app to record audio at any time without your confirmation.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.RECORD_AUDIO"

                    },

                    {

                        "id": 127,

                        "name": "read call log",

                        "description": "Allows the app to read your device's call log, including data about incoming and outgoing calls. This permission allows apps to save your call log data, and malicious apps may share call log data without your knowledge.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_CALL_LOG"

                    },

                    {

                        "id": 128,

                        "name": "read the contents of your USB storage",

                        "description": "Allows the app to read the contents of your USB storage.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_EXTERNAL_STORAGE"

                    },

                    {

                        "id": 129,

                        "name": "read phone status and identity",

                        "description": "Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_PHONE_STATE"

                    }

                ],

                "labels": [

                    {

                        "id": -10,

                        "name": "Android"

                    },

                    {

                        "id": -6,

                        "name": "Company-Owned"

                    }

                ]

            },

            {

                "name": "GM1",

                "restrictions": [ ],

                "permissions": [

                    {

                        "id": 118,

                        "name": "read your contacts",

                        "description": "Allows the app to read data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific individuals. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.",

                        "value": 0,

                        "displayValue": "Accept",

                        "permissionId": "android.permission.READ_CONTACTS"

                    },

                    {

                        "id": 119,

                        "name": "directly call phone numbers",

                        "description": "Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.CALL_PHONE"

                    },

                    {

                        "id": 120,

                        "name": "find accounts on the device",

                        "description": "Allows the app to get the list of accounts known by the device. This may include any accounts created by applications you have installed.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.GET_ACCOUNTS"

                    },

                    {

                        "id": 121,

                        "name": "modify or delete the contents of your USB storage",

                        "description": "Allows the app to write to the USB storage.",

                        "value": 0,

                        "displayValue": "Deny",

                        "permissionId": "android.permission.WRITE_EXTERNAL_STORAGE"

                    },

                    {

                        "id": 122,

                        "name": "precise location (GPS and network-based)",

                        "description": "Allows the app to get your precise location using the Global Positioning System (GPS) or network location sources such as cell towers and Wi-Fi. These location services must be turned on and available to your device for the app to use them. Apps may use this to determine where you are, and may consume additional battery power.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.ACCESS_FINE_LOCATION"

                    },

                    {

                        "id": 123,

                        "name": "approximate location (network-based)",

                        "description": "Allows the app to get your approximate location. This location is derived by location services using network location sources such as cell towers and Wi-Fi. These location services must be turned on and available to your device for the app to use them. Apps may use this to determine approximately where you are.",

                        "value": 0,

                        "displayValue": "Deny",

                        "permissionId": "android.permission.ACCESS_COARSE_LOCATION"

                    },

                    {

                        "id": 124,

                        "name": "modify your contacts",

                        "description": "Allows the app to modify the data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific contacts. This permission allows apps to delete contact data.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_CONTACTS"

                    },

                    {

                        "id": 125,

                        "name": "write call log",

                        "description": "Allows the app to modify your device's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_CALL_LOG"

                    },

                    {

                        "id": 126,

                        "name": "record audio",

                        "description": "Allows the app to record audio with the microphone. This permission allows the app to record audio at any time without your confirmation.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.RECORD_AUDIO"

                    },

                    {

                        "id": 127,

                        "name": "read call log",

                        "description": "Allows the app to read your device's call log, including data about incoming and outgoing calls. This permission allows apps to save your call log data, and malicious apps may share call log data without your knowledge.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_CALL_LOG"

                    },

                    {

                        "id": 128,

                        "name": "read the contents of your USB storage",

                        "description": "Allows the app to read the contents of your USB storage.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_EXTERNAL_STORAGE"

                    },

                    {

                        "id": 129,

                        "name": "read phone status and identity",

                        "description": "Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_PHONE_STATE"

                    }

                ],

                "labels": [

                    {

                        "id": -10,

                        "name": "Android"

                    }

                ]

            },

            {

                "name": "DEFAULT_CONFIG",

                "restrictions": [ ],

                "permissions": [

                    {

                        "id": 118,

                        "name": "read your contacts",

                        "description": "Allows the app to read data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific individuals. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.",

                        "value": 0,

                        "displayValue": "Deny",

                        "permissionId": "android.permission.READ_CONTACTS"

                    },

                    {

                        "id": 119,

                        "name": "directly call phone numbers",

                        "description": "Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.CALL_PHONE"

                    },

                    {

                        "id": 120,

                        "name": "find accounts on the device",

                        "description": "Allows the app to get the list of accounts known by the device. This may include any accounts created by applications you have installed.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.GET_ACCOUNTS"

                    },

                    {

                        "id": 121,

                        "name": "modify or delete the contents of your USB storage",

                        "description": "Allows the app to write to the USB storage.",

                        "value": 0,

                        "displayValue": "Accept",

                        "permissionId": "android.permission.WRITE_EXTERNAL_STORAGE"

                    },

                    {

                        "id": 122,

                        "name": "precise location (GPS and network-based)",

                        "description": "Allows the app to get your precise location using the Global Positioning System (GPS) or network location sources such as cell towers and Wi-Fi. These location services must be turned on and available to your device for the app to use them. Apps may use this to determine where you are, and may consume additional battery power.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.ACCESS_FINE_LOCATION"

                    },

                    {

                        "id": 123,

                        "name": "approximate location (network-based)",

                        "description": "Allows the app to get your approximate location. This location is derived by location services using network location sources such as cell towers and Wi-Fi. These location services must be turned on and available to your device for the app to use them. Apps may use this to determine approximately where you are.",

                        "value": 0,

                        "displayValue": "Accept",

                        "permissionId": "android.permission.ACCESS_COARSE_LOCATION"

                    },

                    {

                        "id": 124,

                        "name": "modify your contacts",

                        "description": "Allows the app to modify the data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific contacts. This permission allows apps to delete contact data.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_CONTACTS"

                    },

                    {

                        "id": 125,

                        "name": "write call log",

                        "description": "Allows the app to modify your device's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.WRITE_CALL_LOG"

                    },

                    {

                        "id": 126,

                        "name": "record audio",

                        "description": "Allows the app to record audio with the microphone. This permission allows the app to record audio at any time without your confirmation.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.RECORD_AUDIO"

                    },

                    {

                        "id": 127,

                        "name": "read call log",

                        "description": "Allows the app to read your device's call log, including data about incoming and outgoing calls. This permission allows apps to save your call log data, and malicious apps may share call log data without your knowledge.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_CALL_LOG"

                    },

                    {

                        "id": 128,

                        "name": "read the contents of your USB storage",

                        "description": "Allows the app to read the contents of your USB storage.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_EXTERNAL_STORAGE"

                    },

                    {

                        "id": 129,

                        "name": "read phone status and identity",

                        "description": "Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.",

                        "value": 0,

                        "displayValue": "User Prompt",

                        "permissionId": "android.permission.READ_PHONE_STATE"

                    }

                ],

                "labels": [ ]

            }

        ],

        "versionRequired": false,

        "codeVersion": "",

        "mandatory": false,

        "mandatoryOverwrite": true,

        "secureApp": false,

        "enforceVersion": false,

        "vpnNames": null

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.get.app.success",

            "localizedMessage": "App successfully fetched."

        }

    ]

}

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

HTTP method

GET

Request URI

api/v2/appstore/itunes

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Request body

Data Type: Number

Device space ID of the administrator.

1

query

Required

Parameter Type: Request body

Data Type: String

Keyword from the app name or description.

mobileiron

countryCode

Required

Parameter Type: Request body

Data Type: String

Two character ISO country code.

US

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

 

                averageUserRatingForCurrentVersion

 

    contentAdvisoryRating

 

    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

 

                userRatingCountForCurrentVersion

 

    version

 

    wrapperType

 

    catalogVer

 

    bundleId

 

    free

 

    ipadOnly

 

Sample request and response

Request

curl -G -k -sS -u <userName>:<password> 'https://[Ivanti EPMM]/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 [email protected]™ 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 colleagues.\n• Test and profile your network connection speeds and track your results geographically.\n• Authenticate to MobileIron AppConnect secure applications.\n\nNOTE: The [email protected]™ 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 [email protected]™ 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",

                "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 [email protected]™ Client",

            "trackId": 320659794,

            "trackName": "MobileIron [email protected]™ 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

        }

    ]

}

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

HTTP method

POST

Request URI

api/v2/appstore/itunes

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

trackId

Required

Parameter Type: Query

Data Type: Long

App’s trackId on iTunes.

530168168

countryCode

Parameter Type: Query

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.

US

languageCode

Parameter Type: Query

Data Type: String

Default: The browser's locale language code.

The ISO code of the language for the description of the app, if available.

EN

forceUpdate

Parameter Type: Query

Data Type: Boolean

Default: True

Whether the existing app with the same bundle ID should be overwritten if it exists.

False

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

 

    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

 

    provisioningProfile

 

    messagingSupported

 

Sample request and response

Request

curl -X POST -G -k -sS -u <userName>:<password> 'https://[Ivanti EPMM]/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 filter 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 bookings.\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 Balance updates after stay has been completed.\n\nContinued use of GPS running in the background can dramatically decrease battery life.",

    "updateNotes": "- Optimised for iOS 9!\n- We've made some improvements on our side so you can better 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": [

      

    ],

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

    }

  ]

Import a Google Play app

This call imports a Google Play app by bundleID, allowing you to configure the floowing app settings:

Silent install

Block uninstall

Android for Work

Auto update app

Block widget

Quarantine app when device is quarantined

Prerequisite

To use this API, Android Enterprise must be enabled on Ivanti EPMM. See “Setting up Ivanti EPMM for Android Enterprise” in the Ivanti EPMM Device Management Guide for Android and Android Enterprise Devices.

Required Role

See Authentication 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

HTTP method

POST

Request URI

api/v2/appstore/googleplay/quickimport

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

bundleId

Required

Parameter Type: Query

Data Type: String

The bundleID of the Google Play app to import. You can use the call, App Store Management to find the bundleID.

com.spotify.music

androidWork

Required

Parameter Type: Request body

Data Type: Boolean

Specifies whether to manage the app with Android for Work.

Valid values:

true

false

"androidWork":"true",

autoUpdate

Required

Parameter Type: Request body

Data Type: Boolean

Specifies whether to allow auto update of the app.

Valid values:

true

false

"autoUpdate":"true",

 

androidWorkSilentInstall

Required

Parameter Type: Request body

Data Type: Boolean

Specifies whether to allow silent install of the app.

Valid values:

true

false

"androidWorkSilentInstall":"false",

blockWidget

Required

Parameter Type: Request body

Data Type: Boolean

Specifies whether to block intalling the app as a widget.

Valid values:

true

false

"blockWidget":"true",

androidWorkBlockUninstall

Required

Parameter Type: Request body

Data Type: Boolean

Specifies whether to block uninstall of the app.

Valid values:

true

false

"androidWorkBlockUninstall":"true",

androidWorkQuarantineApp

Required

Parameter Type: Request body

Data Type: Boolean

Specifies whether to quarantine the app when the device is quarantined.

Valid values:

true

false

"androidWorkQuarantineApp":"false"

 

androidWorkManagedDeviceSilentInstall

Parameter Type: Request body

Data Type: Boolean

Specifies whether this will be a Android managed device silent install.

Valid values:

true

false

"androidWorkManagedDeviceSilentInstall":"false",

autoInstallMode

Parameter Type: Request body

Data Type: String

Specifies the type of install.

Valid values:

forceAutoInstall

autoInstallOnce

"autoInstallMode": "forceAutoInstall",

autoInstallPriority

Parameter Type: Request body

Data Type: String

Specifies the priority of the install

Valid values:

high

medium

low

"autoInstallPriority": "medium",

networkTypeConstraint

Parameter Type: Request body

Data Type: String

Specifies on which types of network the device is using to install the app.

Valid values:

anyNetwork

unmeteredNetwork

"networkTypeConstraint": "anyNetwork",

chargingStateConstraint

Parameter Type: Request body

Data Type: String

Specifies whether the device must be charged to install the app.

Valid values:

chargingNotRequired

chargingRequired

"chargingStateConstraint": "chargingNotRequired",

deviceIdleStateConstraint

Parameter Type: Request body

Data Type: String

Specifies whether the device must be idle to allow installation of the app.

Valid values:

deviceIdleNotRequired

deviceIdleRequired

"deviceIdleStateConstraint": "deviceIdleNotRequired"

Response fields

 

Field

Description

results

 

    AppId

The ID of the app in the app catalog.

messages

 

        type

Type is Info for a successful call and Error for an unsuccessful call.

        messageKey

 

        localizedMessage

 

Example request

curl -X POST \

  'https://[Ivanti EPMM]/api/v2/appstore/googleplay/quickimport?bundleId=com.facebook.orca&adminDeviceSpaceId=1' \

  -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ==' \

  -H 'Content-Type: application/json' \

  -d '{

"androidWork":"true",

"autoUpdate":"true",

"androidWorkSilentInstall":"false",

"blockWidget":"true",

"androidWorkBlockUninstall":"true",

"androidWorkQuarantineApp":"false",

"androidWorkManagedDeviceSilentInstall":"false",

"autoInstallMode": "forceAutoInstall",

"autoInstallPriority": "medium",

"networkTypeConstraint": "anyNetwork",

"chargingStateConstraint": "chargingNotRequired",

"deviceIdleStateConstraint": "deviceIdleNotRequired"

}'

Example responses

Success

{

    "results": {

        "AppId": 125

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.import.app.success",

            "localizedMessage": "App successfully imported."

        }

    ]

}

App already exists

{

    "messages": [

        {

            "type": "Error",

            "messageKey": "com.mobileiron.vsp.messages.appstore.app.already.exists",

            "localizedMessage": "An app with ID 'com.facebook.orca' already exists.",

            "messageParameters": [

                "com.facebook.orca"

            ]

        }

    ]

}

App not found

{

    "messages": [

        {

            "type": "Error",

            "messageKey": "com.mobileiron.vsp.messages.appstore.apps.app.not.found",

            "localizedMessage": "No app found with id 'com.facebook.dorca'",

            "messageParameters": [

                "com.facebook.dorca"

            ]

        }

    ]

}

 

Search for a Windows app

This call searches for a Windows app.

Required Role

See Authentication 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

HTTP method

GET

Request URI

/api/v2/appstore/windowsStore

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

searchText

Required

Parameter Type: Query

Data Type: String

Keyword from the app name or description.

Apps%40Work

storeType

Required

Parameter Type: Query

Data Type: String

They type of Windows store to search. Valid values are:

WIN_PHONE

WIN8

WIN10

WIN8

languageCode

Parameter Type: Query

Data Type: String

Default: The browser's locale language code.

The ISO code of the language for the description of the app, if available.

en-us

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

 

        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://[Ivanti EPMM]/api/v2/appstore/windowsStore?searchText=Apps%40Work&languageCode=en-us&limit=50&storeType=WIN8&adminDeviceSpaceId=1'

Response

{

    "results": [

        {

            "title": "[email protected]",

            "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/[email protected]/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"

        },

        {

            "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

}

Import a public Windows app

This call imports a public Windows app.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/windowsStore/{appId}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

appId

Required

Parameter Type: Path and Request body

Data Type: String

You repeat this value in the request path and request body.

ccf8eda8-f26a-4663-a877-68d8a8e8e247

version

Required

Parameter Type: Request body

Data Type: String

Send N/A if no app version.

N/A

title

Parameter Type: Request body

Data Type: String

app description.

Canvas Business Forms, Apps, Work Orders, Dispatch & Inspections

storeType

Required

Parameter Type: Query

Data Type: String

They type of Windows store to search. Valid values are:

WIN_PHONE

WIN8

WIN10

WIN8

Response fields

Field

Description

results

Container for the results fields below.

    id

 

    name

 

    platformType

 

    platformCode

 

    version

 

    altVersion

 

    displayVersion

 

    appId

 

    creatorType

 

    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.

        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://[Ivanti EPMM]/api/v2/appstore/windowsStore/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.

 

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=getAppArtifact&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": [ ]

        }

    ]

}

 

Upload an in house app

Using MultipartFile, 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. Response will contain the AppCatalogDataResponse, which will be different depending on the OS of the app that was uploaded.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/inhouse

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

installer

Required

Parameter Type: Request body

Data Type: Multipart form

This is an iOS, Android, or Windows app installer file ready for deployment.

OnHoliday-resigned.ipa

Response fields - iOS

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 '[email protected]' 'https://[Ivanti EPMM]/api/v2/appstore/inhouse?adminDeviceSpaceId=1'

Response

{

    "results":  

        {

            "MESSAGING_SUPPORTED":    false,

            "appid":  "115",

            "applogoname":    "[email protected]",

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

        }

    ]

}

Clone an app

This call clones an app which is available in its parent/child spaces into the present/active/logged-in space, if the app is not available in present/active/logged-in space.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/apps/clone/{id}

Request parameters

Parameter

Description

Sample Value

id

Required

Parameter Type: Request path

Data Type: string

ID of the app in the app catalog.

146

targetSpaceId

Required

Parameter Type: Request body

Data Type: String

Space ID to which to clone the app.

1

sourceSpaceId

Required

Parameter Type: Request body

Data Type: String

Space ID from which to clone the app.

21

nativeAppStoreCert

Required for messaging apps

Parameter Type: Request body

Data Type: String

Native app store certificate.

 

nativeAppStoreCertPassword

Required for messaging apps

Parameter Type: Request body

Data Type: String

Native app store certificate password.

 

Sample request and response

Request

curl -X POST -F "sourceSpaceId=21" "https://[Ivanti EPMM]/api/v2/appstore/apps/clone/146?targetSpaceId=1"

Response

The response is a return of cloned app details. It is a lengthy response. The important portion is:

"spaces": [

      {

        "id": 1,

        "name": "Global",

        "parentId": 0,

        "path": "/1/"

      },

      {

        "id": 21,

        "name": "sp71",

        "parentId": 1,

        "path": "/1/21/"

You can use this portion to check that the call successfully cloned the app to the target directory.

Here is a fuller response, with some of the descriptive text removed for brevity:

{

    "results": {

        "id": 146,

        "name": "ESPNcricinfo Cricket",

        "platformType": "IPhone",

        "platformCode": "I",

        "version": null,

        "altVersion": "",

        "displayVersion": null,

        "appId": "com.espn.cricinfo",

        "creatorType": "ADMIN",

        "catalogType": "APP",

        "publicAppStoreType": "ITUNES",

        "publicStoreId": "417408017",

        "developerName": "ESPN",

        "description": "The official ESPNcricinfo cricket app is the only app that you would...",

        "updateNotes": "- Bug fixes",

        "cost": 0,

        "currency": "USD",

        "averageRating": 3.5,

        "ratingCount": 3012,

        "installSize": 22666240,

        "createdAt": 1484817764000,

        "modifiedAt": 1487314913000,

        "vpnIds": [ ],

        "iconFile": {

            "fileName": "logo.png",

            "uuid": "875532ba-4f30-4d27-8802-1bfd7f828330",

            "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=146&uuid=875532ba-4f30-4d27-8802-1bfd7f828330&ext=PNG"

        },

        "installer": null,

        "phoneScreenshots": [

            {

                "fileName": "screen-shot-0.png",

                "uuid": "bc3bd137-18d7-46ed-93f9-55f7a26550c2",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=146&uuid=bc3bd137-18d7-46ed-93f9-55f7a26550c2&ext=PNG"

            },

            {

                "fileName": "screen-shot-1.png",

                "uuid": "4ad4bd0f-3d98-45e5-afea-4c90de931c67",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=146&uuid=4ad4bd0f-3d98-45e5-afea-4c90de931c67&ext=PNG"

            },

            {

                "fileName": "screen-shot-2.png",

                "uuid": "f8075512-a9c0-4790-8af0-31b24d11b90d",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=146&uuid=f8075512-a9c0-4790-8af0-31b24d11b90d&ext=PNG"

            },

            {

                "fileName": "screen-shot-3.png",

                "uuid": "01deaa2b-99d8-41fd-887d-0cfb041efff2",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=146&uuid=01deaa2b-99d8-41fd-887d-0cfb041efff2&ext=PNG"

            },

            {

                "fileName": "screen-shot-4.png",

                "uuid": "258f2f44-6239-4a94-b8eb-6960eca2528f",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=146&uuid=258f2f44-6239-4a94-b8eb-6960eca2528f&ext=PNG"

            }

        ],

        "tabletScreenshots": [ ],

        "categories": [ ],

        "featuredApp": false,

        "featuredBanner": false,

        "bannerDescription": null,

        "bannerStyle": null,

        "hiddenInAppstore": false,

        "perAppVpnByLabelOnly": false,

        "dataProtectionRequired": false,

        "overrideURL": null,

        "quarantinable": false,

        "pushedOnRegistration": false,

        "backupPrevented": false,

        "cdnServiceEnabled": false,

        "cdnDisabled": false,

        "deviceSpaceId": 1,

        "spaces": [

            {

                "id": 1,

                "name": "Global",

                "parentId": 0,

                "path": "/1/"

            },

            {

                "id": 21,

                "name": "sp71",

                "parentId": 1,

                "path": "/1/21/"

            }

        ],

        "newApp": false,

        "minimumOsVersion": "1080000",

        "apnsCertificate": null,

        "ipadOnly": false,

        "noCostApp": true,

        "provisioningProfile": null,

        "messagingSupported": false,

        "allowUpdateFromUnmanagedToManaged": false,

        "profileExpirationDate": null,

        "removeAppWhenMDMDisabled": true,

        "pushedOnQuarantine": false,

        "codeVersion": "",

        "autoUpdateEnabled": false,

        "appStoreDetailUrl": "https://sai101-vm.hyd.mobileiron.com/mifs/asfV3x/appstore?appid=146",

        "oneTouchAppConfigs": [ ]

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.update.app.success",

            "localizedMessage": "App successfully updated."

        }

    ]

}

 

Add a web application

This call adds a web application

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/webapp

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

name

Required

Parameter Type: Request body

Data Type: String

Name of the web application.

Online Meet Entry

webAppUrl

Parameter Type: Request body

Data Type: String

URL of the web application.

http://ome.swimconnection.com/meets

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

 

        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

 

    version

 

    platformType

 

    name

 

    id

 

Sample request and response

Request

curl -X POST -G -k -sS -u <userName>:<password> 'https://[Ivanti EPMM]/api/v2/appstore/webapp?adminDeviceSpaceId=1' --data 'name=Online%20Meet%20Entries&webAppUrl=http%3A%2F%2Fome.swimconnection.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://[Ivanti EPMM]/mifs/image/app.html?command=getAppResource&action=getAppResource&uuid=f31b507d8e094ddeac2cbd84dc144b82&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,

        "webAppUrl": "http://ome.swimconnection.com/meets"

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.import.app.success",

            "localizedMessage": "App successfully imported."

        }

    ]

}

 

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

HTTP method

POST

Request URI

/api/v2/appstore/apps/{id}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

id

Required

Parameter Type: Path

Data Type: Long

The app’s ID. You can find it by issuing the GET /api/v2/appstore/apps call without an ID.

2

appData

Required

Parameter Type: Request

Data Type: Json string

An url-encoded JSON string representation of the app fields to modify.

JSON example, URL decoded:

{

    "name": "MobileIron QA",

    "description": "",

    "featuredApp": true,

    "perAppVpnByLabelOnly": false,

    "pushedOnRegistration": true,

    "enforceVersion": true,

    "overrideURL": "",

    "cdnDisabled": true,

    "vpnIds": [ ],

    "categories": [ ],

    "deletedResources": [ ],

    "versionRequired": null,

    "minimumOsVersion": "21",

    "androidWork": false,

    "autoUpdate": null,

    "androidWorkSilentInstall": null,

    "blockWidget": false,

    "androidWorkBlockUninstall": false,

    "enableMobileIronAccess": false,

    "androidWorkQuarantineApp": true,

    "androidWorkThirdPartyAppRuntimePermissions": false,

    "androidWorkHideThirdPartyApps": false,

    "androidWorkManagedCertificates": false,

    "accessProfileId": 0,

    "featuredBanner": false,

    "androidWorkManagedDeviceSilentInstall": false,

    "androidWorkSelfHostedApkLicense": "",

    "displayMessage": false,

    "enterpriseConfigs": [ ]

}

To update Android For Work app data, a valid license value for androidWorkSelfHostedApkLicense is mandatory. You can find the license value using GET /api/v2/appstore/apps/{id}.

Available fields vary by platform type. See Common appData request fields, iOS appData request fields, and Android appData request fields below.

See Description column.

icon

Parameter Type: Request

Data Type: Array of MultipartFile

Icon file to replace any existing icon.

[email protected]/Users/ssmith/icon.png

phoneScreenshot

Parameter Type: Request

Data Type: Array of MultipartFile

An array of phone screenshot files to add to existing screenshots.

[email protected]/Users/ssmith/ss1.png

tabletScreenshot

Parameter Type: Request

Data Type: Array of MultipartFile

An array of tablet screenshot files to add to existing screenshots.

[email protected]/Users/ssmith/tss1.png

Common appData request fields

 

Field

Description

Sample Value

platformType

Required

Data Type: String

The platform type on which the app runs.

iphone

name

Data Type: String

 

description

Data Type: String

 

publicStoreId

Data Type: String

 

featuredApp

Data Type: Boolean

 

perAppVpnByLabelOnly

Data Type: Boolean

 

quarantinable

Data Type: Boolean

 

pushedOnRegistration

Data Type: Boolean

 

backupPrevented

Data Type: Boolean

 

dataProtectionRequired

Data Type: Boolean

 

overrideURL

Data Type: String

 

cdnDisabled

Data Type: Boolean

 

vpnIds

Data Type: Integer

VPN ID's. Replaces any existing VPN ID's

 

categories

Field Type: Request body

Data Type: Integer

ID's of categories. Replaces any existing category associations.

 

deletedResources

Data Type: String

UUID's of resources to delete.

 

iOS appData request fields

 

Field

Description

Sample Value

noCostApp

Required

Data Type: Boolean

 

hiddenInAppstore

Required

Data Type: Boolean

 

ipadOnly

Data Type: Boolean

 

Android appData request fields

 

Field

Description

Sample Value

mandatory

Required

Data Type: Boolean

 

versionRequired

Required

Data Type: Boolean

Use for AppConnect Android apps.

 

enforceVersion

Required

Data Type: Boolean

Use for non-AppConnect Android apps.

 

minimumOsVersion

Data Type: String

 

androidWork

Data Type: Boolean

 

silentInstall

Field Type: Request body

Data Type: Boolean

 

uninstallBlocked

Data Type: Boolean

 

restrictions

Data Type: Object

Array of Android For Work app restrictions.

[{"displayValue": null, "values": null, "value": "false", "type": "BOOL","key": "can_read_personal_emails", "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 - URL decoded

curl -X POST \

  'https://[Ivanti EPMM]/api/v2/appstore/apps/121?adminDeviceSpaceId=1&appData={"name":"Cookbook","description":"","featuredApp":true,"perAppVpnByLabelOnly":false,"pushedOnRegistration":true,"enforceVersion":true,"overrideURL":"","cdnDisabled":true,"vpnIds":[],"categories":[],"deletedResources":[],"versionRequired":null,"minimumOsVersion":"21","androidWork":false,"autoUpdate":null,"androidWorkSilentInstall":null,"blockWidget":false,"androidWorkBlockUninstall":false,"enableMobileIronAccess":false,"androidWorkQuarantineApp":true,"androidWorkThirdPartyAppRuntimePermissions":false,"androidWorkHideThirdPartyApps":false,"androidWorkManagedCertificates":false,"accessProfileId":0,"featuredBanner":false,"androidWorkManagedDeviceSilentInstall":false,"androidWorkSelfHostedApkLicense":"","displayMessage":false,"enterpriseConfigs":[]} -F "appData=</Users/ssmith/editreq2.json" -F [email protected]/Users/ssmith/ss1.png -F [email protected]/Users/ssmith/ss2.png -F [email protected]/Users/ssmith/icon.png

  -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ==' \

  -H 'Content-Type: application/json' \

 

Response

  {

    "results": {

        "id": 121,

        "name": "Cookbook",

        "platformType": "Android",

        "platformCode": "A",

        "version": "10.4.1.0.25R",

        "altVersion": "530",

        "displayVersion": "10.4.1.0.25R",

        "appId": "com.mobileiron.qa",

        "creatorType": "ADMIN",

        "catalogType": "APP",

        "publicAppStoreType": null,

        "publicStoreId": null,

        "developerName": "",

        "description": "",

        "updateNotes": "",

        "cost": null,

        "currency": null,

        "averageRating": null,

        "ratingCount": null,

        "installSize": 73324046,

        "createdAt": 1566329105000,

        "modifiedAt": 1566411412000,

        "vpnIds": [],

        "iconFile": {

            "fileName": "icon.png",

            "uuid": "c880eead-109a-4172-958d-dab521d08984",

            "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=121&uuid=c880eead-109a-4172-958d-dab521d08984&ext=PNG"

        },

        "installer": {

            "fileName": "qa-MIClient-10.4.1.0.apk",

            "uuid": "b21a3d4c-53f0-4034-8538-5e8dc2a82e51"

        },

        "phoneScreenshots": [],

        "tabletScreenshots": [],

        "categories": [],

        "featuredApp": true,

        "featuredBanner": false,

        "bannerDescription": null,

        "bannerStyle": null,

        "hiddenInAppstore": false,

        "perAppVpnByLabelOnly": false,

        "dataProtectionRequired": false,

        "overrideURL": "",

        "quarantinable": true,

        "pushedOnRegistration": true,

        "backupPrevented": true,

        "cdnServiceEnabled": false,

        "cdnDisabled": true,

        "deviceSpaceId": 1,

        "spaces": [

            {

                "id": 1,

                "name": "Global",

                "parentId": 0,

                "path": "/1/"

            }

        ],

        "newApp": true,

        "minimumOsVersion": "21",

        "previousAppId": null,

        "androidWork": false,

        "androidWorkSilentInstall": false,

        "androidWorkManagedDeviceSilentInstall": false,

        "androidWorkBlockUninstall": false,

        "androidWorkQuarantineApp": true,

        "androidWorkThirdPartyAppRuntimePermissions": false,

        "androidWorkHideThirdPartyApps": false,

        "androidWorkManagedCertificates": false,

        "enableMobileIronAccess": false,

        "accessProfileId": "0",

        "androidWorkGooglePlayDistributionEnabled": true,

        "androidWorkSelfHostedApkDefinitionUrl": null,

        "androidWorkSelfHostedApkDefinitionStatus": null,

        "androidWorkSelfHostedApkLicense": null,

        "androidWorkSelfHostedApkStatus": "Status: Not available for download",

        "blockWidget": false,

        "autoUpdate": false,

        "permissionUpdateAvailable": false,

        "enterpriseConfigs": [],

        "versionRequired": false,

        "codeVersion": "530",

        "mandatory": false,

        "mandatoryOverwrite": false,

        "secureApp": false,

        "enforceVersion": true,

        "vpnNames": null

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.get.app.success",

            "localizedMessage": "App successfully fetched."

        }

    ]

}

Upload app screenshot

This call uploads an app screenshot.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/apps/{id}/{type}/screenshots

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

id

Required

Parameter Type: Path

Data Type: Number

The id of the app whose screenshot to upload.

2

type

Required

Parameter Type: Path

Data Type: String

Type of screenshot to upload. Valid values are:

phone

tablet

phone

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://[Ivanti EPMM]/api/v2/appstore/apps/2/tablet/screenshots?adminDeviceSpaceId=1' -F [email protected]/Users/srolls/Downloads/evernote_tablet2.png

Response

{

  "messages": [

    {

      "localizedMessage": "\"Screenshot added successfully.\"",

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

  }

}

Get all app categories

This call gets a list of all app categories.

Required Role

See Authentication 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

HTTP method

GET

Request URI

/api/v2/appstore/categories

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

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://[Ivanti EPMM]/api/v2/appstore/categories?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

    }

  ]

}

Get information about a specific app category

This call returns information about a specific app category.

Required Role

See Authentication 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

HTTP method

GET

Request URI

/api/v2/appstore/categories/{id}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

id

Required

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.

2

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://[Ivanti EPMM]/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

  }

}

Create an app category

This call creates an app category.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/categories

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

name

Required

Parameter Type: Request body

Data Type: String

Name of the category to create.

Action Game

description

Required

Parameter Type: Request body

Data Type: String

Description of the category to create.

Action games with multiple player capability.

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://[Ivanti EPMM]/api/v2/appstore/categories?adminDeviceSpaceId=1'

Response

{

  "messages": [

    {

      "localizedMessage": "Category created successfully.",

      "messageKey": "com.mobileiron.vsp.messages.appstore.create.category.success",

      "type": "Info"

    }

  ],

  "results": 1

}

Edit an app category

This call edits an app category.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/categories/{id}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

name

Parameter Type: Request body

Data Type: String

Updated category name.

Memory Game

description

Parameter Type: Request body

Data Type: String

Updated category description.

Memory games with multiple player capability.

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://[Ivanti EPMM]/api/v2/appstore/categories/1?adminDeviceSpaceId=1'

Response

{

  "messages": [

    {

      "localizedMessage": "Category successfully updated.",

      "messageKey": "com.mobileiron.vsp.messages.appstore.update.category.success",

      "type": "Info"

    }

  ]

}

Delete an app category

This call deletes an app category.

Required Role

See Authentication 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

HTTP method

DELETE

Request URI

/api/v2/appstore/categories/{id}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

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://[Ivanti EPMM]/api/v2/appstore/categories/2?adminDeviceSpaceId=1'

Response

{

  "messages": [

    {

      "localizedMessage": "Category successfully updated.",

      "messageKey": "com.mobileiron.vsp.messages.appstore.delete.category.success",

      "type": "Info"

    }

  ]

}

Get per app list of VPNs

This call gets the list of available per app VPNs.

Required Role

See Authentication 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

HTTP method

GET

Request URI

/api/v2/appstore/perappvpns

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

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://[Ivanti EPMM]/api/v2/appstore/perappvpns?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

    }

  ]

}

Delete an app

This call removes an app.

Required Role

See Authentication 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

HTTP method

DELETE

Request URI

/api/v2/appstore/apps/{ids}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

ids

Required

Parameter Type: Query

Data Type: Number

ID of the app to remove.

119

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://[Ivanti EPMM]/api/v2/appstore/apps/119?adminDeviceSpaceId=1'

Response

{

  "messages": [

    {

      "type": "Info",

      "messageKey": "com.mobileiron.vsp.messages.appstore.remove.app.success",

      "localizedMessage": "App successfully removed."

    }

  ]

}

Send a message to an app

This call sends a new install or update message to an app.

Sending an installation request to an app

If you are using this call to send an installation request to an app, then you need to send two calls:

1. Convert the target app to managed: Include this parameter and setting, convertToManaged=true, to convert the app to managed.
2. Send the installation request to the app: Include these parameters and settings, installIncluded=true and updateIncluded=true, to send installation request.

Required Role

See Authentication 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

HTTP method

POST

Request URI

/api/v2/appstore/apps/{id}/message

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

id

Required

Parameter Type: Path

Data Type: Number

ID of the app to which to send the message.

117

installIncluded

Parameter Type: Request body

Data Type: Boolean

Default: false

If true, send message for new installs. See Sending an installation request to an app for information about how to use this parameter to send an installation request to an app.

false

updateIncluded

Parameter Type: Request body

Data Type: Boolean

Default: false

If true, send message for updates. See Sending an installation request to an app for information about how to use this parameter to send an installation request to an app.

false

pushApp

Parameter Type: Request body

Data Type: Boolean

Default: false

If true, push the app.

false

convertToManaged

Parameter Type: Boolean

Data Type: Number

Default: false

If true, convert un-managed to managed app. See Sending an installation request to an app for information about how to use this parameter to send an installation request to an app.

false

deviceUuids

Parameter Type: Request body

Data Type: Array of string

Default: null

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.

["a2b149e8-817d-484b-874c-e2113b8524b8", "a8733819-eea9-4e43-b87e-2824d02f7bcf"]

Response fields

Field

Description

messages

Container for messages information.

    messageParameters

Parameters for the localized message.

    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, "deviceUuids":["a2b149e8-817d-484b-874c-e2113b8524b8", "a8733819-eea9-4e43-b87e-2824d02f7bcf"] }' -XPOST 'https://[Ivanti EPMM]/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

}

Apply Apps To Labels

This call applies apps to labels.

Required Role

See Authentication 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

HTTP method

PUT

Request URI

/api/v2/appstore/apps/{appIds}/labels/{labelIds}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

appIds

Required

Parameter Type: Path

Data Type: Long

IDs of the apps to apply to labels.

119

labelIds

Parameter Type: Request body

Data Type: Number

ID of the labels to which to apply the apps.

-1

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://[Ivanti EPMM]/api/v2/appstore/apps/119,121/labels/-1,-11?adminDeviceSpaceId=1'

Response

{

  "messages": [

    {

      "type": "Info",

      "messageKey": "com.mobileiron.vsp.messages.appstore.apply.label.success",

      "localizedMessage": "App(s) successfully applied to label(s)."

    }

  ]

}

Apply App to Labels with Track

This call applies an app to labels, with a track. A track can be something like beta, production, or alpha. The trackId parameter description below describes how to find the tracks available to you. You can also use this call to specify whether an app is mandatory.

Required Role

See Authentication 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

HTTP method

PUT

Request URI

/api/v2/appstore/apps/{id}/labels

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Number

Device space ID of the administrator.

1

id

Required

Parameter Type: Path

Data Type: Number

IDs of the apps to apply to labels. Separate multiple IDs with a comma.

105

labels

Parameter Type: Request body

Data Type: String

Container for request body.

{

  "labels": [

    {

    "label": "12",

    "trackId": "FFFFFFFF",

    "mandatory": true

}

  ]

}'

label

Parameter Type: Request body

Data Type: Number

ID of the labels to which to apply the app.

{

  "labels": [

    {

    "label": "12",

    "trackId": "FFFFFFFF",

    "mandatory": true

}

  ]

}'

trackId

Parameter Type: Request body

Data Type: String

ID of the Track to which to apply the app.

To get the trackId, use GET /mifs/admin/rest/api/v2/afw/tracks/{appId}, for example:

curl -X GET \

  'http://[Ivanti EPMM]/mifs/admin/rest/api/v2/afw/tracks/mobileiron.appsatwork?adminDeviceSpaceId=1' \

  -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ==' \

{

    "label": "12",

    "trackId": "FFFFFFFF",

    "mandatory": true

}

  ]

}'

mandatory

Parameter Type: Request body

Data Type: Boolean

Specify whether the app is mandatory.

{

  "labels": [

    {

    "label": "12",

    "trackId": "FFFFFFFF",

    "mandatory": true

}

  ]

}'

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 -X PUT \

  'https://[Ivanti EPMM]/mifs/admin/rest/api/v2/appstore/apps/105/labels?adminDeviceSpaceId=1' \

  -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ==' \

  -H 'Content-Type: application/json' \

  -d '{

    "labels": [

        {

            "label": "12",

            "trackId": "FFFFFFFF",

            "mandatory": true

        },

        {

            "label": "5",

            "trackId": "FFFFFFFF",

            "mandatory": false

        },

        {

            "label": "4",

            "trackId": "FFFFFFFF",

            "mandatory": true

        },

        {

            "label": "10",

            "trackId": "FFFFFFFF",

            "mandatory": false

        }

    ]

}'

Response

{

  "messages": [

    {

      "type": "Info",

      "messageKey": "com.mobileiron.vsp.messages.appstore.apply.label.success",

      "localizedMessage": "App(s) successfully applied to label(s)."

    }

  ]

}

Get the Android for Work schema of an app

This retrieves the Android for Work (AFW) schema of an app.

Required Role

See Authentication 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: Settings and Services Management
Role Description: View settings and services

Category: App Management
Role Description: View app

Category: Configuration Management
Role Description: View configuration

HTTP method

GET

Request URI

/api/v2/afw/schema/{package name}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

package name

Required

Parameter Type: Path

Data Type: String

Package name of the app for which to retrieve the Android for Work schema.

com.dropbox.android

Response fields

Field

Description

results

JSON container for the results.
    restrictions JSON container for the restrictions results.
            key String.
            title String.
            restrictionType Type.
            description String.
    permissions JSON container for permissions results. Array of AndroidWorkAppPermission objects.
            id Long.
            permissionId String.
            state String.
            name String.
            description String.

 

 

Sample request and response

Request

curl -X GET 'https://[Ivanti EPMM]/mifs/admin/rest/api/v2/afw/schema/com.dropbox.android/?adminDeviceSpaceId=1' -H 'Authorization: Basic bWlhZG1pbjpNaTRtYW4xMQ=='

Responses

Success:

{

    "results": {

        "restrictions": [

            {

                "key": "team_emm_token",

                "title": "Dropbox EMM auth token",

                "restrictionType": "STRING",

                "description": "The auth token from the EMM section in the Dropbox Admin Console"

            }

        ],

        "permissions": [

            {

                "id": 118,

                "permissionId": "android.permission.READ_CONTACTS",

                "state": "ACCEPTED",

                "name": "read your contacts",

                "description": "Allows the app to read data about your contacts stored on your device, including the frequency with which you've called, emailed, or communicated in other ways with specific individuals. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge."

            },

            {

                "id": 119,

                "permissionId": "android.permission.GET_ACCOUNTS",

                "state": "ACCEPTED",

                "name": "find accounts on the device",

                "description": "Allows the app to get the list of accounts known by the device. This may include any accounts created by applications you have installed."

            },

            {

                "id": 120,

                "permissionId": "android.permission.WRITE_EXTERNAL_STORAGE",

                "state": "ACCEPTED",

                "name": "modify or delete the contents of your USB storage",

                "description": "Allows the app to write to the USB storage."

            },

            {

                "id": 124,

                "permissionId": "android.permission.CAMERA",

                "state": "ACCEPTED",

                "name": "take pictures and videos",

                "description": "Allows the app to take pictures and videos with the camera. This permission allows the app to use the camera at any time without your confirmation."

            },

            {

                "id": 125,

                "permissionId": "android.permission.READ_EXTERNAL_STORAGE",

                "state": "ACCEPTED",

                "name": "read the contents of your USB storage",

                "description": "Allows the app to read the contents of your USB storage."

            }

        ]

    }

}

Error - product not found:

{

    "messages": [

        {

            "type": "Error",

            "messageKey": "com.mobileiron.vsp.messages.afw.controller.exception",

            "localizedMessage": "Exception: 'No product was found for the given id.' occurred",

            "messageParameters": [

                "No product was found for the given id."

            ]

        }

    ]

}

 

Error - Unable to connect to Google Play API:

{

    "messages": [

        {

            "type": "Error",

            "messageKey": "com.mobileiron.vsp.messages.afw.permission.connection.google.play.error",

            "localizedMessage": "Unable to obtain a Google Play API connection"

        }

    ]

}

Download an app definition file

This call downloads an app definition file.

Required Role

See Authentication 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: App Management
Role Description: View app

Category: App Management
Role Description: Manage app

HTTP method

POST

Request URI

/api/v2/appstore/apps/{id}/definition

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

id

Required

Parameter Type: Path

Data Type: Integer

ID of the app for which to download the definition file.

122

Response fields

The response is the download of a definition file in JSON format. The JSON contains the following fields.

Field

Description

package_name

String. Package name of the app.
version_name String. Version of the app.
version_code Int.
minimum_sdk Integer.
maximum_sdk Integer.
application_label String. Lebel of the application.
file_sha1_base64 String.
file_sha256_base64 String.
icon_base64 String.
file_size Long.
certificate_base64 String.
externally_hosted_url String. URL to the app.
uses-permission String. List of permissions used by the app.
uses-feature String. List of features used by the app.

Sample request and response

Request

curl -X POST \

  'https://[Ivanti EPMM]/api/v2/appstore/apps/122/definition?adminDeviceSpaceId=1' \

  -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ==' \

Response in the form of a downloaded definition file

Success:

{

    "package_name": "com.mobileiron",

    "version_name": "10.4.1.0.25R",

    "version_code": 530,

    "minimum_sdk": 21,

    "application_label": "MobileIron",

    "file_sha1_base64": "8dH5GqTz02vMOwbc+wEiCV2lcIQ=",

    "file_sha256_base64": "7hmuB1qzHO3o2VzZE8XefNmAjP57OxsxxV6zWZi0t0s=",

    "icon_base64": "<icon base 64 code deleted here for brevity>",

    "file_size": 73670995,

    "certificate_base64": [

        "<certificate base 64 code deleted here for brevity>"

    ],

    "externally_hosted_url": "https://[Ivanti EPMM]m/mifs/rs/api/v2/appstore/apps/122/download?appId=com.mobileiron&vc=530",

    "uses-permission": [

        "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION",

        "android.permission.REQUEST_DELETE_PACKAGES",

        "com.samsung.android.knox.permission.KNOX_BLUETOOTH",

        "android.permission.ACCESS_COARSE_LOCATION",

        "com.mobileiron.anyware.android.libcloud.supportlibclient.SUPPORT_PERMISSION",

        "android.permission.WAKE_LOCK",

        "android.permission.ACCESS_WIFI_STATE",

        "com.samsung.android.knox.permission.KNOX_HW_CONTROL",

        "com.samsung.android.knox.permission.KNOX_APP_MGMT",

        "android.permission.MANAGE_ACCOUNTS",

        "com.google.android.c2dm.permission.RECEIVE",

        "com.samsung.android.knox.permission.KNOX_CERTIFICATE",

        "com.mobileiron.supportlibclient.SUPPORT_PERMISSION",

        "com.symbol.mxmf.ACCESS_MX_MANAGEMENT_FRAMEWORK_SERVICE",

        "com.sec.enterprise.knox.cloudmdm.smdms.provider.permission.READ",

        "android.permission.REQUEST_INSTALL_PACKAGES",

        "com.motorolasolutions.emdk.mxframework.ACCESS_MX_MANAGEMENT_FRAMEWORK_SERVICE",

        "com.samsung.android.knox.permission.KNOX_PHONE_RESTRICTION",

        "android.permission.CHANGE_WIFI_STATE",

        "android.permission.INTERNET",

        "com.zimperium.supportlibclient.SUPPORT_PERMISSION",

        "com.samsung.android.knox.permission.KNOX_FIREWALL",

        "android.permission.AID_READPROC",

        "android.permission.GET_TASKS",

        "android.permission.READ_CONTACTS",

        "android.permission.READ_LOGS",

        "android.permission.GET_ACCOUNTS",

        "android.permission.READ_SMS",

        "android.permission.FOREGROUND_SERVICE",

        "android.permission.BLUETOOTH_ADMIN",

        "android.permission.SYSTEM_ALERT_WINDOW",

        "android.permission.RECEIVE_BOOT_COMPLETED",

        "android.permission.NFC",

        "android.permission.WRITE_EXTERNAL_STORAGE",

        "android.permission.ACCESS_FINE_LOCATION",

        "com.android.launcher.permission.UNINSTALL_SHORTCUT",

        "com.samsung.android.knox.permission.KNOX_SECURITY",

        "android.permission.ACCESS_NETWORK_STATE",

        "com.samsung.android.knox.permission.KNOX_WIFI",

        "android.permission.USE_FINGERPRINT",

        "com.android.launcher.permission.INSTALL_SHORTCUT",

        "com.cisco.anyconnect.vpn.android.MODIFY_VPN",

        "com.google.android.providers.gsf.permission.READ_GSERVICES",

        "android.permission.RECEIVE_SMS",

        "com.android.email.permission.ACCESS_PROVIDER",

        "com.mobileiron.tunnel.config.permission",

        "com.samsung.android.knox.permission.KNOX_RESTRICTION_MGMT",

        "android.permission.WRITE_SYNC_SETTINGS",

        "android.permission.KILL_BACKGROUND_PROCESSES",

        "android.permission.READ_CALL_LOG",

        "android.permission.USE_BIOMETRIC",

        "android.permission.CHANGE_NETWORK_STATE",

        "android.permission.CAMERA",

        "android.permission.READ_EXTERNAL_STORAGE",

        "android.permission.BLUETOOTH",

        "android.permission.WRITE_SETTINGS",

        "android.permission.READ_PHONE_STATE"

    ],

    "uses-feature": [

        "android.hardware.location.gps",

        "android.hardware.bluetooth",

        "android.hardware.camera",

        "android.hardware.camera.autofocus",

        "android.hardware.touchscreen",

        "android.hardware.telephony",

        "android.hardware.location.network",

        "android.hardware.location",

        "android.hardware.wifi"

    ]

}

 

Error -  not found:

{

    "messages": [

        {

            "type": "Error",

            "messageKey": "com.mobileiron.vsp.messages.http.404",

            "localizedMessage": "Not found"

        }

    ]

}

 

Get the Android for Work permissions of an app

This retrieves the Android for Work (AFW) permissions of an app.

Required Role

See Authentication 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: Settings and Services Management
Role Description: View settings and services

Category: App Management
Role Description: View app

Category: Configuration Management
Role Description: View configuration

HTTP method

GET

Request URI

/api/v2/afw/permissions_v2/{package_name}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

package name

Required

Parameter Type: Path

Data Type: String

Package name of the app for which to retrieve the Android for Work permissions.

com.dropbox.android

Sample request

Request

curl -X GET 'https://[Ivanti EPMM]/mifs/admin/rest/api/v2/afw/permissions_v2/com.dropbox.android/?adminDeviceSpaceId=1' -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ=='

Get the Android for Work restrictions of an app

This retrieves the Android for Work (AFW) restrictions of an app.

Required Role

See Authentication 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: Settings and Services Management
Role Description: View settings and services

Category: App Management
Role Description: View app

Category: Configuration Management
Role Description: View configuration

HTTP method

GET

Request URI

/api/v2/afw/restrictions/{package_name}

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Query

Data Type: Long

Device space ID of the administrator.

1

package name

Required

Parameter Type: Path

Data Type: String

Package name of the app for which to retrieve the Android for Work restrictions.

com.dropbox.android

Sample request

Request

curl -X GET 'https://[Ivanti EPMM]/mifs/admin/rest/api/v2/afw/restrictions/com.dropbox.android/?adminDeviceSpaceId=1' -H 'Authorization: Basic xxxxxG1pbjpNaTRtYW4xMQ=='

 

Add a Google Play app

This call adds a Google Play app.

Required Role

See Authentication 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: App Management
Role Description: Manage app

HTTP method

POST

Request URI

/api/v2/appstore/googleplay

Request parameters

Parameter

Description

Sample Value

adminDeviceSpaceId

Required

Parameter Type: Path

Data Type: Long

Device space ID of the administrator.

1

bundleId

Required

Parameter Type: Path

Data Type: String

Bundle IDof the Google Play app.

com.facebook.katana

forceUpdate

Parameter Type: Path

Data Type: Boolean

Default: false

Specify whether to force update the app.

true

countryCode

Parameter Type: Path

Data Type: String

Country code of the app.

 

languageCode

Parameter Type: Path

Data Type: String

Language code of the app.

 

Response fields

Field

Description

results

    id
    name
    platformType
    platformCode
    version
    altVersion
    displayVersion
    appId
    creatorType
    catalogType
    publicAppStoreType
    publicStoreId
    developerName
    description
    updateNotes
    cost
    currency
    averageRating
    ratingCount
    installSize
    createdAt
    modifiedAt
    vpnIds
    iconFile
        fileName
        uuid
        url
    installer
    phoneScreenshots
            fileName
            uuid
            url
    tabletScreenshots
    categories
    featuredApp
    featuredBanner
    bannerDescription
    bannerStyle
    hiddenInAppstore
    perAppVpnByLabelOnly
    dataProtectionRequired
    overrideURL
    quarantinable
    pushedOnRegistration
    backupPrevented
    cdnServiceEnabled
    cdnDisabled
    deviceSpaceId
    spaces
    newApp
    minimumOsVersion
    previousAppId
    androidWork
    androidWorkSilentInstall
    androidWorkManagedDeviceSilentInstall
    androidWorkBlockUninstall
    androidWorkQuarantineApp
    androidWorkThirdPartyAppRuntimePermissions
    androidWorkHideThirdPartyApps
    androidWorkManagedCertificates
    enableMobileIronAccess
    accessProfileId
    autoInstallMode
    autoInstallPriority
    networkTypeConstraint
    chargingStateConstraint
    deviceIdleStateConstraint
    androidWorkGooglePlayDistributionEnabled
    androidWorkSelfHostedApkDefinitionUrl
    androidWorkSelfHostedApkDefinitionStatus
    androidWorkSelfHostedApkLicense
    androidWorkSelfHostedApkStatus
    blockWidget
    autoUpdate
    permissionUpdateAvailable
    enterpriseConfigs
    versionRequired
    codeVersion
    mandatory
    mandatoryOverwrite
    secureApp
    enforceVersion
    vpnNames
messages
        type
        messageKey
        localizedMessage

Sample request and response

Request

curl -X POST \

  'https://[Ivanti EPMM]/api/v2/appstore/googleplay?adminDeviceSpaceId=1&bundleId=com.facebook.katana' \

  -H 'Authorization: Basic xxxxG1pbjpNaTRtYW4xMQ==' \

  -H 'Content-Type: application/json' \

Response

Success:

{

    "results": {

        "id": 117,

        "name": "Facebook",

        "platformType": "Android",

        "platformCode": "A",

        "version": null,

        "altVersion": "",

        "displayVersion": null,

        "appId": "com.facebook.katana",

        "creatorType": "ADMIN",

        "catalogType": "APP",

        "publicAppStoreType": "GOOGLE_PLAY",

        "publicStoreId": "com.facebook.katana",

        "developerName": "Visit website",

        "description": "Keeping up... <remainder of description removed for brevity>",

        "updateNotes": "• Improvements for reliability and speed",

        "cost": 0.0,

        "currency": null,

        "averageRating": null,

        "ratingCount": null,

        "installSize": 0,

        "createdAt": 1567016231000,

        "modifiedAt": 1567016593000,

        "vpnIds": [],

        "iconFile": {

            "fileName": "logo.png",

            "uuid": "251b66ad-5d17-4bb3-b627-3b2817d96bcf",

            "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=117&uuid=251b66ad-5d17-4bb3-b627-3b2817d96bcf&ext=PNG"

        },

        "installer": null,

        "phoneScreenshots": [

            {

                "fileName": "screen-shot-0.png",

                "uuid": "d99a6a18-306a-4803-b67f-8dbf8fd827a4",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=117&uuid=d99a6a18-306a-4803-b67f-8dbf8fd827a4&ext=PNG"

            },

            {

                "fileName": "screen-shot-1.png",

                "uuid": "877c335d-9518-4f06-9e1b-7f2e51c96f67",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=117&uuid=877c335d-9518-4f06-9e1b-7f2e51c96f67&ext=PNG"

            },

            {

                "fileName": "screen-shot-2.png",

                "uuid": "fb0efef7-d643-45b0-9ec9-a2f267596471",

                "url": "/mifs/image/app.html?command=getAppArtifact&action=getAppArtifact&appid=117&uuid=fb0efef7-d643-45b0-9ec9-a2f267596471&ext=PNG"

            }

        ],

        "tabletScreenshots": [],

        "categories": [],

        "featuredApp": false,

        "featuredBanner": false,

        "bannerDescription": null,

        "bannerStyle": null,

        "hiddenInAppstore": false,

        "perAppVpnByLabelOnly": false,

        "dataProtectionRequired": false,

        "overrideURL": null,

        "quarantinable": false,

        "pushedOnRegistration": false,

        "backupPrevented": false,

        "cdnServiceEnabled": false,

        "cdnDisabled": false,

        "deviceSpaceId": 1,

        "spaces": null,

        "newApp": false,

        "minimumOsVersion": null,

        "previousAppId": null,

        "androidWork": false,

        "androidWorkSilentInstall": false,

        "androidWorkManagedDeviceSilentInstall": false,

        "androidWorkBlockUninstall": false,

        "androidWorkQuarantineApp": false,

        "androidWorkThirdPartyAppRuntimePermissions": false,

        "androidWorkHideThirdPartyApps": false,

        "androidWorkManagedCertificates": false,

        "enableMobileIronAccess": false,

        "accessProfileId": null,

        "autoInstallMode": "doNotAutoInstall",

        "autoInstallPriority": null,

        "networkTypeConstraint": null,

        "chargingStateConstraint": null,

        "deviceIdleStateConstraint": null,

        "androidWorkGooglePlayDistributionEnabled": true,

        "androidWorkSelfHostedApkDefinitionUrl": null,

        "androidWorkSelfHostedApkDefinitionStatus": null,

        "androidWorkSelfHostedApkLicense": null,

        "androidWorkSelfHostedApkStatus": "Status: Not available for download",

        "blockWidget": false,

        "autoUpdate": false,

        "permissionUpdateAvailable": false,

        "enterpriseConfigs": [],

        "versionRequired": false,

        "codeVersion": "",

        "mandatory": false,

        "mandatoryOverwrite": false,

        "secureApp": false,

        "enforceVersion": false,

        "vpnNames": null

    },

    "messages": [

        {

            "type": "Info",

            "messageKey": "com.mobileiron.vsp.messages.appstore.import.app.success",

            "localizedMessage": "App successfully imported."

        }

    ]

}

 

Error -  not found:

{

    "messages": [

        {

            "type": "Error",

            "messageKey": "com.mobileiron.vsp.messages.appstore.apps.app.not.found",

            "localizedMessage": "No app found with id 'com.faccccebook.katana'",

            "messageParameters": [

                "com.faccccebook.katana"

            ]

        }

    ]

}