Products

  • A Products resource represents an app available in the Google Play store to enterprise users, providing information for basic representation within an EMM user interface.

  • The resource representation includes details such as product ID, title, author, icons, links, app versions, distribution channel, pricing, permissions, and available countries.

  • Several methods for managing products, includingapprove,generateApprovalUrl,get,getAppRestrictionsSchema,getPermissions,list, andunapprove, are described, with most of these methods being deprecated as of September 30, 2025.

For a list ofmethods for this resource, see the end of this page.

Resource representations

A Products resource represents an app in the Google Play store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)

The information provided for each product (localized name, icon, link to the full Google Play details page) is intended to allow a basic representation of the product within an EMM user interface.



{"kind":"androidenterprise#product","productId":string,"title":string,"authorName":string,"iconUrl":string,"smallIconUrl":string,"detailsUrl":string,"workDetailsUrl":string,"requiresContainerApp":boolean,"appVersion":[{"versionString":string,"versionCode":integer,"track":string,"targetSdkVersion":integer,"trackId":[string],"isProduction":boolean}],"distributionChannel":string,"productPricing":string,"signingCertificate":{"certificateHashSha256":string,"certificateHashSha1":string},"availableTracks":[string],"appTracks":[{"trackId":string,"trackAlias":string}],"description":string,"fullDescription":string,"screenshotUrls":[string],"category":string,"recentChanges":string,"minAndroidSdkVersion":integer,"contentRating":string,"lastUpdatedTimestampMillis":long,"permissions":[{"permissionId":string,"state":string}],"availableCountries":[string],"features":[string],"iarcGenericRating":string,"appRestrictionsSchema":{"kind":string,"restrictions":[{"key":string,"title":string,"restrictionType":string,"description":string,"entry":[string],"entryValue":[string],"defaultValue":{"type":string,"valueBool":boolean,"valueString":string,"valueInteger":integer,"valueMultiselect":[string]},"nestedRestriction":[(AppRestrictionsSchemaRestriction)]}]}}
Property nameValueDescriptionNotes
appRestrictionsSchemanested objectThe app restriction schema
appRestrictionsSchema.kindstringDeprecated.

appRestrictionsSchema.restrictions[]listThe set of restrictions that make up this schema.
appRestrictionsSchema.restrictions[].defaultValuenested objectThe default value of the restriction.bundle andbundleArray restrictions never have a default value.
appRestrictionsSchema.restrictions[].defaultValue.typestringThe type of the value being provided.

Acceptable values are:
  • "bool"
  • "bundle"
  • "bundleArray"
  • "choice"
  • "hidden"
  • "integer"
  • "multiselect"
  • "string"
appRestrictionsSchema.restrictions[].defaultValue.valueBoolbooleanThe boolean value - this will only be present if type is bool.
appRestrictionsSchema.restrictions[].defaultValue.valueIntegerintegerThe integer value - this will only be present if type is integer.
appRestrictionsSchema.restrictions[].defaultValue.valueMultiselect[]listThe list of string values - this will only be present if type is multiselect.
appRestrictionsSchema.restrictions[].defaultValue.valueStringstringThe string value - this will be present for types string, choice and hidden.
appRestrictionsSchema.restrictions[].descriptionstringA longer description of the restriction, giving more detail of what it affects.
appRestrictionsSchema.restrictions[].entryValue[]listForchoice ormultiselect restrictions, the list of possible entries' machine-readable values. These values should be used in the configuration, either as a singlestring value for achoice restriction or in astringArray for amultiselect restriction.
appRestrictionsSchema.restrictions[].entry[]listForchoice ormultiselect restrictions, the list of possible entries' human-readable names.
appRestrictionsSchema.restrictions[].keystringThe unique key that the product uses to identify the restriction, e.g. "com.google.android.gm.fieldname".
appRestrictionsSchema.restrictions[].nestedRestriction[]listForbundle orbundleArray restrictions, the list of nested restrictions. Abundle restriction is always nested within abundleArray restriction, and abundleArray restriction is at most two levels deep.
appRestrictionsSchema.restrictions[].restrictionTypestringThe type of the restriction.

Acceptable values are:
  • "bool"
  • "bundle"
  • "bundleArray"
  • "choice"
  • "hidden"
  • "integer"
  • "multiselect"
  • "string"
appRestrictionsSchema.restrictions[].titlestringThe name of the restriction.
appTracks[]listThe tracks visible to the enterprise.
appTracks[].trackAliasstringA modifiable name for a track. This is the visible name in the play developer console.
appTracks[].trackIdstringUnmodifiable, unique track identifier. This identifier is the releaseTrackId in the url of the play developer console page that displays the track information.
appVersion[]listApp versions currently available for this product.
appVersion[].isProductionbooleanTrue if this version is a production APK.
appVersion[].targetSdkVersionintegerThe SDK version this app targets, as specified in the manifest of the APK. See http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
appVersion[].trackstringDeprecated, usetrackId instead.

Acceptable values are:
  • "alpha"
  • "beta"
  • "production"
appVersion[].trackId[]listTrack ids that the app version is published in. Replaces thetrack field (deprecated), but doesn't include the production track (seeisProduction instead).
appVersion[].versionCodeintegerUnique increasing identifier for the app version.
appVersion[].versionStringstringThe string used in the Play store by the app developer to identify the version. The string is not necessarily unique or localized (for example, the string could be "1.4").
authorNamestringThe name of the author of the product (for example, the app developer).
availableCountries[]listThe countries which this app is available in.
availableTracks[]listDeprecated, useappTracks instead.
categorystringThe app category (e.g. RACING, SOCIAL, etc.)
contentRatingstringThe content rating for this app.

Acceptable values are:
  • "all"
  • "mature"
  • "preTeen"
  • "teen"
descriptionstringThe localized promotional description, if available.
detailsUrlstringA link to the (consumer) Google Play details page for the product.
distributionChannelstringHow and to whom the package is made available. The valuepublicGoogleHosted means that the package is available through the Play store and not restricted to a specific enterprise. The valueprivateGoogleHosted means that the package is a private app (restricted to an enterprise) but hosted by Google. The valueprivateSelfHosted means that the package is a private app (restricted to an enterprise) and is privately hosted.

Acceptable values are:
  • "privateGoogleHosted"
  • "privateSelfHosted"
  • "publicGoogleHosted"
features[]listNoteworthy features (if any) of this product.
fullDescriptionstringThe localized full app store description, if available.
iarcGenericRatingstringThe content rating for this app.

Acceptable values are:
  • "eighteenYears"
  • "iarcGenericRatingUnspecified"
  • "sevenYears"
  • "sixteenYears"
  • "threeYears"
  • "twelveYears"
iconUrlstringA link to an image that can be used as an icon for the product. This image is suitable for use at up to 512px x 512px.
kindstring
lastUpdatedTimestampMillislongThe approximate time (within 7 days) the app was last published, expressed in milliseconds since epoch.
minAndroidSdkVersionintegerThe minimum Android SDK necessary to run the app.
permissions[]listA list of permissions required by the app.
permissions[].permissionIdstringAn opaque string uniquely identifying the permission.
permissions[].statestringWhether the permission has been accepted or not.

Acceptable values are:
  • "accepted"
  • "required"
productIdstringA string of the formapp:<package name>. For example,app:com.google.android.gm represents the Gmail app.
productPricingstringWhether this product is free, free with in-app purchases, or paid. If the pricing is unknown, this means the product is not generally available anymore (even though it might still be available to people who own it).

Acceptable values are:
  • "free"
  • "freeWithInAppPurchase"
  • "paid"
recentChangesstringA description of the recent changes made to the app.
requiresContainerAppbooleanDeprecated.
screenshotUrls[]listA list of screenshot links representing the app.
signingCertificatenested objectThe certificate used to sign this product.
signingCertificate.certificateHashSha1stringThe base64 urlsafe encoded SHA1 hash of the certificate. (This field is deprecated in favor of SHA2-256. It should not be used and may be removed at any time.)

signingCertificate.certificateHashSha256stringThe base64 urlsafe encoded SHA2-256 hash of the certificate.
smallIconUrlstringA link to a smaller image that can be used as an icon for the product. This image is suitable for use at up to 128px x 128px.
titlestringThe name of the product.
workDetailsUrlstringA link to the managed Google Play details page for the product, for use by an Enterprise admin.

Methods

approve
Deprecated: 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.

generateApprovalUrl
Deprecated: 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.
get
Retrieves details of a product for display to an enterprise admin.
getAppRestrictionsSchema
Deprecated: 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.
getPermissions
Deprecated: 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.
list
Deprecated: 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.
unapprove
Deprecated: 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)

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-06-11 UTC.