Google Play Store Review Scraper avatar

Google Play Store Review Scraper

Pricing

from $0.20 / 1,000 results

Go to Apify Store
Google Play Store Review Scraper

Google Play Store Review Scraper

Reading Google Play reviews one by one hides why users leave. Scrape reviews for any Android app: stars, text, date, app version, helpful votes and developer replies, with star, date, language and device filters plus topics like crashes and ads.

Pricing

from $0.20 / 1,000 results

Rating

0.0

(0)

Developer

Crawl Craft

Crawl Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Categories

Security

Limited permissions

Share

🚀 What is Google Play Store Review Scraper?

Google Play Store Review Scraper is an Apify Actor that collects public reviews for any Android app on Google Play. Every review arrives with its stars, text, date, app version, helpful votes and developer reply, plus app details such as category and install count, as structured data you can download or pass on to your own tools.

Reading reviews one by one hides why users leave, so this Actor turns them into rows you can sort, filter and compare. A Google Play reviews scraper like this one is useful for product teams, app marketers and analysts who need the raw feedback rather than a dashboard summary.

  • ⭐ Star, date and device filters: keep only the star ratings you choose, set a start date and pick phone, tablet, Chromebook, watch, TV or car reviews.
  • 🌍 Language and country choice: read the review set of each language you pick, from the store country you select.
  • 💬 Developer replies: reply text, reply date and the hours until the reply sit next to each review, with their own table.
  • 📊 App details: rating, rating count, installs and category are added to every review, and one summary row per app and language is saved.
  • 🧩 Topic tags: reviews written in English carry keyword topics such as ads, which helps when you sort complaints.

Click Try for free, paste an app link and press Start. No Google account or login is asked for in the input.

Google Play Store Review Scraper input form with app links and star filters

📊 What data can you extract from Google Play reviews?

The main table holds one row per review. Field names below match the output schema, and the examples are the example values from that schema.

FieldDescriptionExample
idUnique ID of the reviewe76d3ab9-b18b-4e8b-86aa-0553edd0ea0a
appIdPackage name of the appcom.spotify.music
appTitleName of the app on Google PlaySpotify: Music and Podcasts
languageReview language feeden
countryStore country usedus
deviceDevice type the review was written forphone
userIdStable ID of the reviewer101137149062416713420
userNameDisplay name of the reviewerallen TEXAS
userImageReviewer profile picture linkhttps://play-lh.googleusercontent.com/a-/example
dateReview date (UTC)2026-10-21T18:24:12Z
timestampReview time as unix seconds1792607052
scoreStar rating from 1 to 55
scoreTextLabel Google Play shows for the starsLoved it
urlLink to the review on Google Playhttps://play.google.com/store/apps/details?id=com.spotify.music&hl=en&reviewId=e76d3ab9
textText of the reviewabsolutely works!
textLengthNumber of characters in the review17
thumbsUpNumber of helpful votes0
versionApp version the reviewer used9.1.92.3058
isLatestVersionTrue when the review is for the current app versiontrue
replyTextReply from the developerThanks for the feedback!
replyDateDate of the developer reply (UTC)2026-10-22T09:00:00Z
replyAuthorWho wrote the replySpotify AB
replyLatencyHoursHours between review and reply12.5
editedAfterReplyTrue when the review was rewritten after the developer repliedfalse
criteriasPer-topic ratings given with the review[{"criteria": "vaf_phase1_streaming_music", "label": "streaming music", "rating": 3}]
topicsKeyword topics found in English reviews (null for other languages)["ads"]
developerApp developerSpotify AB
genreApp categoryMusic & Audio
appScoreAverage rating of the app4.349
appRatingsCountTotal number of ratings of the app36522573
appReviewsCountTotal number of written reviews of the app1856904
appInstallsInstall count shown on Google Play1000000000
appCurrentVersionCurrent app version when Google Play shows one9.1.92.3058
appUpdatedLast app update (UTC)2026-10-21T13:18:12Z
positionPosition of the review in this run for the app and language1
scrapedAtWhen the review was collected (UTC)2026-10-22T18:26:09Z
inputFailed input (only on error rows)com.unknown.app
errorWhy the input failed (only on error rows)app not found on Google Play (404) - check the package name

Three more tables are filled in the same run: developer replies, rating details and an app summary. A short run summary record is saved as well. The Output section below shows each one.

💡 Use cases for Google Play review data

  • Monitor app reviews after a release: set since to the release date and keep reviewsSort on newest, then read score, text and version for the first days of feedback. You can monitor app reviews this way for any Android app you add to urls.
  • Track reviews after an app update: compare isLatestVersion and version to see whether reviews for the newest build are better or worse than before.
  • Compare reviews across app versions: group rows by version and look at average score and thumbsUp per release.
  • Run an app review competitor analysis: add your app and its rivals to urls in one run, then compare appScore, appRatingsCount and the stars in score side by side.
  • Collect competitor app reviews: filter stars to 1 and 2 on a rival app to see what its users complain about, using text and topics.
  • Find app crashes from user reviews: keep low stars and read the English topics tags and the text of each row to spot problems such as crashes and ads.
  • Start a low star review analysis: pick stars 1 and 2 only, then rank the rows by thumbsUp to see which complaints other users agree with.
  • Track developer replies to reviews: use replyText, replyDate and the separate developer replies table to see which reviews get answered.
  • Measure developer response time: replyLatencyHours per review and medianReplyLatencyHours in the app summary show how fast a team answers.
  • Prepare Google Play reviews sentiment analysis: export text, score and language and feed them to the sentiment tool you already use. The Actor does not score sentiment itself.
  • Run a play store app review analysis in a spreadsheet: download the table as CSV or Excel and filter by score, device and date.
  • Do user feedback analysis for a roadmap: combine text, topics and the per-topic criterias ratings to decide what to fix first.
  • Support customer feedback analysis for Android apps: collect several languages in one run and compare what each market says.
  • Build a Google Play reviews dataset: save large sets of rows with unique id values, app details and review dates for later study.
  • Do app market research: genre, appInstalls and appRatingsCount give context for each app next to its reviews.

🧩 What do people call a Google Play reviews scraper?

The same job goes by many names. This table maps each name to what Google Play Store Review Scraper does.

Name people useWhat it does here
Google Play store reviews scraperReads public reviews for each app you list, one row per review.
Google Play review scraperHandles many apps in one run, and every row carries appId and appTitle.
Play Store reviews scraperAccepts package names such as com.whatsapp as well as app links.
Google Play app review scraperKeeps each language as its own list, labelled in language.
Android app review scraperCovers phone, tablet, Chromebook, watch, TV and car device types.
Google Play review extractorReturns the full field set from the table above for each review.
Google Play reviews extractorAdds app details such as genre and appInstalls to every row.
Play Store review extractorTurns pages you would read by eye into rows you can sort.
Google Play review downloaderApplies your filters first, so you download only the rows you need.
Google Play reviews downloaderSaves results to a dataset you can download as JSON, CSV or Excel.
Google Play reviews exporterHands finished runs to other tools through the API, webhooks and integrations.
Google Play review collectorCollects reviews for many apps and languages in one run.
Google Play review crawlerStarts from the Console or the API, so you do not write or host one yourself.
Google Play reviews toolAsks for no Google account or login in its input.
Google Play review dataIncludes stars, text, dates, app versions and developer replies.
Play Store review scraper toolSaves a short run summary with counts and timing after each run.

🛠️ How to scrape Google Play reviews step by step

  1. Create a free Apify account and open Google Play Store Review Scraper.
  2. Add your apps under Apps to scrape, one per line. Use Google Play links or package names such as com.whatsapp.
  3. Set Max reviews per app. The form starts at 10, and 0 means all available reviews.
  4. Optionally pick star ratings, a start date, review languages, a store country and device types.
  5. Click Start and wait for the run to finish.
  6. Open the Output tab to export Google Play reviews as JSON, CSV or Excel.

To scrape Play Store reviews for several apps at once, put every app on its own line in step 2. Each language you pick is read as its own review list for each app.

💰 How much does it cost to scrape Google Play reviews?

Google Play Store Review Scraper uses tiered pay-per-event pricing: $0.5 per 1,000 results on the Free plan, and less on paid plans. Each saved review is one result, billed as the main_result event that the Console shows as Results.

Apify planPrice per 1,000 results
Free$0.5
Bronze$0.4
Silver$0.3
Gold / Platinum / Diamond$0.2

A small Actor Start event of $0.00005 is also charged for each run start. On the Free plan, a run that saves 1,000 reviews therefore costs $0.5 for the results plus the start event.

The developer replies, rating details and app summary tables come from the same reviews and are not billed as extra results. If you set a maximum spend for a run, the Actor stops cleanly when that limit is reached. See the Pricing tab for current rates.

⬇️ Input

The only required field is Apps to scrape (urls), which needs at least one entry. Every other field has a default. Open the Input tab to see all options with their descriptions.

FieldTypeWhat it doesDefault
urlsarrayGoogle Play app links or package names, one per line. Duplicates are removedprefilled with the WhatsApp link
maxReviewsPerAppintegerReviews to collect for each app and language. 0 means all available, up to 10,000,00010
reviewsSortstringnewest, most_relevant or rating. A date limit always uses newest firstnewest
starsarrayKeep only these star ratings ("1" to "5"). Empty keeps allempty
sincestringOnly reviews posted on or after this date are keptno date limit
languagesarrayReview languages, each collected separately. 66 language codes are offered["en"]
countrystringStore country. One of 97 country codesus
devicesarrayphone, tablet, chromebook, watch, tv or car["phone"]
proxyConfigurationobjectOptional proxy settingsproxy off

Example input (schema defaults and prefill, plus a star filter):

{
"urls": ["https://play.google.com/store/apps/details?id=com.whatsapp"],
"maxReviewsPerApp": 10,
"reviewsSort": "newest",
"stars": ["1", "2"],
"languages": ["en"],
"country": "us",
"devices": ["phone"]
}

How to download Google Play reviews for one app

Paste one link into urls, leave stars empty and raise maxReviewsPerApp. The Actor saves each review as a row, so you can download Google Play store reviews as a spreadsheet once the run ends.

How to see Google Play reviews in other languages

Add language codes to languages, for example de and fr. Google Play serves a different set of reviews per language, so each code is collected as its own list and every row carries its language.

How to keep only complaints

Set stars to ["1", "2"] and reviewsSort to newest. Add since to ignore older feedback.

How to read only reviews from one device type

Set devices to ["tablet"] or any other device type from the list. Each device type has its own reviews, and device in the output tells you which one a row came from.

⬆️ Output

Results are stored in the run's dataset. Open the Output or Storage tab to browse them; the table view does not show every field, so download the data for the full set. Export formats include JSON, CSV, Excel, XML and HTML. Pick a Google Play reviews CSV for spreadsheets. Choose a Google Play reviews JSON export when the data goes into code.

Google Play review dataset table with stars, review text and developer replies

Several views are available on the main dataset: Reviews, All fields, App context and Problems. Runs on different days can be merged into one Google Play store reviews dataset by joining on id. Below is an example of one review row. The values are the schema example values, not a captured run.

{
"id": "e76d3ab9-b18b-4e8b-86aa-0553edd0ea0a",
"appId": "com.spotify.music",
"appTitle": "Spotify: Music and Podcasts",
"language": "en",
"country": "us",
"device": "phone",
"userId": "101137149062416713420",
"userName": "allen TEXAS",
"userImage": "https://play-lh.googleusercontent.com/a-/example",
"date": "2026-10-21T18:24:12Z",
"timestamp": 1792607052,
"score": 5,
"scoreText": "Loved it",
"url": "https://play.google.com/store/apps/details?id=com.spotify.music&hl=en&reviewId=e76d3ab9",
"text": "absolutely works!",
"textLength": 17,
"thumbsUp": 0,
"version": "9.1.92.3058",
"isLatestVersion": true,
"replyText": "Thanks for the feedback!",
"replyDate": "2026-10-22T09:00:00Z",
"replyAuthor": "Spotify AB",
"replyLatencyHours": 12.5,
"editedAfterReply": false,
"criterias": [
{
"criteria": "vaf_phase1_streaming_music",
"label": "streaming music",
"rating": 3
}
],
"topics": ["ads"],
"developer": "Spotify AB",
"genre": "Music & Audio",
"appScore": 4.349,
"appRatingsCount": 36522573,
"appReviewsCount": 1856904,
"appInstalls": 1000000000,
"appCurrentVersion": "9.1.92.3058",
"appUpdated": "2026-10-21T13:18:12Z",
"position": 1,
"scrapedAt": "2026-10-22T18:26:09Z"
}

Developer replies output

Reviews that received a developer reply are also saved in their own table, with the review text next to the reply. Example values from the schema:

{
"reviewId": "e76d3ab9",
"appId": "com.spotify.music",
"appTitle": "Spotify: Music and Podcasts",
"userName": "allen TEXAS",
"score": 2,
"reviewText": "Keeps crashing",
"reviewDate": "2026-10-21T18:24:12Z",
"replyText": "Sorry to hear that.",
"replyDate": "2026-10-22T09:00:00Z",
"replyAuthor": "Spotify AB",
"replyLatencyHours": 12.5,
"editedAfterReply": false,
"url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=e76d3ab9"
}

Rating details output

The rating details table has one row per topic rating that a reviewer gave, so one review can produce several rows. Example values from the schema:

{
"reviewId": "f444ca6e",
"appId": "com.spotify.music",
"appTitle": "Spotify: Music and Podcasts",
"userName": "Johnny Reyes",
"reviewDate": "2026-10-21T18:24:08Z",
"criteria": "vaf_app_quality_ads_intrusiveness",
"label": "ads intrusiveness",
"rating": 2
}

App summary output

The app summary table has one row per app and language, with app details and statistics of the reviews collected in the run. Example values from the schema:

{
"appId": "com.spotify.music",
"appTitle": "Spotify: Music and Podcasts",
"language": "en",
"developer": "Spotify AB",
"genre": "Music & Audio",
"appScore": 4.349,
"appRatingsCount": 36522573,
"appReviewsCount": 1856904,
"appInstalls": 1000000000,
"appCurrentVersion": "9.1.92.3058",
"appUpdated": "2026-10-21T13:18:12Z",
"reviewsCollected": 300,
"avgScoreCollected": 4.1,
"developerReplyRate": 0.12,
"medianReplyLatencyHours": 18.4,
"topComplaintTopics": {"ads": 12},
"devices": {"phone": 300}
}

Error rows output

An input that cannot be read becomes one error row with appId, language, input and error, so nothing fails silently. Example values from the schema:

{
"appId": "com.unknown.app",
"language": "en",
"input": "com.unknown.app",
"error": "app not found on Google Play (404) - check the package name"
}

⚠️ Limitations and error handling

  • Only public reviews are collected. Private data is not available.
  • Google Play publishes reviews with about one day of delay, so a very recent since date can return nothing.
  • The number of reviews you get depends on what Google Play shows for each app, language and device type. If fewer exist than your limit, you receive fewer.
  • topics are only filled for English reviews and are null for other languages.
  • appCurrentVersion is filled only when Google Play shows a current version, so isLatestVersion can be empty for some apps.
  • Duplicate reviews are removed within each app and language list.
  • The developer replies table only contains reviews that have a reply.
  • If an input fails, the Actor saves an error row for it and continues with the other apps. Error rows are not billed as results.

Messages you may see in the error field:

MessageWhat to do
app not found on Google Play (404) - check the package nameCheck the link or package name and run again
could not open the app page: ...Run again later; the text after the colon says what went wrong
the app page could not be loadedRun again later
review data could not be readRun again later
unexpected problem while reading this appRows collected before the problem are kept; run again

If you run out of budget, a run with a maximum spend set stops cleanly and keeps everything saved so far. If no valid app is given, the run stops with the message asking for at least one Google Play app link or package name.

🔌 Integrations and API

Every run can be started, scheduled and read through the Apify API, and the API tab shows ready-made snippets for JavaScript, Python and the command line. That makes the Actor usable as a Google Play review API for your own scripts and dashboards.

A Google Play store reviews API style feed is just the dataset items of the latest run. A Google Play app review API request can be an Actor run started with your own input.

Scrape Google Play store reviews Python example

Start the Actor with the Apify Python client, pass an input like the one in the Input section and read the dataset items as JSON. The API tab has the exact snippet for your Actor.

Connect finished runs to Make, Zapier, Google Sheets, Slack or your own endpoint through webhooks and integrations. See the Apify documentation for integrations, schedules and webhooks.

How to run it on a schedule

Save your input as a Task, add a schedule in Apify, and each run collects reviews again. This Actor has no mode that remembers earlier runs, so a repeated run returns reviews it has returned before. Use the stable id to remove duplicates in your own storage, and pass a newer since date through the API or Task input for each run to keep the results small.

🔗 Other app review scrapers by crawl_craft

Two Actors from the same Apify account read reviews of iPhone apps from the Apple App Store, while this Actor reads Android apps from Google Play.

ActorWhat it extractsWhen to use it
Apple App Store Review ScraperApp Store reviews with stars, text, app version, helpful votes and developer replies, filtered by rating, date or keyword.When your apps are on iOS. Its input also lists keywords and an incremental option for returning only newer reviews on repeated runs, which this Actor's input does not list.
App Store Reviews Scraper APIPublic App Store reviews for any iPhone app in any country, with rating, title, text, author, app version, votes and developer replies.When you need iOS reviews with star and date filters. Pair it with this Actor for a cross-platform comparison of the same product.

Google Play Store Review Scraper reads only reviews that people have posted publicly on Google Play. It does not collect private data. The results can still hold personal data, such as reviewer display names, reviewer IDs and profile picture links. Have a legitimate reason before you collect it, think about the GDPR (Regulation (EU) 2016/679) and Google Play's terms, and ask a lawyer if you are unsure. Apify's guides on the legality of web scraping and ethical web scraping are a good starting point.

❓ FAQ

How much does it cost to run Google Play Store Review Scraper?

It uses pay-per-event pricing at $0.5 per 1,000 results in the Free row of the table above, with lower rates in the other rows, plus a $0.00005 Actor Start event per run. See the Pricing tab for current rates.

Do I need a Google account or an API key?

No. The input asks only for the apps and your filters. You need an Apify account to run the Actor.

How many reviews can I get?

Set maxReviewsPerApp between 1 and 10,000,000, or 0 for all available reviews. The limit applies to each app and language. The real number depends on what Google Play shows for that app.

Can I get reviews in several languages at once?

Yes. Add several codes to languages and each one is collected as its own list. The store country is a single value per run, set with country.

Can I use it with Python?

Yes. See the Python example in the Integrations section: start the Actor with the Apify Python client and read the dataset items.

Can I scrape private data?

No. Only public reviews and public app details are collected.

Do I need proxies?

No. The proxy field is optional and is off by default.

Can I filter by star rating or date?

Yes. Use stars to keep chosen star ratings and since to keep reviews posted on or after a date.

💬 Your feedback

Found a bug or missing a feature? Open an issue in the Issues tab of this Actor. For custom solutions, email hello.crawlcraft@gmail.com.