DEVELOPER TOOLSCOMPANYAI API MCP READY

Google Play API

Search the Play Store to get ranked apps with developer, rating and download band, pull the full listing for any package including version, content rating, ad and in-app-purchase flags and the data safety declarations, or read user reviews with rating, helpful votes and date. Per-country and per-language storefronts, and it pairs with the Apple App Store Actors for a cross-platform view.

RECORDS3
MEDIAN LAGon demand
PARAMETERS6
TOTAL USERS1
MONTHLY ACTIVE1
TOTAL RUNS31
SUCCESS (30D)100.0%
RATINGno ratings yet
LAST MODIFIED2026-08-08
PUBLISHED2026-08

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
search_mode enum yes search search finds apps by keyword and returns each package name; product returns the full listing; reviews returns user reviews.
query string no Required in search mode. A keyword such as 'fitness tracker' or 'photo editor'.
product_id string no Required for product and reviews. The Android package name, such as com.spotify.music, from any search row.
max_results integer no 100 Rows to return before stopping. Search returns 20 apps per upstream call, reviews 20, and paging is automatic. — drives your bill
country string no us Two letter country code. The Play Store shows different apps, prices and availability by country.
language string no en Two letter language code, which controls the language of descriptions and reviews.

Worked examples

Keyword rankings — position is the ranking
{
  "search_mode": "search",
  "query": "meditation",
  "max_results": 20
}
Full listing — version, data safety and developer contacts
{
  "search_mode": "product",
  "product_id": "com.spotify.music"
}
User reviews — 20 per upstream page, paged automatically
{
  "search_mode": "reviews",
  "product_id": "com.spotify.music",
  "max_results": 100
}
German storefront — rankings differ by country
{
  "search_mode": "search",
  "query": "banking",
  "country": "de",
  "language": "de"
}
POWER-USER TIP
Search position is the ranking — The source returns no explicit rank on search rows, so results are numbered in the order the store returned them. That order is the ranking, which is what ASO work actually needs. Run the same query on a schedule and the position column becomes a rank history.
POWER-USER TIP
Detail and the first review page share a call — Product detail and the first 20 reviews arrive in the same upstream response, so a run that wants both pays for that call once. Review pages beyond the first each cost another call.

Coverage

3
modes — search · product · reviews
25
fields per listing — version content rating ads iap data safety contacts +
2
storefronts — country and language codes

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~google-play-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"search_mode":"search","query":"meditation","max_results":20}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/google-play-api").call(
    run_input={"search_mode": "search", "query": "meditation", "max_results": 20}
)
for app in client.dataset(run.default_dataset_id).iterate_items():
    print(app.get("position"), app.get("title"), app.get("developer"), app.get("rating"))

What people use it for

Alternatives