Google Play Reviews Scraper – Ratings, Text, Replies, No API avatar

Google Play Reviews Scraper – Ratings, Text, Replies, No API

Pricing

$0.50 / 1,000 review delivereds

Go to Apify Store
Google Play Reviews Scraper – Ratings, Text, Replies, No API

Google Play Reviews Scraper – Ratings, Text, Replies, No API

Google Play Reviews Scraper for any Android app: star rating, full text, date, app version, helpful votes and developer replies, plus app installs and score on every row. Filter by stars, several languages, no API key or login. Built for ASO, product and sentiment analysis.

Pricing

$0.50 / 1,000 review delivereds

Rating

0.0

(0)

Developer

Ani Björkström

Ani Björkström

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Google Play Reviews Scraper collects the public reviews of any Android app on the Google Play Store and returns them as clean, flat rows: star rating, full review text, date, app version, helpful votes and the developer reply. Paste a package name like com.whatsapp or a Play Store URL and run it – no Google Play API, no developer account, no login, no proxy.

  • Native sorting and star filters. Newest, Most relevant or Rating order and 1–5 star filters are applied by Google Play itself, exactly like the menu on the store page – so "only 1-star reviews" fetches 1-star reviews directly instead of paging through thousands of others.
  • App details on every row. App name, developer, install count (10,000,000,000+), overall score, total ratings and genre are fetched once per app and merged into each review, so a spreadsheet or LLM prompt needs no second lookup.
  • Several languages in one run, pay only for delivered reviews. Collect English, German, French and Spanish reviews of the same app in one run. Apps that fail produce a free explanatory row, never a silent gap.

What you get

Every review is one flat JSON row (ready for CSV, Excel, Google Sheets, BigQuery or an AI agent):

FieldDescription
appIdAndroid package name, e.g. com.whatsapp
appNameApp title on Google Play
appDeveloperDeveloper / publisher name
appInstalls, appMinInstallsInstall bucket as shown (500,000,000+) and as a number
appRating, appRatingsCountOverall Play Store score (e.g. 4.62) and total number of ratings
appGenrePlay Store category, e.g. Communication, Education
reviewIdStable Google Play review ID
userName, userImageReviewer display name and avatar URL
rating1–5 stars
textFull review text
dateReview date, ISO 8601 UTC
thumbsUpHow many people marked the review helpful
appVersionApp version the reviewer was using
developerReply, developerReplyDateThe developer's public answer and when it was posted
language, countryThe Play language (hl) and country (gl) the review was collected for
urlLink to the review on Google Play
scrapedAtWhen this run collected the row
errorOnly on problem rows: why an app returned nothing

Turn app details off with includeAppDetails: false.


Input

The only required thing is the app. A run with no input at all scrapes the newest 200 English reviews of WhatsApp, so scheduled and test runs never come back empty.

Newest 500 reviews of one app

{
"appIds": ["com.whatsapp"],
"maxReviewsPerApp": 500
}

Only negative reviews with text, from Play Store URLs

{
"appIds": [
"https://play.google.com/store/apps/details?id=com.spotify.music",
"https://play.google.com/store/apps/details?id=com.duolingo"
],
"minRating": 1,
"maxRating": 2,
"onlyWithText": true,
"maxReviewsPerApp": 300
}

Same app in several languages, UK store, most relevant first

{
"appIds": ["org.telegram.messenger"],
"languages": ["en", "de", "fr", "es"],
"country": "gb",
"sortBy": "relevant",
"maxReviewsPerApp": 200
}
OptionDefaultWhat it does
appIds["com.whatsapp"]Package names or Google Play URLs, one per line
maxReviewsPerApp200Cap per app and language, up to 20,000. Google Play serves the full review history
languageenReview language code (en, de, es, fr, sv, pt-BR…)
languages–Optional list; when filled it replaces language and each app is collected in every listed language
countryusTwo-letter Play country (gl)
sortBynewestnewest, relevant (Play's default "Most relevant") or rating. Applied natively by Google Play
minRating, maxRating1, 5Star range. Narrow ranges use Google Play's own per-star filter
onlyWithTextfalseSkip star-only ratings with no text
includeAppDetailstrueMerge app name, developer, installs, score, ratings count and genre into each row
concurrency4Apps fetched in parallel (1–10)
proxyConfigurationoffNot needed at normal volumes

For a star range such as 1–2 the Google Play Reviews Scraper fetches each star natively and merges them (by date for newest, by helpful votes for relevant).


Output example

{
"appId": "com.whatsapp",
"appName": "WhatsApp Messenger",
"appDeveloper": "WhatsApp LLC",
"appRating": 4.62,
"appRatingsCount": 244790058,
"appInstalls": "10,000,000,000+",
"appMinInstalls": 10000000000,
"appGenre": "Communication",
"reviewId": "d40bb75a-d1a5-44b3-863d-c8624445efe9",
"userName": "Jonathan Spencer",
"userImage": "https://play-lh.googleusercontent.com/a-/ALV-UjUsH3fQ...",
"rating": 1,
"text": "Whenever I try to link it to another device the account is placed under review...",
"date": "2026-08-28T20:40:15+00:00",
"thumbsUp": 13,
"appVersion": "2.26.33.74",
"developerReply": null,
"developerReplyDate": null,
"language": "en",
"country": "us",
"url": "https://play.google.com/store/apps/details?id=com.whatsapp&reviewId=d40bb75a-d1a5-44b3-863d-c8624445efe9",
"scrapedAt": "2026-09-30T18:19:33+00:00"
}

If an app cannot be scraped – a mistyped package name, an iOS id pasted by mistake, or filters that match nothing – you get one row with an error field that says exactly why. Those rows are never charged.


Use cases for a Google Play Reviews Scraper

  • Product managers and UX teams – pull the newest 1–2 star Google Play reviews after every release and route them to Slack, Jira or Linear before the rating drops.
  • ASO and app marketing agencies – mine Play Store review language for keywords and feature requests, and benchmark a client against competitors with install count and score on every row.
  • Customer support leads – find negative reviews that still have no developerReply and answer them first.
  • AI, RAG and sentiment-analysis builders – feed thousands of flat, labelled rows (stars + text + version + date) into GPT, Claude or a classifier; the schema is MCP- and agent-friendly.
  • Market researchers and investors – track review volume and sentiment for a basket of Android apps over time.
  • Localisation teams – compare what German, French and Spanish users say about the same app in one run.

Pricing

The Google Play Reviews Scraper is pay per result: $0.50 per 1,000 reviews delivered to the dataset, with platform usage included. There is no start fee and no monthly rental. Error rows and reviews removed by your filters are never charged. A 200-review run costs $0.10.


Integrations

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nourishing_courier/google-play-reviews-scraper").call(run_input={
"appIds": ["com.whatsapp", "com.spotify.music"],
"maxReviewsPerApp": 300,
"minRating": 1,
"maxRating": 2,
})
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
print(review.get("appName"), review.get("rating"), (review.get("text") or "")[:80])

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('nourishing_courier/google-play-reviews-scraper').call({
appIds: ['https://play.google.com/store/apps/details?id=com.duolingo'],
languages: ['en', 'de'],
maxReviewsPerApp: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'Google Play reviews');

curl (synchronous, returns the reviews directly)

curl -X POST "https://api.apify.com/v2/acts/nourishing_courier~google-play-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"appIds":["com.whatsapp"],"maxReviewsPerApp":100}'

n8n, Make and Zapier – add the Apify node or module, pick this actor, paste one of the inputs above and map the rows into Google Sheets, Airtable, Notion, HubSpot or Slack. Schedule it daily with sortBy: "newest" for review monitoring. MCP / AI agents – expose the Google Play Reviews Scraper through the Apify MCP server and an agent can call it as a tool ("get the latest 1-star reviews of com.whatsapp"). Datasets also export as JSON, CSV, Excel, XML and RSS.


Other app review scrapers by the same author


Limits, fair use and legality

This Google Play Reviews Scraper reads the same public endpoint the Play Store website uses to show reviews, one page of up to 150 at a time, with bounded retries and backoff. It does not log in, bypass paywalls or touch private data. Google Play shows each review in the language it was written in, so pick language/languages to match the audience you want. Very old apps can have millions of reviews – use maxReviewsPerApp to cap the run. Reviews are public user content; use them in line with Google's terms and privacy law such as the GDPR, and do not try to re-identify reviewers. This actor is not affiliated with or endorsed by Google.


FAQ

How do I scrape Google Play reviews without the API?

Paste the package name (the id= part of the Play Store URL, e.g. com.whatsapp) into appIds and start the run. The Google Play Reviews Scraper needs no Google Play Developer API access, no service account and no login.

How many Google Play reviews can I get per app?

Google Play serves the full history, so you can collect up to 20,000 reviews per app and language in one run, and more by listing several languages. A few thousand reviews take well under a minute.

Can I get only 1-star or negative reviews?

Yes. Set minRating: 1 and maxRating: 1 (or 2 for 1–2 stars). The star filter is applied by Google Play itself, so you get exactly those reviews quickly, and you only pay for what is delivered.

Does it include developer replies?

Yes. developerReply and developerReplyDate are filled whenever the developer has publicly answered a review – handy for support-response audits.

Can I sort by newest or most relevant?

Yes, natively: newest, relevant (the Play Store's default "Most relevant" order) and rating are passed to Google Play just like the sort menu on the store page.

Can I scrape reviews in other languages or countries?

Set language (e.g. de) or list several in languages, and set country (e.g. gb, in, br). Each row records the language and country it was collected for.

Does it work with n8n, Make or Zapier?

Yes. Use the official Apify integration in any of them to run the Google Play Reviews Scraper, pass the JSON input, and map the flat rows straight into your spreadsheet, CRM or database.

Can I export Google Play reviews to CSV or Excel?

Yes. Every Google Play Reviews Scraper dataset downloads as CSV, Excel, JSON or XML from the Output tab or the API (format=csv).

Does it also scrape the Apple App Store?

This actor is dedicated to Google Play. For iOS use the App Store Reviews Scraper, or the combined actor for both stores in one run.

Why did I get an error row?

Usually a mistyped package name, an App Store id pasted into the Google Play field, or filters that matched no review. The error text explains which, and error rows are free.