Google Play Store API avatar

Google Play Store API

Pricing

from $1.20 / 1,000 successful play store requests

Go to Apify Store
Google Play Store API

Google Play Store API

Search Android apps, retrieve app details, and collect Play Store reviews.

Pricing

from $1.20 / 1,000 successful play store requests

Rating

0.0

(0)

Developer

Gaurav Kumar Choudhary

Gaurav Kumar Choudhary

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Security

Limited permissions

Share

Google Play Store API — Python Apify Actor

At a glance

  • Collect: App search, app details and reviews, selected with mode.
  • Input: use the runnable example below or the prefilled Input form.
  • Output: the default dataset supports JSON/CSV/Excel export; see output modes below.
  • Billing: $1.20–$1.50 per 1,000 successful pages or app-detail requests, depending on plan. Not per app/review row. No startup fee. Platform usage may be additional.
  • Limits: Keyword searches are not exhaustive; reviews use supported relevance sorting. No APK downloads.

Search Android apps, explore categories and charts, retrieve app details, and export paginated reviews. Choose country and language, set page and result limits, and download JSON, CSV or Excel from the Apify dataset. Authentication is internal and never appears in client input, output, or client-facing error messages.

Search apps

{
"mode": "search",
"query": "weather",
"gl": "us",
"hl": "en",
"num": 20,
"maxPages": 2,
"maxItems": 30,
"outputMode": "items"
}

You may search by query, appsCategory, or chart. Charts support topselling_free, topselling_paid, and topgrossing. storeDevice filters devices; age applies only to the FAMILY category. num accepts 1–100, but the source may return fewer results. The MEDICAL category is currently unavailable; use a keyword query instead.

App product details

{
"mode": "product",
"productId": "com.discord",
"gl": "us",
"hl": "en"
}

Reviews

{
"mode": "reviews",
"productId": "com.discord",
"gl": "us",
"hl": "en"
}

Pagination and output

Set maxPages (default 1, maximum 100) and maxItems (default 100, maximum 10,000). Details use one request. Each fetched search or review page uses one request. Reviews return up to 20 records per page and currently support relevance sorting only. Keyword search typically exposes approximately 30 apps in total; this is not an exhaustive store crawl.

Use the returned next_page_token as nextPageToken to resume manually. Automatic pagination stops at repeated tokens, removes duplicate records, and preserves collected results with a warning if a later request fails.

outputMode: "items" exports one app or review per dataset row. The default summary exports a single object containing items, pagination, warnings, and request counts. Both modes save the full summary under OUTPUT in the key-value store.

App details include available description, download range, screenshots, release notes and developer information. Reviews include normalized reviewId, reviewer, text, reviewedAt, helpfulVotes, appVersion, and developer reply fields, alongside original fields. Missing values remain absent or null; device-dependent version and Android requirements may not be available. productId accepts a package ID or Google Play app-details URL.

Billing and trial limits

Billing is per successfully fetched page or app-details request, not per exported row. There is no Actor start fee. Valid empty responses count as successful requests; failed requests do not incur the request event charge. Apify platform costs may still apply. Set the maximum run charge and page limits before running.

The additional 100-request lifetime Free-plan restriction is currently disabled. Successful requests are billed against available Apify credits on every plan. The owner can enable the per-account lifetime restriction after configuring its private quota ledger; it is not active in this release.

API access

Use the Actor's API tab in Apify Console to obtain an authenticated example. For synchronous dataset output, call POST /v2/acts/gauravlabs~google-play-store-api/run-sync-get-dataset-items with your Apify API token and one of the input objects above. For larger jobs, start an asynchronous run and retrieve the dataset after completion.

Minimal API example

Store your own Apify token in APIFY_TOKEN; never paste it into public input or code. This example uses the same small input as the prefilled form.

import os
import requests
response = requests.post(
"https://api.apify.com/v2/acts/gauravlabs~google-play-store-api/run-sync-get-dataset-items",
headers={"Authorization": "Bearer " + os.environ["APIFY_TOKEN"]},
json={"query":"weather"},
timeout=300,
)
response.raise_for_status()
print(response.json())

For large batches, start an asynchronous run with /runs, wait for its final status, and retrieve its default dataset. HTTP success when starting a run does not prove the extraction succeeded.

Minimal output shape (illustrative)

The following shows one documented field, not a fresh result or a promised yield. Inspect the output reference above for the complete schema.

{
"items": []
}

Practical workflow and accuracy notes

undefined