API Reference

  • This API reference covers resource types and methods for managing Android devices and applications within an enterprise using the Google Play EMM API.

  • Resources like Devices, Enrollmenttokens, and Enterprises provide core functionality for device and enterprise management.

  • Several resources including Entitlements, Grouplicenses, Installs, Managedconfigurationsfordevice, Managedconfigurationsforuser, Products, and Serviceaccountkeys contain deprecated methods that will be inaccessible after September 30, 2025.

  • The API also supports managing store layout elements (storelayoutclusters, storelayoutpages), enterprise users (users), and web applications (webapps).

  • All HTTP requests for these methods are relative tohttps://www.googleapis.com/androidenterprise/v1.

This API reference is organized by resource type. Each resource type has one or more data representations and one or more methods.

Resource types

  1. Devices
  2. Enrollmenttokens
  3. Enterprises
  4. Entitlements
  5. Grouplicenses
  6. Grouplicenseusers
  7. Installs
  8. Managedconfigurationsfordevice
  9. Managedconfigurationsforuser
  10. Managedconfigurationssettings
  11. Permissions
  12. Products
  13. Serviceaccountkeys
  14. Storelayoutclusters
  15. Storelayoutpages
  16. Users
  17. Webapps

Devices

For Devices Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
forceReportUploadPOST  /enterprises/enterpriseId/users/userId/devices/deviceId/forceReportUpload Uploads a report containing any changes in app states on the device sincethe last report was generated. You can call this method up to 3 times every24 hours for a given device.
getGET  /enterprises/enterpriseId/users/userId/devices/deviceId Retrieves the details of a device.
getStateGET  /enterprises/enterpriseId/users/userId/devices/deviceId/state Retrieves whether a device's access to Google services is enabled ordisabled.The device state takes effect only if enforcing EMM policies on Androiddevices is enabled in the Google Admin Console.Otherwise, the device state is ignored and all devices are allowed accessto Google services.This is only supported for Google-managed users.
listGET  /enterprises/enterpriseId/users/userId/devices Retrieves the IDs of all of a user's devices.
setStatePUT  /enterprises/enterpriseId/users/userId/devices/deviceId/state Sets whether a device's access to Google services is enabled or disabled.The device state takes effect only if enforcing EMM policies on Androiddevices is enabled in the Google Admin Console.Otherwise, the device state is ignored and all devices are allowed accessto Google services.This is only supported for Google-managed users.
updatePUT  /enterprises/enterpriseId/users/userId/devices/deviceId Updates the device policy.

To ensure the policy is properly enforced, you need to prevent unmanagedaccounts from accessing Google Play by setting theallowed_accounts in the managed configuration for the GooglePlay package. Seerestrictaccounts in Google Play.

Enrollmenttokens

For Enrollmenttokens Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
createPOST  /enterprises/enterpriseId/enrollmentTokens Creates an enrollment token for the enterprise.This method is part of the EnrollmentTokensService.

Enterprises

For Enterprises Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
acknowledgeNotificationSetPOST  /enterprises/acknowledgeNotificationSet Acknowledges notifications that were received fromEnterprises.PullNotificationSet to prevent subsequent calls from returningthe same notifications.
completeSignupPOST  /enterprises/completeSignup Completes the signup flow, by specifying the Completion token andEnterprise token.This request must not be called multiple times for a given EnterpriseToken.
createWebTokenPOST  /enterprises/enterpriseId/createWebToken Returns a unique token to access an embeddable UI. To generate aweb UI, pass the generated token into the managed Google Play javascriptAPI. Each token may only be used to start one UI session. See theJavaScript API documentation for further information.
enrollPOST  /enterprises/enroll Enrolls an enterprise with the calling EMM.

Required query parameters:token

generateEnterpriseUpgradeUrlPOST  /enterprises/enterpriseId/generateEnterpriseUpgradeUrl Generates an enterprise upgrade URL to upgrade an existing managed GooglePlay Accounts enterprise to a managed Google domain.Seethe guide to upgrading an enterprise for more details.
generateSignupUrlPOST  /enterprises/signupUrl Generates a sign-up URL.
getGET  /enterprises/enterpriseId Retrieves the name and domain of an enterprise.
getServiceAccountGET  /enterprises/enterpriseId/serviceAccount Returns a service account and credentials. The service accountcan be bound to the enterprise by calling setAccount. The service accountis unique to this enterprise and EMM, and will be deleted if the enterpriseis unbound. The credentials contain private key data and are not storedserver-side.

This method can only be called after callingEnterprises.Enroll or Enterprises.CompleteSignup, and beforeEnterprises.SetAccount; at other times it will return an error.

Subsequent calls after the first will generate a new, unique set ofcredentials, and invalidate the previously generated credentials.

Once the service account is bound to the enterprise, it can be managedusing the serviceAccountKeys resource.

Note: After you create a key, you might need to wait for60 seconds or more before you perform another operation with the key. Ifyou try to perform an operation with the key immediately after you createthe key, and you receive an error, you canretrythe request with exponential backoff

.
getStoreLayoutGET  /enterprises/enterpriseId/storeLayout Returns the store layout for the enterprise. If the store layouthas not been set, returns "basic" as the store layout type and nohomepage.
listGET  /enterprises Looks up an enterprise by domain name.This is only supported for enterprises created via the Google-initiatedcreation flow. Lookup of the id is not needed for enterprises created viathe EMM-initiated flow since the EMM learns the enterprise ID in thecallback specified in the Enterprises.generateSignupUrl call.

Required query parameters:domain

pullNotificationSetPOST  /enterprises/pullNotificationSet Pulls and returns a notification set for the enterprises associated withthe service account authenticated for the request. The notification set maybe empty if no notification are pending.
A notification set returned needs to be acknowledged within 20 secondsby calling Enterprises.AcknowledgeNotificationSet, unless thenotification set is empty.
Notifications that are not acknowledged within the 20 seconds willeventually be included again in the response to another PullNotificationSetrequest, and those that are never acknowledged will ultimately be deletedaccording to the Google Cloud Platform Pub/Sub system policy.
Multiple requests might be performed concurrently to retrievenotifications, in which case the pending notifications (if any) will besplit among each caller, if any are pending.
If no notifications are present, an empty notification list is returned.Subsequent requests may return more notifications once they becomeavailable.
sendTestPushNotificationPOST  /enterprises/enterpriseId/sendTestPushNotification Sends a test notification to validate the EMM integration withthe Google Cloud Pub/Sub service for this enterprise.
setAccountPUT  /enterprises/enterpriseId/account Sets the account that will be used to authenticate to the API as theenterprise.
setStoreLayoutPUT  /enterprises/enterpriseId/storeLayout Sets the store layout for the enterprise. By default, storeLayoutTypeis set to "basic" and the basic store layout is enabled. The basiclayout only contains apps approved by the admin, and that havebeen added to the available product set for a user (using thesetAvailableProductSet call). Apps on the page are sorted in order oftheir product ID value. If you create a custom store layout (by settingstoreLayoutType = "custom" and setting a homepage), the basic storelayout is disabled.
unenrollPOST  /enterprises/enterpriseId/unenroll Unenrolls an enterprise from the calling EMM.

Entitlements

For Entitlements Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/users/userId/entitlements/entitlementIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Removes an entitlement to an app for a user.
getGET  /enterprises/enterpriseId/users/userId/entitlements/entitlementIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves details of an entitlement.
listGET  /enterprises/enterpriseId/users/userId/entitlementsDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Lists all entitlements for the specified user. Only the ID is set.
updatePUT  /enterprises/enterpriseId/users/userId/entitlements/entitlementIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Adds or updates an entitlement to an app for a user.

Grouplicenses

For Grouplicenses Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
getGET  /enterprises/enterpriseId/groupLicenses/groupLicenseIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves details of an enterprise's group license for a product.
listGET  /enterprises/enterpriseId/groupLicensesDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves IDs of all products for which the enterprise has a group license.

Grouplicenseusers

For Grouplicenseusers Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
listGET  /enterprises/enterpriseId/groupLicenses/groupLicenseId/usersDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves the IDs of the users who have been granted entitlementsunder the license.

Installs

For Installs Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/users/userId/devices/deviceId/installs/installId Requests to remove an app from a device. A call toget orlist will still show the app as installed on the device untilit is actually removed.
getGET  /enterprises/enterpriseId/users/userId/devices/deviceId/installs/installIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves details of an installation of an app on a device.
listGET  /enterprises/enterpriseId/users/userId/devices/deviceId/installsDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves the details of all apps installed on the specified device.
updatePUT  /enterprises/enterpriseId/users/userId/devices/deviceId/installs/installIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Requests to install the latest version of an app to a device. If the appis already installed, then it is updated to the latest version ifnecessary.

Managedconfigurationsfordevice

For Managedconfigurationsfordevice Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/users/userId/devices/deviceId/managedConfigurationsForDevice/managedConfigurationForDeviceIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Removes a per-device managed configuration for an app for the specifieddevice.
getGET  /enterprises/enterpriseId/users/userId/devices/deviceId/managedConfigurationsForDevice/managedConfigurationForDeviceIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves details of a per-device managed configuration.
listGET  /enterprises/enterpriseId/users/userId/devices/deviceId/managedConfigurationsForDeviceDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Lists all the per-device managed configurations for the specified device.Only the ID is set.
updatePUT  /enterprises/enterpriseId/users/userId/devices/deviceId/managedConfigurationsForDevice/managedConfigurationForDeviceIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Adds or updates a per-device managed configuration for an app for thespecified device.

Managedconfigurationsforuser

For Managedconfigurationsforuser Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/users/userId/managedConfigurationsForUser/managedConfigurationForUserIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Removes a per-user managed configuration for an app for the specifieduser.
getGET  /enterprises/enterpriseId/users/userId/managedConfigurationsForUser/managedConfigurationForUserIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves details of a per-user managed configuration for an app for thespecified user.
listGET  /enterprises/enterpriseId/users/userId/managedConfigurationsForUserDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Lists all the per-user managed configurations for the specified user. Onlythe ID is set.
updatePUT  /enterprises/enterpriseId/users/userId/managedConfigurationsForUser/managedConfigurationForUserIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Adds or updates the managed configuration settings for an app for the specified user.If you support theManaged configurations iframe,you can apply managed configurations to a user by specifying anmcmIdand its associated configuration variables (if any) in the request. Alternatively,all EMMs can apply managed configurations by passing a list of managedproperties.

Managedconfigurationssettings

For Managedconfigurationssettings Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
listGET  /enterprises/enterpriseId/products/productId/managedConfigurationsSettings Lists all the managed configurations settings for the specified app.

Permissions

For Permissions Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
getGET  /permissions/permissionId Retrieves details of an Android app permission for display to an enterprise admin.

Products

For Products Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
approvePOST  /enterprises/enterpriseId/products/productId/approveDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.

Approves the specified product and the relevant app permissions, if any.The maximum number of products that you can approve per enterprise customeris 1,000.

To learn how to use managed Google Play to design and create a storelayout to display approved products to your users,seeStore Layout Design.

generateApprovalUrlPOST  /enterprises/enterpriseId/products/productId/generateApprovalUrlDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Generates a URL that can be rendered in an iframe to display thepermissions (if any) of a product. An enterprise admin must view thesepermissions and accept them on behalf of their organization in order toapprove that product.

Admins should accept the displayed permissions byinteracting with a separate UI element in the EMM console, which in turnshould trigger the use of this URL as theapprovalUrlInfo.approvalUrl property in aProducts.approve call to approve the product.This URL can only be used to display permissions for up to 1 day.
getGET  /enterprises/enterpriseId/products/productId Retrieves details of a product for display to an enterprise admin.
getAppRestrictionsSchemaGET  /enterprises/enterpriseId/products/productId/appRestrictionsSchemaDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves the schema that defines the configurable properties for thisproduct. All products have a schema, but this schema may be empty if nomanaged configurations have been defined. This schema can be used topopulate a UI that allows an admin to configure the product.To apply a managed configuration based on the schema obtained using thisAPI, seeManaged Configurations through Play.
getPermissionsGET  /enterprises/enterpriseId/products/productId/permissionsDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves the Android app permissions required by this app.
listGET  /enterprises/enterpriseId/productsDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Finds approved products that match a query, or all approved productsif there is no query.
unapprovePOST  /enterprises/enterpriseId/products/productId/unapproveDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Unapproves the specified product (and the relevant app permissions, if any)

Serviceaccountkeys

For Serviceaccountkeys Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/serviceAccountKeys/keyIdDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Removes and invalidates the specified credentials for the service accountassociated with this enterprise. The calling service account must have beenretrieved by calling Enterprises.GetServiceAccount and must have been setas the enterprise service account by calling Enterprises.SetAccount.
insertPOST  /enterprises/enterpriseId/serviceAccountKeysDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Generates new credentials for the service account associated with thisenterprise. The calling service account must have been retrieved by callingEnterprises.GetServiceAccount and must have been set as the enterpriseservice account by calling Enterprises.SetAccount.

Only the type of the key should be populated in the resource to beinserted.
listGET  /enterprises/enterpriseId/serviceAccountKeysDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Lists all active credentials for the service account associated with thisenterprise. Only the ID and key type are returned. The calling serviceaccount must have been retrieved by calling Enterprises.GetServiceAccountand must have been set as the enterprise service account by callingEnterprises.SetAccount.

Storelayoutclusters

For Storelayoutclusters Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/storeLayout/pages/pageId/clusters/clusterId Deletes a cluster.
getGET  /enterprises/enterpriseId/storeLayout/pages/pageId/clusters/clusterId Retrieves details of a cluster.
insertPOST  /enterprises/enterpriseId/storeLayout/pages/pageId/clusters Inserts a new cluster in a page.
listGET  /enterprises/enterpriseId/storeLayout/pages/pageId/clusters Retrieves the details of all clusters on the specified page.
updatePUT  /enterprises/enterpriseId/storeLayout/pages/pageId/clusters/clusterId Updates a cluster.

Storelayoutpages

For Storelayoutpages Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/storeLayout/pages/pageId Deletes a store page.
getGET  /enterprises/enterpriseId/storeLayout/pages/pageId Retrieves details of a store page.
insertPOST  /enterprises/enterpriseId/storeLayout/pages Inserts a new store page.
listGET  /enterprises/enterpriseId/storeLayout/pages Retrieves the details of all pages in the store.
updatePUT  /enterprises/enterpriseId/storeLayout/pages/pageId Updates the content of a store page.

Users

For Users Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/users/userId Deleted an EMM-managed user.
generateAuthenticationTokenPOST  /enterprises/enterpriseId/users/userId/authenticationToken Generates an authentication token which the device policy client can use toprovision the given EMM-managed user account on a device.The generated token is single-use and expires after a few minutes.

You can provision a maximum of 10 devices per user.

This call only works with EMM-managed accounts.
getGET  /enterprises/enterpriseId/users/userId Retrieves a user's details.
getAvailableProductSetGET  /enterprises/enterpriseId/users/userId/availableProductSetDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Retrieves the set of products a user is entitled to access.
insertPOST  /enterprises/enterpriseId/users Creates a new EMM-managed user.

TheUsers resourcepassed in the body of the request should include anaccountIdentifier and anaccountType.

If a corresponding user already exists with the same account identifier,the user will be updated with the resource. In this case only thedisplayName field can be changed.

listGET  /enterprises/enterpriseId/users Looks up a user by primary email address.This is only supported for Google-managed users. Lookup of the id is notneeded for EMM-managed users because the id is already returned in theresult of the Users.insert call.

Required query parameters:email

revokeDeviceAccessDELETE  /enterprises/enterpriseId/users/userId/deviceAccess Revokes access to all devices currently provisioned to the user. The userwill no longer be able to use the managed Play store on any of theirmanaged devices.

This call only works with EMM-managed accounts.
setAvailableProductSetPUT  /enterprises/enterpriseId/users/userId/availableProductSetDeprecated: New integrations cannot use this method and can refer toour newrecommendations.
This method will no longer be accessible byanyone after September 30, 2025.Modifies the set of products that a user is entitled to access (referred toaswhitelisted products). Only products that areapprovedor products that were previously approved (products with revoked approval)can be whitelisted.
updatePUT  /enterprises/enterpriseId/users/userId Updates the details of an EMM-managed user.

Can be used with EMM-managed users only (not Google managed users).Pass the new details in theUsersresource in the request body. Only thedisplayName fieldcan be changed. Other fields must either be unset or have thecurrently active value.

Webapps

For Webapps Resource details, see theresource representation page.

MethodHTTP requestDescription
URIs relative to https://www.googleapis.com/androidenterprise/v1, unless otherwise noted
deleteDELETE  /enterprises/enterpriseId/webApps/webAppId Deletes an existing web app.
getGET  /enterprises/enterpriseId/webApps/webAppId Gets an existing web app.
insertPOST  /enterprises/enterpriseId/webApps Creates a new web app for the enterprise.
listGET  /enterprises/enterpriseId/webApps Retrieves the details of all web apps for a given enterprise.
updatePUT  /enterprises/enterpriseId/webApps/webAppId Updates an existing web app.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-10-02 UTC.