Google Play Reviews Scraper Pro
Pricing
from $0.06 / 1,000 review results
Google Play Reviews Scraper Pro
Google Play reviews scraper for ASO and product research. Export filtered reviews, developer replies, helpful votes and app versions, plus free rating distributions. From $0.08 per 1,000 reviews, platform usage included.
Pricing
from $0.06 / 1,000 review results
Rating
0.0
(0)
Developer
Rosario Vitale
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Why use this Actor?
Google Play reviews scraper for ASO and product research. Export filtered reviews, developer replies, helpful votes and app versions, plus free rating distributions. From $0.08 per 1,000 reviews, platform usage included.
Features
- App package IDs or Play Store URLs — Android package IDs (com.spotify.music) or play.google.com app URLs. Up to 200 unique apps per run, combined with App names to search. Also accepted: appIdsOrUrls.
- App names to search — Find apps by name (for example Duolingo or Spotify) and scrape their reviews too. Up to 50 searches; the number of apps taken from each search is set in Advanced settings. A free search_summary row lists what each search found.
- Language — Google Play language code such as en, it, de, pt.
- Country — Two-letter storefront country such as us, it, de, gb. Also used for app name searches (also accepted for searches: searchCountry).
- Sort reviews by — Newest, Google Play relevance, rating order, or oldest first. Google Play has no oldest-first order, so Oldest first reads newest-first pages up to the scan budget (Maximum pages per app) and returns the oldest matching reviews it found, oldest first.
- Maximum reviews per app — Maximum emitted review rows for each app after filters.
- Maximum total reviews — Hard cap across all apps to keep spend predictable.
- Minimum star rating — Minimum review score, 1-5. Also accepted: minRating.
- Maximum star rating — Maximum review score, 1-5. When it equals the minimum, Google Play filters the stars itself, so fewer pages are read. Also accepted: maxRating.
- Minimum helpful votes — Only emit reviews with at least this many thumbs-up votes.
- Developer reply filter — Return all reviews, only replied reviews, or only unreplied reviews. Also accepted: developerReply (any, yes, no, or true/false).
- Review text contains — Optional case-insensitive substring filter. Filtered rows are not charged.
Use cases
- Android app review research.
- Developer-reply analysis.
- Release feedback monitoring.
- Bulk play store review export.
Related tools
- App Store Reviews Scraper API
- Trustpilot Reviews Scraper - Ratings, Replies & Filters
- YouTube Comments Scraper API
Example input
{"language": "en","country": "us","sortBy": "newest","maxReviewsPerApp": 1000,"maxTotalReviews": 10000,"minScore": 1}
Pricing & cost control
The primary event costs $0.000080 per Review result (about $0.08 per 1,000 successful primary events). Only successful primary events are intentionally billed by this Actor; summary/status rows add context without adding primary-event charges.
Use the bounded input limits and filters to keep both event charges and platform usage predictable.
FAQ
What is this Actor for?
It is designed for Android app review research, developer-reply analysis, release feedback monitoring.
Can I run it on a schedule?
Yes. You can schedule Actor runs on Apify and send the resulting dataset into automations, webhooks, storage, or downstream APIs.
How do I control cost and run size?
Use the input limits and filters shown in the Actor input form. The Actor applies bounded defaults and hard caps so large jobs remain predictable.
Pricing at a glance
| Price per 1,000 Google Play reviews | |
|---|---|
| This Actor | $0.080 |
| Median of 8 comparable Apify Store Actors (October 2026) | $0.10 |
That is about 20% below the median per-result price for this task in Apify Store.
Subscriber discounts: on a paid Apify plan you pay even less per result — Bronze −10%, Silver −15%, Gold and higher −20% ($0.064 per 1,000 Google Play reviews on Gold).
Apify platform usage (compute, storage, data transfer) is included — you pay only the result price plus a small run start fee ($0.0001 per GB of run memory). No surprise compute bill, even on long runs.
Use the run's maximum charge setting to cap spending — the Actor stops cleanly when the limit is reached.
Use it from AI agents (MCP) and code
AI agents — Claude, ChatGPT, Cursor, VS Code, n8n AI agents and any MCP client can run this Actor through the official Apify MCP server: add https://mcp.apify.com?tools=zenomastro/google-play-reviews-pro to your client. Then just ask, for example:
"Pull the latest 500 Google Play reviews of YouTube and give me the sentiment split by app version."
The agent fills the input from the field descriptions and receives clean JSON it can reason over.
API — one HTTP call runs the Actor and returns the results directly:
curl -X POST "https://api.apify.com/v2/acts/zenomastro~google-play-reviews-pro/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"appIds": ["com.google.android.youtube"], "language": "en", "country": "us", "maxReviewsPerApp": 2, "maxTotalReviews": 2, "includeAppDetails": true}'
The same works from the Apify Python/JavaScript clients, Make, n8n, Zapier, LangChain and LlamaIndex integrations, or on a schedule.
Scrape public Google Play reviews by package ID, Play Store URL or app name, in one or several languages and countries. Get review text, rating, author, helpful votes, app version, developer replies and timestamps, optional app metadata and a free analytics row per app, without a Google account, browser or API key. Schedule it as a monitor to receive only the reviews you have not seen yet.
Who it is for: ASO and product teams tracking feedback per release, support teams measuring developer-reply coverage, agencies and analysts comparing competitor apps across markets, and developers feeding review text into BI tools, LLMs and sentiment pipelines.
What you get
- Up to 200 apps per run, by package ID, Play Store URL or app name search (
appQueries). - Several languages and countries in one run (
languages,countries): every combination is read, a review that two storefronts both show is delivered and charged once, and every review row says itslanguageandcountry. - Sorting: newest, relevance, rating or oldest first.
- Filters before billing: star range (a single star value is filtered by Google Play itself, so fewer pages are read), minimum helpful votes, developer reply yes/no, text contains, contains any / all / none of a keyword list, app versions (
9.1matches 9.1.0 and 9.1.23), date window, and a rolling Only the last N days window for schedules. - Review monitor:
monitorNameremembers delivered reviews across scheduled runs and flagsisNew;onlyNewoutputs and charges only reviews never delivered before. - App metadata row (optional, billed as App details): title, developer, score, star histogram, installs, price, version, genre, icon, content rating, ads and in-app purchase flags, release and update dates.
- Free insights row per app (and per language/country): star distribution, developer reply rate overall and per star, reply time, helpful-vote average, rating-based sentiment, monthly and app-version trends, top complaint keywords (1-2 stars) and praise keywords (4-5 stars), and mentions of your keywords. Plain word counting, no AI.
- Billing only on rows actually emitted, a clean stop at your maximum charge and before the run timeout, and free diagnostic rows for apps that cannot be read.
How to use it
- Put package IDs or Play Store URLs in App package IDs or Play Store URLs (or names in App names to search).
- Pick the Language and Country, or list several in Languages (several) and Countries (several).
- Set Maximum reviews per app and, if you like, filters such as Maximum star rating 2 for complaints.
- Run and open the Output tab: the Reviews, Review insights and App details views, or export JSON, CSV or Excel.
Input examples
{"appIds": ["com.spotify.music", "com.duolingo"],"language": "en","country": "us","sortBy": "newest","maxReviewsPerApp": 1000,"minScore": 1,"maxScore": 3,"hasDeveloperReply": "any","reviewedAfter": "2026-09-01","includeAppDetails": true}
The same app in four markets, 200 reviews each:
{"appIds": ["com.whatsapp"],"languages": ["en", "de", "fr", "es"],"countries": ["us"],"maxReviewsPerApp": 200}
Complaints about the latest release only:
{"appIds": ["com.spotify.music"],"maxScore": 2,"appVersions": ["9.1"],"excludeKeywords": ["giveaway"],"insightKeywords": ["crash", "offline", "ads", "price"],"maxReviewsPerApp": 500}
Find apps by name instead of package ID, and keep only reviews that mention a topic:
{"appQueries": ["Duolingo", "Babbel"],"maxSearchResultsPerQuery": 1,"containsAny": ["crash", "freeze", "login"],"insightKeywords": ["crash", "ads", "subscription"],"maxReviewsPerApp": 300}
Scheduled monitor that delivers (and charges) only reviews it has not delivered before, from the last 7 days:
{"appIds": ["com.spotify.music"],"monitorName": "spotify-daily","onlyNew": true,"lastDays": 7,"maxReviewsPerApp": 500}
Inputs written for other Google Play review Actors work as well: startUrls, sort (NEWEST, RATING, ...), maxItems and recentDays are read as appIds, sortBy, maxTotalReviews and lastDays.
Output examples
Illustrative values, shortened. A billed review row:
{"recordType": "review","appId": "com.spotify.music","reviewId": "4c9f2a77-1b2e-4c1a-9d1e-0a5b7e2f3c11","userName": "A Google user","score": 2,"text": "Offline downloads disappear after the last update.","thumbsUp": 14,"postedAt": "2026-10-11T18:22:05Z","appVersion": "9.1.12.345","replyText": "Hi! Please try reinstalling and let us know...","repliedAt": "2026-10-12T09:01:44Z","hasDeveloperReply": true,"reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=4c9f2a77-1b2e-4c1a-9d1e-0a5b7e2f3c11","language": "en","country": "us"}
The free insights row of that app (part of it):
{"recordType": "review_insights","appId": "com.spotify.music","language": "en","country": "us","sampleSize": 500,"averageScore": 1.62,"ratingDistribution": {"1": 310, "2": 190, "3": 0, "4": 0, "5": 0},"developerReplyRatePercent": 12.4,"medianReplyHours": 15.2,"versionTrend": [{"version": "9.1.12.345", "reviews": 288, "averageRating": 1.55}],"topComplaintKeywords": [{"term": "offline", "reviews": 96, "sharePercent": 19.2}, {"term": "not working", "reviews": 41, "sharePercent": 8.2}],"keywordMentions": {"crash": 37, "offline": 96, "ads": 52, "price": 18},"stopReason": "limit"}
Other rows: app (app metadata, billed as App details), search_summary (free: what each app name search found) and error (free: an invalid or missing app, an app with no matching review, a language/country that failed).
Filters and billing
Filters are applied before review rows are billed. If you ask for only 1-2 star reviews containing "crash", reviews outside those filters are read but not charged. containsAny keeps a review that mentions at least one listed keyword, containsAll only when every keyword appears, and excludeKeywords drops a review that mentions any of them. appVersions keeps reviews written for those versions or their sub-versions.
How deep the Actor reads is bounded by Maximum pages per app (up to 200 reviews per page). Left empty, it reads just enough pages for your limits, or, with selective filters or oldest-first order, up to 25 times the pages your per-app limit needs (at least 100 pages). The insights row and the run status say when an app hit that budget.
With a Monitor name, delivered review IDs are remembered in your key-value store google-play-reviews-monitor. With Emit only new reviews, reviews delivered by earlier runs are skipped and never charged again; reviews that a charge limit kept out of the dataset are delivered by the next run.
Invalid package IDs, apps that cannot be read, and apps with no matching reviews produce a structured success: false row and no review-result charge. Input mistakes (for example a minimum star rating above the maximum) stop the run before anything is scraped or charged, with the reason in error rows and the status message.
Review insights
The review_insights row describes the reviews that matched your filters, per app and per language/country: average score and star distribution, developer reply rate overall and per star, average and median hours to a reply, helpful-vote average, rating-based sentiment buckets, a monthly trend (reviews, average stars, share of 1-2 star reviews), an app-version trend, the words and two-word phrases that 1-2 star reviews mention more than 4-5 star reviews (topComplaintKeywords) and the reverse (topPraiseKeywords), and how many reviews mention each Insight keyword. Keyword lists use word counting with stopwords in English and major European languages, leave out the app's own name, and work best for languages that separate words with spaces. Nothing is sent to an AI service, and the row is free.
Pricing
Current Store pricing (Apify platform usage included):
- Review result: $0.00008 each — $0.08 per 1,000 delivered reviews
- App details: $0.001 per successfully emitted app-metadata row
- Actor start: $0.0001 per GB of run memory
Subscribers on paid Apify plans pay less per review (Bronze −10%, Silver −15%, Gold and higher −20%). That matches the lowest-cost tools while keeping advanced pre-billing filters, sentiment and a richer metadata contract. The app metadata row is charged once per app, however many languages and countries you list; insights, search summaries and error rows are free.
Reliability
Google Play reviews are fetched through the store's public review endpoint using native continuation tokens. No browser or residential proxy is required. Every request has a timeout (requestTimeoutSecs) and is retried with growing waits (retries), longer ones when Google Play rate limits. Requests go direct first; when Google Play still refuses or fails one, it is repeated through Apify Proxy (included in the price), which the rest of the run then uses (autoProxyFallback). You can also set your own proxy in proxyConfiguration. Batches continue when one app or one language/country fails, and a run close to its timeout stops cleanly, keeping everything delivered so far.
Review availability depends on the selected language/country storefront. A country is the storefront view, not necessarily the reviewer's physical location.
Limits
- up to 200 unique apps per run, including up to 50 app name searches
- up to 10 languages and 10 countries, at most 30 combinations per app
- up to 50,000 emitted reviews per app (per language/country combination)
- up to 200,000 emitted reviews per run
- up to 1,000 review pages read per app and language/country
- public Google Play data only
Use public review data in accordance with applicable platform terms, privacy rules, and local law.
More FAQ
Why are there fewer reviews than the app's rating count? Many Google Play ratings are stars without text. Google Play lists written reviews, and the Actor returns those that match your language, country and filters.
Do language and country change the reviews? Both shape what Google Play shows: reviews come in the selected language, and the country is the storefront view (not necessarily where the reviewer lives). List several of either to cover more markets; duplicates across them are removed before billing.
How do I get only reviews of the latest release?
Put the version in App versions (for example 9.1), or use Only the last N days with Newest order.
Can I run it every day without paying twice for the same review? Yes: set a Monitor name and Emit only new reviews, then schedule the Actor.
Moving from Google Play Reviews (reliable)?
Google Play Reviews Scraper API (google-play-reviews-reliable) is merged into this Actor, and the same input works: change only the Actor name. Its field names are accepted as they are (appIdsOrUrls, minRating, maxRating, developerReply, includeAppMetadata, monitorKey, searchCountry), and when you use them the output also carries that Actor's field names (rating, reviewedAt, thumbsUpCount, developerReplyText, ...) next to the standard ones. Existing monitors continue where they left off: delivered review IDs are read from the same google-play-reviews-monitor key-value store in your account (if this Actor cannot open that store, it starts a new history in google-play-reviews-pro-monitor). Two differences: the app metadata row is billed as an App details event ($0.001 per app; set includeAppMetadata or includeAppDetails to false to skip it), and the default Maximum total reviews is 10,000 instead of 5,000.
Support
For a reproducible issue, include the package ID, language/country, filters, and Apify run ID. Never post API tokens or private credentials.