Method: appstoreappsreview.updateappstorehostedapp

Updates details for an app hosted on an app store. Use this to provide details for a new app, or to update details for an existing app. The update will be sent for review immediately after creation.

HTTP request

POST https://androidpublisher.googleapis.com/androidpublisher/v3/appstore/{appStorePackageName}/apps:update

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
appStorePackageName

string

Required. Package name of the third-party app store.

Request body

The request body contains data with the following structure:

JSON representation
{
  "packageName": string,
  "appDetails": {
    object (AppStoreAppDetails)
  },
  "activeLocalizedStoreListings": [
    {
      object (AppStoreAppStoreListing)
    }
  ],
  "activeApks": {
    object (AppStoreAppActiveApks)
  },
  "policyDeclarations": [
    {
      object (AppStoreAppPolicyDeclaration)
    }
  ]
}
Fields
packageName

string

Required. Package name of the app.

appDetails

object (AppStoreAppDetails)

Required. General developer details for the app.

activeLocalizedStoreListings[]

object (AppStoreAppStoreListing)

Required. Localized store listings details of the update.

activeApks

object (AppStoreAppActiveApks)

Required. Actively distributed APKs of the app.

policyDeclarations[]

object (AppStoreAppPolicyDeclaration)

Required. Policy declarations provided for the app.

Response body

If successful, the response body is empty.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/androidpublisher

AppStoreAppDetails

Details about the app.

JSON representation
{
  "developerName": string,
  "contactEmail": string,
  "developerWebsite": string
}
Fields
developerName

string

Required. The app developer's name.

contactEmail

string

Required. The app developer's contact email address.

developerWebsite

string

Optional. Website link for the developer or app.

AppStoreAppStoreListing

A localized store listing. These are the details about the app as shown in your app store.

JSON representation
{
  "languageCode": string,
  "appName": string,
  "fullDescription": string,
  "shortDescription": string,
  "appIconId": string,
  "screenshotId": [
    string
  ],
  "videoLink": string
}
Fields
languageCode

string

Required. Language code (e.g., "en-US") of the listing.

appName

string

Required. The title of the app.

fullDescription

string

Required. Comprehensive description text about the app.

shortDescription

string

Optional. Quick summary about the app.

appIconId

string

Required. Image ID generated from appstoreappsreview.uploadimage for the main app icon.

screenshotId[]

string

Required. Multiple image IDs for screenshot galleries.

AppStoreAppActiveApks

Information about active APKs of an app store hosted app.

JSON representation
{
  "activeApkSets": [
    {
      object (AppStoreAppActiveApkSet)
    }
  ]
}
Fields
activeApkSets[]

object (AppStoreAppActiveApkSet)

Required. List specifying which APK sets are distributed together. This list should contain all APKs that you're distributing for this app. Add an entry for each individual installable set of APKs.

AppStoreAppActiveApkSet

An installable set of active APKs. All APKs in this set should belong to the same version of the app. A set of APKs might only contain 1 APK if the app in question publishes using APKs. If the app uses app bundles (or a similar technology), this set should contain all APKs (even optional ones) that might be installed for this app. A set of APKs should be installable together. If certain APKs are exclusive to one another and cannot be installed together, then a separate AppStoreAppActiveApkSet should be created.

JSON representation
{
  "baseApkId": string,
  "splitApkId": [
    string
  ],
  "versionCode": string,
  "alreadyPublishedOnPlay": boolean
}
Fields
baseApkId

string

Required. The ID for the main base application module. Example: base.apk or app.apk.

splitApkId[]

string

Optional. IDs for split modules that might be installed in combination with the base APK. Can be empty if app bundles (or a similar technology) are not used. Example: config.en.apk.

versionCode

string (int64 format)

Optional. Version code for the version this APK set represents.

alreadyPublishedOnPlay

boolean

Optional. Whether all APKs referenced in this active APK set are published on Play Store (or derived from an app bundle published on Play Store). When this is set, versionCode must be provided.

AppStoreAppPolicyDeclaration

A policy declaration with its responses.

JSON representation
{
  "declarationId": string,
  "responses": [
    {
      object (PolicyResponse)
    }
  ]
}
Fields
declarationId

string

Required. ID of the policy declaration.

responses[]

object (PolicyResponse)

Required. Responses provided for this declaration.

PolicyResponse

An individual response (answer) to a policy question about an app.

JSON representation
{
  "questionId": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "stringResponse": {
    object (PolicyStringResponse)
  },
  "singleChoiceResponse": {
    object (PolicySingleChoiceResponse)
  },
  "multipleChoiceResponse": {
    object (PolicyMultipleChoiceResponse)
  },
  "groupResponse": {
    object (PolicyGroupResponse)
  },
  "keyedGroupResponse": {
    object (PolicyKeyedGroupResponse)
  },
  "booleanResponse": {
    object (PolicyBooleanResponse)
  },
  "documentResponse": {
    object (PolicyDocumentResponse)
  }
  // End of mutually exclusive fields.
}
Fields
questionId

string

Required. ID of the question being answered.

Specific response value. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
stringResponse

object (PolicyStringResponse)

Optional. A string response.

singleChoiceResponse

object (PolicySingleChoiceResponse)

Optional. A single choice response.

multipleChoiceResponse

object (PolicyMultipleChoiceResponse)

Optional. A multiple choice response.

groupResponse

object (PolicyGroupResponse)

Optional. A group response.

keyedGroupResponse

object (PolicyKeyedGroupResponse)

Optional. A keyed group response.

booleanResponse

object (PolicyBooleanResponse)

Optional. A boolean response.

documentResponse

object (PolicyDocumentResponse)

Optional. A document response.

End of mutually exclusive fields.

PolicyStringResponse

Any response best encoded as a string. Includes URLs and multiline text fields.

JSON representation
{
  "value": string
}
Fields
value

string

Required. Provided string value.

PolicySingleChoiceResponse

Any response where a single option is chosen from several possibilities.

JSON representation
{
  "value": string
}
Fields
value

string

Required. Provided value.

PolicyMultipleChoiceResponse

Any response where multiple options can be chosen from several possibilities.

JSON representation
{
  "values": [
    string
  ]
}
Fields
values[]

string

Optional. Provided values.

PolicyGroupResponse

A repeated group of responses.

JSON representation
{
  "groups": [
    {
      object (Group)
    }
  ]
}
Fields
groups[]

object (Group)

Optional. Groups of responses to questions.

Group

A group of responses.

JSON representation
{
  "responses": [
    {
      object (NestedPolicyResponse)
    }
  ]
}
Fields
responses[]

object (NestedPolicyResponse)

Required. Responses within a group.

NestedPolicyResponse

An individual nested response to a policy question about an app. Nested responses are like regular responses but without groups.

JSON representation
{
  "questionId": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "stringResponse": {
    object (PolicyStringResponse)
  },
  "singleChoiceResponse": {
    object (PolicySingleChoiceResponse)
  },
  "multipleChoiceResponse": {
    object (PolicyMultipleChoiceResponse)
  },
  "booleanResponse": {
    object (PolicyBooleanResponse)
  },
  "documentResponse": {
    object (PolicyDocumentResponse)
  }
  // End of mutually exclusive fields.
}
Fields
questionId

string

Required. ID of the question being answered.

Specific response value. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
stringResponse

object (PolicyStringResponse)

Optional. A string response.

singleChoiceResponse

object (PolicySingleChoiceResponse)

Optional. A single choice response.

multipleChoiceResponse

object (PolicyMultipleChoiceResponse)

Optional. A multiple choice response.

booleanResponse

object (PolicyBooleanResponse)

Optional. A boolean response.

documentResponse

object (PolicyDocumentResponse)

Optional. A document response.

End of mutually exclusive fields.

PolicyBooleanResponse

Responses that will only ever be a boolean.

JSON representation
{
  "value": boolean
}
Fields
value

boolean

Required. Provided boolean value.

PolicyDocumentResponse

An uploaded document. Must be a single logical document (e.g. a financial license).

JSON representation
{
  "documentId": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "expiryDate": {
    object (Date)
  },
  "nonExpiring": boolean
  // End of mutually exclusive fields.
}
Fields
documentId

string

Required. ID of the uploaded document.

Expiry information for the document. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
expiryDate

object (Date)

Optional. Expiry date for the document.

nonExpiring

boolean

Optional. True if confirmed that the document does not have an expiry date.

End of mutually exclusive fields.

PolicyKeyedGroupResponse

A group of responses each identified by a distinct key within an allowed set.

JSON representation
{
  "groups": [
    {
      object (KeyedGroup)
    }
  ]
}
Fields
groups[]

object (KeyedGroup)

Optional. Groups of responses to questions. Each KeyedGroup.key must be unique within this list.

KeyedGroup

A group of responses, with a key.

JSON representation
{
  "key": string,
  "responses": [
    {
      object (NestedPolicyResponse)
    }
  ]
}
Fields
key

string

Required. Key for this group.

responses[]

object (NestedPolicyResponse)

Required. Responses in this group.