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

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 to a policy question about an app.

JSON representation
{
  "questionId": string,

  // Union field value can be only one of the following:
  "stringResponse": {
    object (PolicyStringResponse)
  },
  "singleChoiceResponse": {
    object (PolicySingleChoiceResponse)
  },
  "multipleChoiceResponse": {
    object (PolicyMultipleChoiceResponse)
  },
  "groupResponse": {
    object (PolicyGroupResponse)
  },
  "keyedGroupResponse": {
    object (PolicyKeyedGroupResponse)
  },
  "booleanResponse": {
    object (PolicyBooleanResponse)
  },
  "documentResponse": {
    object (PolicyDocumentResponse)
  }
  // End of list of possible types for union field value.
}
Fields
questionId

string

Required. ID of the question being answered.

Union field value. Specific response value. value can be only one of the following:
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.

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,

  // Union field value can be only one of the following:
  "stringResponse": {
    object (PolicyStringResponse)
  },
  "singleChoiceResponse": {
    object (PolicySingleChoiceResponse)
  },
  "multipleChoiceResponse": {
    object (PolicyMultipleChoiceResponse)
  },
  "booleanResponse": {
    object (PolicyBooleanResponse)
  },
  "documentResponse": {
    object (PolicyDocumentResponse)
  }
  // End of list of possible types for union field value.
}
Fields
questionId

string

Required. ID of the question being answered.

Union field value. Specific response value. value can be only one of the following:
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.

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,

  // Union field expiry can be only one of the following:
  "expiryDate": {
    object (Date)
  },
  "nonExpiring": boolean
  // End of list of possible types for union field expiry.
}
Fields
documentId

string

Required. ID of the uploaded document.

Union field expiry. Expiry information for the document. expiry can be only one of the following:
expiryDate

object (Date)

Optional. Expiry date for the document.

nonExpiring

boolean

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

Date

Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:

  • A full date, with non-zero year, month, and day values.
  • A month and day, with a zero year (for example, an anniversary).
  • A year on its own, with a zero month and a zero day.
  • A year and month, with a zero day (for example, a credit card expiration date).

Related types:

JSON representation
{
  "year": integer,
  "month": integer,
  "day": integer
}
Fields
year

integer

Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.

month

integer

Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.

day

integer

Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.

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.