Google Play Store Reviews Scraper
Pricing
from $0.17 / 1,000 results
Google Play Store Reviews Scraper
Scrapes user reviews from Google Play Store apps (play.google.com) including review text, star rating, author, date, replies and optional sentiment tagging, with app name, developer and overall rating attached to every review.
Pricing
from $0.17 / 1,000 results
Rating
0.0
(0)
Developer
ActorFlow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape user reviews from Google Play Store apps (play.google.com) by app URL, search URL, or package name. This Google Play reviews scraper extracts the review text, star rating, author, publish date, thumbs-up count, app version and any developer reply, and attaches the app name, developer, category and overall store rating to every review. Optionally tag every review with its sentiment (positive, negative or neutral). Export to JSON, CSV or Excel, or pull the results straight into your code through the Apify API.
Target website: play.google.com
✨ Features of this Google Play reviews scraper
- Full review extraction — review text, star rating, author name and avatar, publish date, thumbs-up count and the app version reviewed
- Developer replies — captures the developer's response to a review, with its own author and timestamp
- App metadata on every row — app name, developer, category, overall rating and total rating count
- Search URL support — paste a Google Play search URL and scrape reviews for every app it returns, capped by
maxAppsPerSearch - Keyword-free input — paste an app URL, a search URL, or just the package name, whichever you have
- Optional sentiment analysis — tag each review as positive, negative or neutral with one input toggle
- Rating filter — keep only reviews at or above a star rating
- Sort control — collect newest reviews, most relevant reviews, or sort by rating
- Country and language selection — review availability differs by store front
- Pagination support — walks through review pages until your limit is reached
- Proxy support — optional, and switched off by default
- Incremental re-runs — name a cache project and scheduled runs skip reviews already collected in a previous run, returning only what's new
- No browser required — runs on plain HTTP requests, which makes it fast and cheap
🚀 How to scrape Google Play reviews in 5 steps
- Sign up for a free Apify account — includes $5 monthly credit.
- Open the actor page and click Try for free.
- Enter one or more app package names (like
com.spotify.music), app URLs, or a search URL. - Click Start and wait for the run to complete.
- Download results from the Output tab in JSON, CSV, or Excel format.
You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.
💰 Pricing
This actor uses pay-per-result billing based on the compute units a run consumes.
- New Apify accounts include $5 of free monthly credit.
- It runs on plain HTTP requests rather than a headless browser, so it costs significantly less to run than browser-based review scrapers.
- Proxies are disabled by default, which keeps runs at their cheapest.
🔧 Input configuration
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
appIds | array | — | ["com.spotify.music"] | Android package names, one per entry. Each app is scraped independently. |
startUrls | array | — | — | Google Play app URLs or search URLs. Can be used instead of, or alongside, package names. |
maxItems | integer | — | 50 | Maximum reviews to scrape per app. Applies the same way whether the app came from a package name, an app URL, or a search URL. Set to 0 for no limit. |
maxAppsPerSearch | integer | — | 5 | Maximum number of apps to scrape from each search URL's results page. Doesn't apply to app URLs or package names. |
sentimentAnalysis | boolean | — | false | Tag each review with its sentiment (positive, negative, neutral). Off by default. |
sort | string | — | newest | newest, most_relevant or rating. |
minRating | integer | — | — | Keep only reviews with at least this many stars (1–5). |
language | string | — | en | Language code for reviews and app details. |
country | string | — | US | Two-letter country code for the store front. |
cacheProjectName | string | — | — | Name a project to remember scraped reviews across runs so repeat runs skip data already collected. |
proxyConfiguration | object | — | {"useApifyProxy": false} | Proxy settings. Off by default. |
Supported input types:
- Package name —
com.spotify.music - App URL —
https://play.google.com/store/apps/details?id=com.spotify.music - App URL with store front —
https://play.google.com/store/apps/details?id=com.spotify.music&hl=de&gl=DE - Search URL —
https://play.google.com/store/search?q=ai+voice&c=apps— scrapes reviews for every app on the results page, up tomaxAppsPerSearch
📦 Google Play reviews scraper output data
Each result is a JSON object with the keys packageName, appName, developer, category, appRating, appRatingCount, appUrl, reviewId, author, avatar, rating, text, publishedAt, thumbsUp, appVersion and developerReply. When sentimentAnalysis is enabled, every item also gets a sentiment field (positive, negative or neutral). The dataset ships with two views: Overview, a compact table of app name, rating, author, review text and date; and Full review details, which adds the review ID, developer, app rating, thumbs-up count, app version and the full developer reply.
Sample output:
[{"packageName": "com.spotify.music","appName": "Spotify: Music and Podcasts","developer": "Spotify AB","category": "MUSIC_AND_AUDIO","appRating": "4.345688819885254","appRatingCount": "36282777","appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&hl=en&gl=US","reviewId": "265d9d6f-c2da-4644-a32b-ecb2779ff7c2","author": "Pushpraj Yadav","avatar": "https://play-lh.googleusercontent.com/a-/ALV-UjXw6kFk6gFKNG_L7QOGbJOnoCQDLnovbQPE7GsEZCxQmzG773PT","rating": 5,"text": "It's like a friend to me, it takes away loneliness, thanks.","publishedAt": "2026-09-10T20:34:28.000Z","thumbsUp": 0,"appVersion": "9.1.80.2221","developerReply": null},{"packageName": "com.spotify.music","appName": "Spotify: Music and Podcasts","developer": "Spotify AB","category": "MUSIC_AND_AUDIO","appRating": "4.345688819885254","appRatingCount": "36282777","appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&hl=en&gl=US","reviewId": "c1c04774-9b7f-4dc9-b03a-a23f1c1e6848","author": "Sofia aranda","avatar": "https://play-lh.googleusercontent.com/a-/ALV-UjVAjQPqy-kMqsGRsMiAYTi1t0i2gRMKLL5gqDCS0tRUQ26FZkc","rating": 4,"text": "I like the app just that wayyy to many ads and when you play a Playlist it plays other songs then the one on your Playlist","publishedAt": "2026-09-10T20:33:25.000Z","thumbsUp": 0,"appVersion": "9.1.80.2221","developerReply": {"author": "Spotify AB","text": "Hey! We hear you and we'll pass your feedback along to the Ads team. If you’re on our free service, Smart Shuffle is on by default and adds songs to keep your queue fresh. For ad-free listening and full control, check out our Premium plans at spotify.com/premium. If you've never had Premium before, you should be eligible for our trial.","repliedAt": "2026-09-11T18:31:11.000Z"},"sentiment": "negative"}]
sentiment only appears when sentimentAnalysis is set to true in the input.
🐍 How to scrape Google Play reviews with Python, JavaScript or the API
Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("<username>/google-play-reviews-scraper").call(run_input={"appIds": ["com.spotify.music"],"maxItems": 50,"sort": "newest",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('<username>/google-play-reviews-scraper').call({appIds: ['com.spotify.music'],maxItems: 50,sort: 'newest',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL — start a run and wait for the dataset:
curl -X POST "https://api.apify.com/v2/acts/<username>~google-play-reviews-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"appIds": ["com.spotify.music"], "maxItems": 50, "sort": "newest"}'
💡 What you can use Google Play review data for
- App store optimization (ASO) — find the words real users use to describe your app
- Competitor monitoring — track rival apps' ratings and complaints over time
- Bug and crash discovery — surface issues tied to a specific app version
- Sentiment tracking — enable
sentimentAnalysisto see how positive/negative sentiment moves after each release, no extra processing needed - Support quality auditing — see which reviews got a developer reply and how fast
- Feature request mining — collect what users repeatedly ask for
- Category and keyword research — scrape a Google Play search URL to compare reviews across every competing app in a niche
Product managers, mobile developers, ASO specialists, QA teams and market researchers use this data across mobile apps, gaming, fintech and e-commerce.
⚠️ Limitations & known issues
- Review availability varies by country — the same app can return different reviews for different
countryvalues, because Google serves reviews per store front. - Very large apps — popular apps have millions of reviews; Google stops serving further pages well before the full history is reachable, so set a realistic
maxItems. - App version is not always present — Google omits it for some reviews, in which case the field is
null. - Rate limiting — scraping many apps at high volume may be throttled; enable proxies if you hit limits.
❓ Frequently asked questions
Can I scrape Google Play reviews legally?
This actor only collects data that is already publicly visible on the Google Play Store — no login, paywall, or private content is accessed. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn as precedent). Reviews contain user-generated content and display names, so if you store or republish them you are responsible for complying with Google's Terms of Service and privacy laws such as GDPR and CCPA.
How many reviews can I scrape from one app?
maxItems limits results per app, so three apps with maxItems: 500 returns up to 1,500 reviews. Google stops serving further pages after a few thousand reviews for most apps, so extremely large numbers will finish early rather than error.
Does this scraper get developer replies?
Yes. When a developer has replied to a review, the developerReply object carries the reply text, the developer name and the reply timestamp. Reviews without a reply have null.
Can I get sentiment analysis on the reviews?
Yes. Turn on the sentimentAnalysis input and every review is returned with a sentiment field set to positive, negative or neutral — no separate tool or manual labeling needed. It's off by default so runs stay at their cheapest unless you need it.
Can I scrape reviews from a Google Play search instead of one app at a time?
Yes. Paste a Google Play search URL (e.g. https://play.google.com/store/search?q=fitness+tracker&c=apps) into startUrls and the actor scrapes reviews for every app on that results page, up to the maxAppsPerSearch limit — useful for pulling reviews across a whole category or keyword in one run.
Do I need a proxy to scrape play.google.com?
No. Google Play responds reliably without one, which is why proxies are off by default. Enable them if you scrape many apps in a single run and start seeing throttling.
How do I scrape Google Play reviews with Python?
Install apify-client, then call the actor with your package names and iterate the dataset — see the Python example above. Each review comes back as flat JSON, ready for pandas or a database.
Can I run this Google Play reviews scraper on a schedule?
Yes. Use Apify Schedules to run it daily or hourly, and set cacheProjectName so each run returns only reviews you have not already collected — ideal for monitoring a release.
What output formats are supported?
JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.
🔗 Other actors you may find useful
- Google News AI Scraper — search Google News by keyword, optionally extract full article text and AI-generated summaries, with built-in cross-run deduplication.
- Google Patents Scraper — scrapes patent listings and details from Google Patents.
- UniAcco Student Accommodation Scraper — scrapes student accommodation listings from UniAcco, including price range, address, amenities, rating and reviews.
- HousingAnywhere Property Scraper — scrapes rental listings from HousingAnywhere, including price, city, coordinates, room count, floor area, house rules, facilities and images.
- Woolworths Products Scraper — scrapes Woolworths Australia grocery products: name, brand, price, unit price, package size, availability, ingredients, allergens and nutrition.
💬 Support & Contact
If you encounter any issues or have questions, please open an issue
You can also find more of my actors on the page Actor Flow .