Google Play Scraper - App Details, Search & Reviews
Pricing
Pay per event
Google Play Scraper - App Details, Search & Reviews
Google Play scraper in one Actor: app details by package name or URL, keyword search for apps, and user reviews with sort and country. Installs, rating, histogram, price, developer, version, update date. Plain HTTP, no login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Data Gleaner
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Play Scraper - App Details, Search & Reviews in One Actor
Monitor your app's reviews, track competitors and keywords, and pull Google Play data as clean JSON: app details by package name or URL, keyword search for apps, and user reviews with sort, star filter, country and language. One Actor does all three jobs, over plain HTTP with no browser, no login and no Google account.
It costs $0.0003 per app and $0.0001 per review ($0.30 per 1,000 apps, $0.10 per 1,000 reviews).
What does Google Play Scraper do?
It returns the data a visitor sees on Google Play, through the Apify dataset and API as JSON, CSV or Excel. Typical uses:
- App review monitoring: pull the newest reviews of your app every day, or only the 1-star ones with
reviewScore: 1, with text, stars, version, helpful votes and your reply. Send new complaints to Slack, email or a ticket system. - ASO and competitor tracking: search a keyword and record which apps rank where (
position), with installs bucket, rating, rating count, price, category and last update. Schedule it daily to see rank, rating and release-cadence changes over time. - Market and category research: list the apps for
habit tracker,invoice makerorperiod trackerwith installs, rating histograms, price and monetisation flags (offersInAppPurchases,containsAds) before you build. - Voice of customer: feed thousands of reviews of a competitor into your own analysis or an LLM to find what users ask for and complain about.
- Release and pricing watch:
version,updated,recentChangesandpriceper app, per country. - AI agents and apps: feed live Play Store data into an agent or product.
Need the developer's email, address or phone? Use app-developer-email-finder, which finds contact details for Google Play, App Store, Steam and Chrome Web Store developers. This Actor also returns developerEmail and developerWebsite when the store page shows them.
Input
| Field | Meaning |
|---|---|
appIds | Details mode. Package names (com.spotify.music) or Google Play URLs. One app record each. Apps that do not exist in the chosen country are skipped and not charged. |
searchQueries | Search mode. Keywords as typed in the Play Store. Up to maxItems apps per keyword in store rank order. |
reviewAppIds | Reviews mode. Apps whose reviews to fetch, up to maxReviews each. Returns review records only (no app record). |
maxItems | Apps per search keyword, default 30. Google Play shows about 20 to 30 results per keyword. |
includeDetails | Default on. One extra request per search result adds rating count, histogram, version, update date, developer ID and website, description and screenshots. Off gives a faster list from the search cards only. The price per app is the same. |
maxReviews | Reviews per app, default 100, up to 100,000. |
reviewSort | newest (default, best for monitoring), relevant or rating. |
reviewScore | Optional, 1 to 5. Only reviews with exactly that many stars. |
country, language | Store country (US, GB, DE, JP) and language (en, de, pt-BR). Country changes prices, availability and which reviews appear. |
requestDelaySecs | Pacing between requests, default 0.5. |
proxyConfiguration | Optional, off by default. |
With no input at all, the Actor runs a built-in example (1 app, 2 search results for habit tracker, 2 reviews) and says so in the run's status message. If you already call another Google Play Actor, these input names are also accepted: startUrls, queries, searchTerms, countryCode, languageCode, maxResults, sortBy, maxReviewsPerApp.
App details and a keyword search in one run:
{"appIds": ["com.spotify.music", "https://play.google.com/store/apps/details?id=org.isoron.uhabits"],"searchQueries": ["habit tracker"],"maxItems": 30,"country": "US","language": "en"}
Reviews of two apps, newest first:
{"reviewAppIds": ["com.spotify.music", "org.isoron.uhabits"],"maxReviews": 200,"reviewSort": "newest"}
Only the 1-star reviews of an app:
{ "reviewAppIds": ["org.isoron.uhabits"], "reviewScore": 1, "maxReviews": 100 }
Output
Every record has source (appIds, search or reviews), country, language and scrapedAt. App records:
{"appId": "org.isoron.uhabits","title": "Loop Habit Tracker","summary": "Create good habits and track their progress over time","description": "Loop helps you create and maintain good habits...","developer": "Álinson S Xavier","developerId": "7792440048329025379","developerUrl": "https://play.google.com/store/apps/developer?id=%C3%81linson+S+Xavier","developerWebsite": null,"developerEmail": "dev@loophabits.org","installs": "5,000,000+","minInstalls": 5000000,"realInstalls": 7892890,"rating": 4.72,"ratingCount": 63451,"reviewsCount": 3423,"histogram": {"1": 1860, "2": 881, "3": 1762, "4": 4126, "5": 54793},"price": 0,"currency": "USD","free": true,"offersInAppPurchases": false,"containsAds": false,"genre": "Productivity","genreId": "PRODUCTIVITY","released": "Feb 22, 2016","updated": "2025-09-14T22:56:06+00:00","version": "2.3.1","contentRating": "Everyone","recentChanges": "Loop 2.3.1: ...","url": "https://play.google.com/store/apps/details?id=org.isoron.uhabits","icon": "https://play-lh.googleusercontent.com/...","screenshots": ["https://play-lh.googleusercontent.com/..."],"privacyPolicyUrl": null,"source": "search","searchQuery": "habit tracker","position": 1,"inputUrl": null,"country": "US","language": "en","scrapedAt": "2026-10-12T08:00:00+00:00"}
Review records:
{"reviewId": "aa37a247-402b-4d90-a8a8-d113d330fabf","appId": "com.spotify.music","userName": "Jon T.","userImage": "https://play-lh.googleusercontent.com/a/...","text": "constantly crackling, pausing and jumping for podcasts I've downloaded","score": 1,"thumbsUp": 0,"version": "9.1.90.2270","at": "2026-10-10T23:25:10+00:00","replyText": "Hi. Thanks for sharing this with us. ...","repliedAt": "2026-10-11T00:12:57+00:00","reviewSort": "newest","source": "reviews","inputUrl": "com.spotify.music","country": "US","language": "en","scrapedAt": "2026-10-12T08:00:00+00:00"}
The dataset has an Apps view and a Reviews view with the main columns.
Which fields are filled
- Always, on every app record:
appId,title,developer,installs,minInstalls,price,currency,free,genre,contentRating,url,icon,source,scrapedAt.ratingis empty for apps without ratings yet. - Details and search with
includeDetailson (default):ratingCount,reviewsCount,histogram,developerId,developerUrl,released,updated,recentChanges,description,screenshots,offersInAppPurchases,containsAds. - Sometimes empty by nature:
versionis empty for apps whose store page says "Varies with device" (Spotify, many large apps).developerWebsite,developerEmailandprivacyPolicyUrlare empty when the developer did not list them.realInstallsis empty when the store page does not carry it. - Reviews:
reviewId,userName,score,thumbsUp,atare always there.textis empty for star-only ratings.versionis empty on some older reviews.replyTextandrepliedAtare only set when the developer replied, which is most often a small share of reviews.
Pricing
Pay per result, two events: $0.0003 per app record and $0.0001 per review record. You pay only for records pushed to the dataset. Apps that do not exist cost nothing. The run stops at your maximum charge.
Worked example: tracking 3 keywords at 30 apps each (90 apps) and the 200 newest reviews of 5 of your own and competitors' apps (1,000 reviews) costs 90 x $0.0003 + 1,000 x $0.0001 = $0.127. Run daily for 30 days that is about $3.80. A 10-app test run costs $0.003.
How this compares
Other Google Play Actors on the Apify Store price between about $0.0001 and $0.001 per result, and most do only one job: app details, or search, or reviews. A few single-purpose Actors charge as little as $0.0001 per item, so if you only need one thing in very large volume, compare. This Actor's case is one input format, one dataset schema and one bill for details, search and reviews, at a price in the same range as the cheapest of them.
Use it from the API
Run it synchronously and get the records back as JSON. Replace <YOUR_APIFY_TOKEN> with your token.
curl -X POST "https://api.apify.com/v2/acts/datagleaner~google-play-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"reviewAppIds": ["com.spotify.music"], "maxReviews": 50, "reviewSort": "newest"}'
It also works from n8n, Make or Zapier through the Apify integrations, since the output is a flat JSON record.
Use with Python
pip install apify-client, set the APIFY_TOKEN environment variable, and run. This input returns 20 reviews, about $0.002.
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("datagleaner/google-play-scraper").call(run_input={"reviewAppIds": ["com.spotify.music"],"maxReviews": 20,"reviewScore": 1,})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(review["at"], review["score"], review["text"])
Use with JavaScript / Node.js
npm install apify-client, set APIFY_TOKEN, and run it as an ES module (.mjs).
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('datagleaner/google-play-scraper').call({searchQueries: ['habit tracker'],maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const app of items) console.log(app.position, app.title, app.installs, app.rating);
Use it from n8n, Make, Zapier or an AI agent
Actor ID: datagleaner/google-play-scraper
Minimal input:
{"searchQueries": ["habit tracker"], "maxItems": 10}
Each tool below runs this Actor with your own Apify API token.
-
n8n: add the Apify node (
@apify/n8n-nodes-apify). On n8n Cloud you install it from the community node registry. Choose Run an Actor and get dataset, set Actor todatagleaner/google-play-scraperand paste the input above. -
Make: use the Apify app's Run an Actor module, then Get Dataset Items to read the results. Watch Actor Runs can trigger a scenario when a run finishes.
-
Zapier: use the Apify action Run Actor, then the search Fetch dataset items. The trigger Finished Actor run starts a Zap when a run ends.
-
AI agents (MCP): connect to
https://mcp.apify.com?tools=datagleaner/google-play-scraper. In Claude Code:claude mcp add --transport http apify "https://mcp.apify.com?tools=datagleaner/google-play-scraper"Then run
/mcpto sign in to Apify in your browser. Then ask in plain language, for example: "Get the 50 newest 1-star reviews of com.spotify.music and summarise the top complaints." An agent without the Actor preloaded can find it with Apify'ssearch-actorstool by searching "google play". -
LangChain (Python):
# pip install langchain-apify, then set APIFY_TOKEN in your environmentimport jsonfrom langchain_apify import ApifyActorsTooltool = ApifyActorsTool("datagleaner/google-play-scraper")result = tool.invoke({"run_input": json.loads('{"reviewAppIds": ["com.spotify.music"], "maxReviews": 20}')})
Limits
- Search returns one page. Google Play shows about 20 to 30 apps per keyword, and this Actor returns them in store rank order. For wider coverage, search several related keywords.
- Installs are buckets. The store shows
5,000,000+, not an exact number.minInstallsis that bucket as a number. - Reviews are what Google Play shows. Deep pagination worked to 6,000 reviews of one app in testing. Reviews are filtered by the store country and language you set, so the same app can show different reviews in
USandDE. Reviewer names are the public display names Google Play shows. - Prices and ratings depend on country. Set
countryto the market you care about. - Rankings and numbers change by the minute. Schedule runs and compare
scrapedAt. - At very high volume Google may start refusing requests. The Actor backs off, refreshes its connection and finishes what it has. Enable
proxyConfigurationif that happens. - Google Play changes its page structure now and then. If a field starts coming back empty, report it and it will be fixed.
FAQ
Is there an official Google Play API for this? The Google Play Developer API only gives you data about your own apps. This Actor reads the public store pages instead, so it works for any app, yours or a competitor's.
How do I monitor new reviews? Schedule the Actor daily with reviewSort: "newest" and a small maxReviews (say 100), and use reviewId to skip the ones you have seen. Add reviewScore: 1 to watch only complaints.
How do I track keyword rankings? Run searchQueries daily for your keywords and store position for your app and its rivals. position is the 1-based store rank for that keyword.
Can I get the developer's email? developerEmail is filled when the app's store page shows a contact email. For addresses, phone numbers and other stores, use app-developer-email-finder.
Do I need a proxy? No, it works without one on Apify in testing. A proxy option is there for very high volume.
Responsible use
This Actor reads publicly visible Google Play pages without logging in. Use the data in line with Google Play's terms. App records are business data. Reviews contain the display names and text that users posted publicly; if you store or combine them with other data about individuals, the data-protection obligations are yours.