Play Catalog API Developer Guide

The Play Catalog API enables third-party app stores (3PAS) registered on Google Play to poll for updates to the Google Play app catalog. Callers can retrieve catalog details for apps that have been modified or removed since the last daily catalog export.

For a complete list of endpoints, methods, and resource schemas, see the Play Catalog API Reference.

Before You Begin

You must complete the main Getting Started Guide to set up your API access, service credentials, and Google Cloud project before you can make calls to the Play Catalog API.


API Design & Architecture

The Play Catalog export is generated every 24 hours. The Play Catalog API provides an intraday polling mechanism to retrieve updates that occurred since the last export:

  1. Poll for update events: You query appstorecatalog.recentUpdateEvents.list with a startTime and endTime window to find which package names were modified or deleted.
  2. Fetch detailed views: For each package name that was modified, you call appstorecatalog.recentAppViews.get to fetch the detailed CatalogAppView metadata.

The API is read-only and is restricted to return events that occurred in the last 36 hours. The API has a QPS limit of 2 shared between both methods.


1. Polling for Catalog Update Events

To retrieve the list of packages that changed in a specific time window, call the appstorecatalog.recentUpdateEvents.list method.

Only update events for eligible apps are returned. Eligible apps must be:

  • Opted-in for catalog inclusion for the calling app store.
  • Published and available in the United States (US) on the Google Play Store.

Understanding Update Types

  • MODIFICATION: Triggered when an eligible app is modified, published for the first time, starts targeting the US, or when the app has newly opted-in to your catalog.
  • DELETION: Triggered when an app is unpublished, opted-out of catalog inclusion, suspended or blocked, or stops targeting the US.

2. Retrieving Catalog App Views

For each package returned with a MODIFICATION event, you can fetch its updated catalog details by calling the appstorecatalog.recentAppViews.get method.


3. Best Practices & Synchronization

To maintain a consistent catalog database on your store, follow these integration guidelines:

  • Daily export sync: Import the full list of eligible apps using the daily catalog export.
  • (optional) Intraday Sync: Poll the appstorecatalog.recentUpdateEvents.list endpoint regularly (e.g., every minute) with a moving time window. Ensure you handle pagination using the nextPageToken.
    • Process Updates:
      • For MODIFICATION events, fetch the updated CatalogAppView using appstorecatalog.recentAppViews.get and update your local database.
      • For DELETION events, remove the app from your store's listings or hide it from users.
    • Handle Repeated Modification Events: You might see multiple MODIFICATION events for the same app. This means that the app was modified multiple times in the queried time window. appstorecatalog.recentAppViews.get will always return the app view of the latest modification.