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
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| 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
{
"search_mode": "search",
"query": "meditation",
"max_results": 20
}
{
"search_mode": "product",
"product_id": "com.spotify.music"
}
{
"search_mode": "reviews",
"product_id": "com.spotify.music",
"max_results": 100
}
{
"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.
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
- ASO keyword rank tracking on Android
- Competitor app monitoring and feature-release watching
- App review sentiment analysis
- Data safety and permissions auditing across a portfolio
- Cross-platform app intelligence beside the Apple App Store sources