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:
- Poll for update events: You query
appstorecatalog.recentUpdateEvents.listwith astartTimeandendTimewindow to find which package names were modified or deleted. - Fetch detailed views: For each package name that was modified, you call
appstorecatalog.recentAppViews.getto fetch the detailedCatalogAppViewmetadata.
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.listendpoint regularly (e.g., every minute) with a moving time window. Ensure you handle pagination using thenextPageToken.- Process Updates:
- For
MODIFICATIONevents, fetch the updatedCatalogAppViewusingappstorecatalog.recentAppViews.getand update your local database. - For
DELETIONevents, remove the app from your store's listings or hide it from users.
- For
- 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.getwill always return the app view of the latest modification.
- Process Updates: