Google Play Scraper — Reviews, Ratings & App Details avatar

Google Play Scraper — Reviews, Ratings & App Details

Pricing

from $0.12 / 1,000 reviews

Go to Apify Store
Google Play Scraper — Reviews, Ratings & App Details

Google Play Scraper — Reviews, Ratings & App Details

Scrape Google Play reviews (full history, developer replies, 73 languages), app details with exact installs, rating histogram and data safety, and keyword search results.

Pricing

from $0.12 / 1,000 reviews

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Scrape Google Play reviews for any Android app: the full review history in any of the 73 review languages, newest first, most relevant first or highest rating first, with an optional star filter. Every review comes with its rating, text, date, the reviewer's display name and avatar, thumbs-up count, app version and the developer's reply with its date.

The same actor also collects app details (exact installs, rating, rating count, rating histogram, written-review count, price, in-app purchases, ads, category, content rating, version, update date, what's new, full data safety section, chart rank, developer contacts, description, screenshots, video) and Google Play search results for any keyword. No login, no Google account, no API key, no browser.

The field names match our App Store Scraper (tortuga/appstore-scraper), so you can put Android and iOS reviews of the same app into one table.

What can this Google Play scraper do?

  • Reviews, full history: up to 4,000 reviews per request, as deep as the app's review list goes (tested: all 15,045 English reviews of Loop Habit Tracker back to 2016 in 4 requests; 60,000 of WhatsApp's newest English reviews in 15 requests).
  • Developer replies: reply text and reply date next to each review.
  • 73 languages: Google Play keeps a separate review list per language. List the languages you want (en, de, pt, ja, zh-TW ...) or enter all.
  • Sort and filter: newest, most relevant or highest rating first; only 1-star (or any set of stars) reviews.
  • Only new reviews: set Only reviews newer than and the run stops at the first older review, so daily monitoring costs a few cents.
  • App details: one row per app, country and language, including the exact install count, the 1-5 star histogram, the number of written reviews and Google's data safety declarations (data shared, data collected, security practices).
  • Keyword search: the 30 apps Google Play shows for a keyword, per country and language, in store order.

How to scrape Google Play reviews

  1. Paste Google Play links (https://play.google.com/store/apps/details?id=com.whatsapp) or package names (com.whatsapp) into Apps.
  2. Choose the Languages (for example en, es, de) or enter all.
  3. Pick the Review order, optionally Star ratings, and set Max items to cap the cost.
  4. Click Start. Download the reviews as JSON, CSV or Excel from the Dataset tab, or read them through the API.

Input example: reviews

{
"mode": "reviews",
"apps": ["https://play.google.com/store/apps/details?id=com.spotify.music", "org.isoron.uhabits"],
"languages": ["en", "de"],
"sort": "newest",
"starRatings": ["1", "2"],
"maxReviewsPerLanguage": 1000,
"maxItems": 8000
}

Output example: review

{
"type": "review",
"appId": "com.spotify.music",
"appName": "Spotify: Music and Podcasts",
"language": "en",
"country": "us",
"reviewId": "ad1d9be2-0959-4e98-8229-ee3ee4d9df0e",
"rating": 3,
"title": null,
"text": "I love music, it's the only thing that keeps me focused on things like drawing, love Spotify ...",
"date": "2026-04-10T00:04:24Z",
"userName": "Angel Mead (Willow)",
"userImage": "https://play-lh.googleusercontent.com/a-/ALV-UjVrcmkir02OyHXAex-UOTZ-uWCYMB1hqqyK7OFMFN37PtvbEX22",
"appVersion": "9.1.36.1948",
"helpfulVotes": 58,
"developerResponse": "Hi. We'll pass this on to the ads team. Furthermore, have you tried a quick reinstall? ...",
"developerResponseDate": "2026-04-10T11:17:33Z",
"criteriaRatings": [{ "criterion": "vaf_app_quality_ads_frequency", "rating": 1 }],
"reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=ad1d9be2-0959-4e98-8229-ee3ee4d9df0e",
"appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music"
}

Review fields

FieldDescription
appId, appNamePackage name and app title
language, countryReview language list the review comes from, and the country used for the request
reviewIdGoogle's review ID (unique, stable)
ratingStars, 1-5
title, textReview text; a few old reviews also have a title
dateWhen the review was posted or last edited (UTC, ISO 8601)
userName, userImageThe display name and avatar Google Play shows next to the review
appVersionApp version the review was written for (empty when the reviewer's device did not report it)
helpfulVotesHow many people marked the review as helpful (thumbs up)
developerResponse, developerResponseDateThe developer's public reply, when it exists
criteriaRatingsGoogle's per-topic answers attached to some reviews (e.g. ads, performance), as raw codes
reviewUrl, appUrlLink to the review and to the app page

How to get Google Play app details

Set Mode to details. You get one row per app, country and language. Price, currency, rating and histogram are per country; texts follow the language.

{ "mode": "details", "apps": ["com.whatsapp", "com.mojang.minecraftpe"], "countries": ["us", "in"], "languages": ["en"] }
FieldDescription
appId, name, subtitle, urlPackage name, title, short description, store link
developer, developerId, developerUrlDeveloper as shown on the store
developerEmail, developerWebsite, developerLegalName, developerCountryContact data from "About the developer" (country only, no street address)
price, currency, priceFormatted, isFreePrice in that country's currency
hasInAppPurchases, inAppPurchaseRange, containsAdsMonetisation flags, e.g. "$0.99 - $49.99 per item"
rating, ratingCount, reviewCount, ratingHistogramAverage stars, number of ratings, number of written reviews, ratings per star ({"1": ..., "5": ...})
installs, minInstalls, realInstallsInstall bucket ("10,000,000,000+"), its lower bound, and Google's exact install count
primaryGenre, genreId, genresCategory
contentRating, contentRatingDescription, interactiveElementsAge rating and notes such as "In-Game Purchases"
chartPosition, chartNameTop-chart rank, e.g. 1 in "top free communication", when the app is charting
version, currentVersionReleaseDate, releaseNotes, releaseDateCurrent version (empty when it "varies with device"), last update, what's new, first release
minAndroidVersion, minSdkMinimum Android version
description, descriptionHtmlFull store description as text and as HTML
dataSafetysummary lines plus sharedData, collectedData (category, data types, optional flag, purposes) and securityPractices
privacyPolicyUrl, iconUrl, headerImageUrl, screenshots, videoUrlLinks and images

Output excerpt:

{
"type": "app",
"appId": "com.whatsapp",
"country": "us",
"language": "en",
"name": "WhatsApp Messenger",
"developer": "WhatsApp LLC",
"developerLegalName": "Meta Platforms, Inc.",
"isFree": true,
"inAppPurchaseRange": "$0.40 - $199.99 per item",
"containsAds": false,
"rating": 4.6176,
"ratingCount": 245284017,
"reviewCount": 1952357,
"ratingHistogram": { "1": 10912733, "2": 3464798, "3": 8925609, "4": 21905948, "5": 200074850 },
"installs": "10,000,000,000+",
"realInstalls": 12386768041,
"primaryGenre": "Communication",
"chartPosition": 1,
"chartName": "top free communication",
"currentVersionReleaseDate": "2026-10-03T02:15:46Z",
"dataSafety": {
"summary": ["No data shared with third parties", "This app may collect these data types: Location, Personal info and 5 others", "Data is encrypted in transit", "You can request that data be deleted"],
"sharedData": [],
"collectedData": [{ "category": "Contacts", "types": [{ "type": "Contacts", "optional": true, "purposes": "App functionality, Fraud prevention, security, and compliance" }] }],
"securityPractices": [{ "practice": "Data is encrypted in transit", "description": "Your data is transferred over a secure connection" }]
}
}

How to scrape Google Play search results

Set Mode to search and add keywords. Each keyword returns the apps Google Play shows (up to 30) per country and language, in store order, with searchTerm, position, appId, name, developer, rating, installs, price, priceFormatted, primaryGenre, contentRating, description, iconUrl, screenshots and url. When the keyword is an app's name, that app comes first. Feed the package names into details mode when you need histograms and data safety.

{ "mode": "search", "searchTerms": ["habit tracker", "budget app"], "countries": ["us", "gb"], "languages": ["en"], "maxItems": 200 }

Monitor changes on a schedule

Turn on Only new or changed items and save the input as a task with a Schedule (Apify Console: Saved tasks -> Schedule, for example daily). Each run remembers what earlier runs of the same input returned and outputs only what is new: reviews not seen before in reviews mode (read newest first, starting with a small page and stopping where the previous run's reviews begin), apps whose price or version changed in details mode, and apps that are new in the results or changed price in search mode. Unchanged items are skipped before they are saved, so they are not charged. Only reviews newer than also takes a period such as 3 days (counted back from each run; Google Play shows reviews about a day late, so use at least 2 days daily). Monitored items carry changeType (new or changed) and, for changed apps, previousValues with the old values of the fields that changed (e.g. {"price": 6.99}); use Monitoring key to keep several schedules on the same input apart.

How many Google Play reviews can I get per app?

All the written reviews Google keeps for the app in each language. The actor follows the same continuation token the Play website uses, 4,000 reviews per request, with no fixed cap. Two things to know:

  • Reviews are grouped by language, not country. English reviews are the same whether you ask with us, gb or in. To get more reviews, add languages (or enter all). Regional variants share one list (pt-BR = pt, en-GB = en).
  • Reviews show up about a day late. Google Play publishes a review roughly 24 hours after it is written, so the newest review you get is about a day old (the store website shows the same).
  • Most ratings have no text. WhatsApp has 245 million ratings but about 2 million written reviews; only written reviews can be listed. The details row tells you both numbers (ratingCount, reviewCount).

Can I get the developer's replies to reviews?

Yes. developerResponse holds the reply text and developerResponseDate its date. Reviews without a reply have null.

Does it work without login or a Google account?

Yes. It reads the public data the Google Play website shows to every visitor, through the same web endpoints the site itself calls. No cookies, no account, no API key. The default Apify datacenter proxy works; each request goes out from a new IP to spread Google's per-IP limits.

How much does it cost to scrape Google Play?

You pay per result: $0.12 per 1,000 reviews, $1.00 per 1,000 app detail rows, $0.50 per 1,000 search results, plus Apify platform usage, which was about $0.005 per 1,000 reviews in our tests (20,000 reviews: $0.10). There is no start fee. Max items caps every run, and Only reviews newer than lets you pay only for new reviews when you monitor an app.

Integrations and API

Run it from Zapier, Make, n8n or Google Sheets, or call it from Python or Node with the Apify client. Schedule it daily with Only reviews newer than to track new reviews and developer replies. See the API tab for ready-made snippets.

This actor collects only data that Google Play shows publicly to every visitor without an account: app pages, search results, and reviews with the display name and avatar each reviewer publishes on the store. It does not log in and does not collect anything private; for developers it exports the contact data published in "About the developer" and only the country of their address. You are responsible for how you use the data, including data-protection law (for example GDPR) when you process reviewer names, and for respecting Google's terms.

Support

Found a bug or need a field? Open an issue in the Issues tab; it is usually answered within a day.