Skip to content

Google Play Android Developer API API

by googleapis.com

OAuthHTTPSAnalytics
Open documentation ↗

Overview

Lets Android application developers access their Google Play accounts. At a high level, the expected workflow is to "insert" an Edit, make changes as necessary, and then "commit" it.

Google Play Android Developer API is an analytics API from googleapis.com. Requests are authenticated with OAuth. It is served over HTTPS. Its OpenAPI description documents 94 endpoints.

At a glance

Authentication
OAuth
HTTPS
Yes
CORS
Unknown
Category
Analytics
Base URL
https://androidpublisher.googleapis.com/
Version
v3
Endpoints
94
Spec updated
2023-04-19

Make a first request

Replace the placeholders; the documentation says exactly where credentials go.

cURL
curl -X GET "https://androidpublisher.googleapis.com/androidpublisher/v3/applications/PACKAGENAME/deviceTierConfigs" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN"
JavaScript
const response = await fetch("https://androidpublisher.googleapis.com/androidpublisher/v3/applications/PACKAGENAME/deviceTierConfigs", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "GET",
    "https://androidpublisher.googleapis.com/androidpublisher/v3/applications/PACKAGENAME/deviceTierConfigs",
    headers={
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_TOKEN",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
POST/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apkUploads an APK to internal app sharing. If you are using the Google API client libraries, please increase the timeout of the http request before calling this en
POST/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundleUploads an app bundle to internal app sharing. If you are using the Google API client libraries, please increase the timeout of the http request before calling
GET/androidpublisher/v3/applications/{packageName}/deviceTierConfigsReturns created device tier configs, ordered by descending creation time.
POST/androidpublisher/v3/applications/{packageName}/deviceTierConfigsCreates a new device tier config for an app.
GET/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}Returns a particular device tier config.
POST/androidpublisher/v3/applications/{packageName}/editsCreates a new edit for an app.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}Gets an app edit.
DELETE/androidpublisher/v3/applications/{packageName}/edits/{editId}Deletes an app edit.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/apksLists all current APKs of the app and edit.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}/apksUploads an APK and adds to the current edit.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHostedCreates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to organizations
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}Uploads a new deobfuscation file and attaches to the specified APK.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}Fetches the expansion file configuration for the specified APK.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}Uploads a new expansion file and attaches to the specified APK.
PUT/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}Updates the APK's expansion file configuration to reference another APK's expansion file. To add a new expansion file use the Upload method.
PATCH/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}Patches the APK's expansion file configuration to reference another APK's expansion file. To add a new expansion file use the Upload method.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundlesLists all current Android App Bundles of the app and edit.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundlesUploads a new Android App Bundle to this edit. If you are using the Google API client libraries, please increase the timeout of the http request before calling
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/countryAvailability/{track}Gets country availability.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/detailsGets details of an app.
PUT/androidpublisher/v3/applications/{packageName}/edits/{editId}/detailsUpdates details of an app.
PATCH/androidpublisher/v3/applications/{packageName}/edits/{editId}/detailsPatches details of an app.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/listingsLists all localized store listings.
DELETE/androidpublisher/v3/applications/{packageName}/edits/{editId}/listingsDeletes all store listings.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}Gets a localized store listing.
PUT/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}Creates or updates a localized store listing.
PATCH/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}Patches a localized store listing.
DELETE/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}Deletes a localized store listing.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}Lists all images. The response may be empty.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}Uploads an image of the specified language and image type, and adds to the edit.
DELETE/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}Deletes all images for the specified language and image type. Returns an empty response if no images are found.
DELETE/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}Deletes the image (specified by id) from the edit.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}Gets testers. Note: Testers resource does not support email lists.
PUT/androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}Updates testers. Note: Testers resource does not support email lists.
PATCH/androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}Patches testers. Note: Testers resource does not support email lists.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/tracksLists all tracks.
GET/androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}Gets a track.
PUT/androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}Updates a track.
PATCH/androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}Patches a track.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}:commitCommits an app edit.
POST/androidpublisher/v3/applications/{packageName}/edits/{editId}:validateValidates an app edit.
GET/androidpublisher/v3/applications/{packageName}/generatedApks/{versionCode}Returns download metadata for all APKs that were generated from a given app bundle.
GET/androidpublisher/v3/applications/{packageName}/generatedApks/{versionCode}/downloads/{downloadId}:downloadDownloads a single signed APK generated from an app bundle.
GET/androidpublisher/v3/applications/{packageName}/inappproductsLists all in-app products - both managed products and subscriptions. If an app has a large number of in-app products, the response may be paginated. In this cas
POST/androidpublisher/v3/applications/{packageName}/inappproductsCreates an in-app product (i.e. a managed product or a subscription).
GET/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}Gets an in-app product, which can be a managed product or a subscription.
PUT/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}Updates an in-app product (i.e. a managed product or a subscription).
PATCH/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}Patches an in-app product (i.e. a managed product or a subscription).
DELETE/androidpublisher/v3/applications/{packageName}/inappproducts/{sku}Deletes an in-app product (i.e. a managed product or a subscription).
POST/androidpublisher/v3/applications/{packageName}/orders/{orderId}:refundRefunds a user's subscription or in-app purchase order. Orders older than 1 year cannot be refunded.
POST/androidpublisher/v3/applications/{packageName}/pricing:convertRegionPricesCalculates the region prices, using today's exchange rate and country-specific pricing patterns, based on the price in the request for a set of regions.
GET/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}Checks the purchase and consumption status of an inapp item.
POST/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledgeAcknowledges a purchase of an inapp item.
POST/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:consumeConsumes a purchase for an inapp item.
GET/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}Checks whether a user's subscription purchase is valid and returns its expiry time.
POST/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledgeAcknowledges a subscription purchase.
POST/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancelCancels a user's subscription purchase. The subscription remains valid until its expiration time.
POST/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:deferDefers a user's subscription purchase until a specified future expiration time.
POST/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refundRefunds a user's subscription purchase, but the subscription remains valid until its expiration time and it will continue to recur.
POST/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revokeRefunds and immediately revokes a user's subscription purchase. Access to the subscription will be terminated immediately and it will stop recurring.
GET/androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}Get metadata about a subscription
GET/androidpublisher/v3/applications/{packageName}/purchases/voidedpurchasesLists the purchases that were canceled, refunded or charged-back.
GET/androidpublisher/v3/applications/{packageName}/reviewsLists all reviews.
GET/androidpublisher/v3/applications/{packageName}/reviews/{reviewId}Gets a single review.
POST/androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:replyReplies to a single review, or updates an existing reply.
GET/androidpublisher/v3/applications/{packageName}/subscriptionsLists all subscriptions under a given app.
POST/androidpublisher/v3/applications/{packageName}/subscriptionsCreates a new subscription. Newly added base plans will remain in draft state until activated.
GET/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}Reads a single subscription.
PATCH/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}Updates an existing subscription.
DELETE/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}Deletes a subscription. A subscription can only be deleted if it has never had a base plan published.
DELETE/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}Deletes a base plan. Can only be done for draft base plans. This action is irreversible.
GET/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offersLists all offers under a given subscription.
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offersCreates a new subscription offer. Only auto-renewing base plans can have subscription offers. The offer state will be DRAFT until it is activated.
GET/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}Reads a single offer
PATCH/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}Updates an existing subscription offer.
DELETE/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}Deletes a subscription offer. Can only be done for draft offers. This action is irreversible.
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:activateActivates a subscription offer. Once activated, subscription offers will be available to new subscribers.
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:deactivateDeactivates a subscription offer. Once deactivated, existing subscribers will maintain their subscription, but the offer will become unavailable to new subscrib
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:activateActivates a base plan. Once activated, base plans will be available to new subscribers.
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:deactivateDeactivates a base plan. Once deactivated, the base plan will become unavailable to new subscribers, but existing subscribers will maintain their subscription
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:migratePricesMigrates subscribers who are receiving an historical subscription price to the currently-offered price for the specified region. Requests will cause price chang
POST/androidpublisher/v3/applications/{packageName}/subscriptions/{productId}:archiveArchives a subscription. Can only be done if at least one base plan was active in the past, and no base plan is available for new or existing subscribers curren
GET/androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variantsReturns the list of previously created system APK variants.
POST/androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variantsCreates an APK which is suitable for inclusion in a system image from an already uploaded Android App Bundle.
GET/androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}Returns a previously created system APK variant.
GET/androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}:downloadDownloads a previously created system APK which is suitable for inclusion in a system image.
GET/androidpublisher/v3/{name}Gets an existing external transaction.
PATCH/androidpublisher/v3/{name}Updates access for the user to the developer account.
DELETE/androidpublisher/v3/{name}Removes all access for the user to the given developer account.
POST/androidpublisher/v3/{name}:refundRefunds or partially refunds an existing external transaction.
POST/androidpublisher/v3/{parent}/externalTransactionsCreates a new external transaction.
POST/androidpublisher/v3/{parent}/grantsGrant access for a user to the given package.
GET/androidpublisher/v3/{parent}/usersLists all users with access to a developer account.
POST/androidpublisher/v3/{parent}/usersGrant access for a user to the given developer account.

Questions

Does the Google Play Android Developer API API need an API key?

Yes. The Google Play Android Developer API API uses OAuth authentication; the documentation explains how to get credentials.

Does the Google Play Android Developer API API support HTTPS?

Yes, the Google Play Android Developer API API is served over HTTPS.

How many endpoints does the Google Play Android Developer API API have?

Its OpenAPI description lists 94 endpoints in version v3. All of them are shown on this page.

What are alternatives to the Google Play Android Developer API API?

Other Analytics APIs include Google Play Integrity API, versionhistory.googleapis.com API, Doc Converter, Perspective Comment Analyzer API, Safe Browsing API.

Compare alternatives →

Google Play Integrity API

Analytics

The Play Integrity API helps you check that you're interacting with your genuine app on a genuine Android device powered by Google Play services. The Play Integrity API has replaced SafetyNet Attestation and Android Device Verification.

OAuth1 endpoints

versionhistory.googleapis.com API

Analytics

Version History API - Prod

No auth4 endpoints

Doc Converter

Analytics

This api converts file formats of OpenXml and OpenOffice documents formats to vector files (e.g., svg)

No auth1 endpoints

Perspective Comment Analyzer API

Analytics

The Perspective Comment Analyzer API provides information about the potential impact of a comment on a conversation (e.g. it can provide a score for the "toxicity" of a comment). Users can leverage the "SuggestCommentScore" method to submit corrections to improve Perspective over time. Users can set the "doNotStore" flag to ensure that all submitted comments are automatically deleted after scores are returned.

OAuth2 endpoints

Safe Browsing API

Analytics

Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources. The Safe Browsing APIs are for non-commercial use only. If you need to use APIs to detect malicious URLs for commercial purposes – meaning “for sale or revenue-generating purposes” – please refer to the Web Risk API.

No auth7 endpoints

Web Fonts Developer API

Analytics

The Google Web Fonts Developer API lets you retrieve information about web fonts served by Google.

No auth1 endpoints

Listed from APIs.guru (CC0).