Google Play Developer API

The Google Play Developer API is a REST-based web service that allows you to perform publishing
and app-management tasks. You can use this API to integrate your publishing
operations with your release-management process.

Not all developers will need to use these APIs—in most cases you will
continue to manage your apps directly using the Google Play Console.
However, if you have a large number of APKs to manage, or have to track user
purchases and subscriptions, you may find this API very useful.

Using the Google Play Developer API, you can automate a variety of
app-management tasks, including:

Publishing API

The Google Play Developer Publishing API allows you to automate frequent tasks
having to do with app distribution. This provides functions
similar to those available to a developer through the Play Console, such
as:

Creating and modifying Google Play Store listings, including localized text
and graphics and multi-device screenshots

Those tasks are performed using the
edits
functionality, which takes a transactional approach to making changes —
you bundle several changes into a single draft edit, then commit the changes all
at once. (None of the changes take effect until the edit is committed.)

Note: Not all developers will need to use this
API. All the functionality provided by the API is also available through the
Google Play Console. However, this API lets you integrate your app and listing
update process with your existing tools, which will be very useful for some
developers. In particular, if you have a large number of APKs to manage, or
localized listings in many different locales, you may find this API invaluable.

Subscriptions and In-App Purchases API

The API allows you to manage your app's catalog of in-app products and
subscriptions. In addition, with the Subscriptions and In-App Purchases API you
can quickly retrieve the
details of any purchase using a standard GET request. In the request you supply
information about the purchase — app package name, purchase or
subscription ID, and the purchase token. The server responds with a JSON object
describing the associated purchase details, order status, developer payload, and
other information.

You can use the Purchase Status API in several ways, such as for reporting
and reconciliation of individual orders and for verifying purchases and
subscription expirations. You can also use the API to learn about cancelled
orders and confirm whether in-app products have been consumed, including
whether they were consumed before being cancelled.

Note: The Subscriptions and In-App
Purchases API does not use the new, transactional "edits" functionality used by
the Publishing API. Methods for the
Inappproducts,
Purchases.products,
and Purchases.subscriptions
resources take effect immediately. Each resource's API reference page notes
specifically whether the methods for that resource use the "edits"
model.

Staged Edits

The Google Play Developer Publishing API Edits methods allow you to prepare
and commit changes to your Google Play apps. Once your update is ready to go,
you can deploy it with a single operation. The changes you can make include:

Uploading one or more APKs

Assigning different APKs to different “tracks”: alpha, beta, staged
rollout, and production

Creating and modifying localized store listings for the app

Uploading screenshots and other images for the app’s store listings

Once all the desired changes have been staged, they are all committed with a
single operation.

For full details on staged edits, see the Google Play Developer API
Edits
page.

Note: The new, transactional "edits"
functionality is only used by the Publishing
API. Methods for the Subscriptions and
In-App Purchases API take effect immediately. Each resource's API reference
page notes specifically whether the methods for that resource use the "edits"
model.

Using the API Efficiently

Access to the Google Play Developer API is regulated to help ensure a
high-performance environment for all applications that use it (as described in
Quota). While you can
request a higher daily quota for your application, we highly recommend that you
minimize your access using these techniques:

Limit the number of app updates — Do not publish alpha or beta
updates more frequently than once a day. (Production apps should be updated
even less frequently than that.) Every update costs your users time and
possibly money. If you update too frequently, users will start ignoring
updates, or even uninstall the product. (Of course, if there's a major problem
with your app, go ahead and fix it.)

Query the Purchase Status API for new purchases only — At
purchase, your app can pass the purchase token and other details to your backend
servers, which can use the Purchase Status API to verify the purchase.

Cache purchase details on your servers — To the extent possible,
cache the purchase details for in-app products and subscriptions on your backend
servers. If your app contacts your backend servers at runtime to verify purchase
validity, your server can verify the purchase based on the cached details, to
minimize use of the Purchase Status API and to provide the fastest possible response
(and best experience) for the user.

Store subscription expiry on your servers — Your servers should
use the Purchase Status API to query the expiration date for new subscription tokens,
then store the expiration date locally. This allows you to check the status of
subscriptions only at or after the expiration (see below).

Query for subscription status only at expiration — Once your
server has retrieved the expiration date of subscription tokens, it should not query
the Google Play servers for the subscription status again until the subscription is
reaching or has passed the expiration date. Typically, your servers would run a batch
query each day to check the status of expiring subscriptions, then update the database.
Note that:

Your servers should not query all subscriptions every day.

Your servers should never query subscription status dynamically, based on
individual requests from your Android application.

By following those general guidelines, your implementation will offer the
best possible performance for users.

Quota

Applications using the Google Play Developer API are limited to an
initial courtesy usage quota of 200,000 requests per day (per
application). This should provide enough access for publishing activities and
normal subscription-validation needs.

If you need to request a higher limit for your application, use the "Request
more" link on the Quotas
pane of the Google Developers Console.

Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.