Google Play Reviews Scraper
Pricing
from $0.15 / 1,000 review results
Google Play Reviews Scraper
Scrape Google Play reviews by app URL, package ID, or search query. Extract review text, ratings, dates, app versions, developer replies, helpful votes, reviewer data, app metadata, countries, and review languages.
Pricing
from $0.15 / 1,000 review results
Rating
0.0
(0)
Developer
DataForge
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
π± Google Play Reviews Scraper
A request-only scraper for Google Play reviews and app metadata β no login, no browser. Give it a package ID, a Play Store URL, or a search query, and it returns flat rows of reviews (text, rating, date, app version, developer reply, helpful votes, reviewer) plus full app details.
Below are the questions people actually ask before running it.
TARGETS FAN-OUT: app Γ country Γ language OUTPUTββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββ ββββββββββββββ π¦ package id β β fetch review pages Β· paginate β β Reviews ββ π Play URL βββββββββΆβ β filter (rating/date/keywords) ββββββΆβ Apps ββ π search queryβ resolveβ π detect language Β· dedupe βflat β errors βββββββββββββββββββ apps β π attach app details βrows β summary ββββββββββββββββββββββββββββββββββββββββ βββββββββββββ
π― How do I tell it which app to scrape?
Three ways, mix them freely:
- Package ID β
com.supercell.brawlstars - Full URL β
https://play.google.com/store/apps/details?id=com.spotify.music - Search query β
habit tracker, and it finds the apps for you
Put exact targets in appIdsOrUrls, keywords in searchQueries. You need at least one of the two.
{"appIdsOrUrls": ["com.supercell.brawlstars"],"countries": ["us"],"reviewLanguages": ["en"],"maxReviewsPerApp": 100,"sort": "newest"}
π I only know the app by name, not its package ID. Can it still work?
Yes β that's what searchQueries is for. It searches Google Play, takes the top maxAppsPerSearch apps per query, then scrapes their reviews.
{"searchQueries": ["habit tracker"],"maxAppsPerSearch": 5,"maxReviewsPerApp": 100}
β Can it filter by star rating?
Yes. ratings takes any mix of "1"β"5". Leave it empty for everything, or narrow to the angry ones:
{ "ratings": ["1", "2"] }
π How far back can I go? Can I get just recent reviews?
You control the date window three ways, all optional:
recentDaysβ only the last N days (e.g.30)dateFrom/dateToβ an explicitYYYY-MM-DDrange- neither β take whatever
maxReviewsPerAppandsortreturn
Google Play serves reviews newest-first best, so pair a date filter with "sort": "newest".
π€ Can I search the review text for specific words?
Yes β two case-insensitive filters:
keywordsβ keep only reviews containing at least one of theseexcludeKeywordsβ drop reviews containing any of these
{"keywords": ["crash", "bug"],"excludeKeywords": ["great"],"ratings": ["1", "2"],"recentDays": 30}
π Does it handle languages, or is it English-only?
It handles 49 languages. Pick one or many in reviewLanguages (English, Russian, Spanish, German, French, Portuguese BR/PT, Italian, Japanese, Korean, Arabic, Hindi, and more). Need a code that isn't in the dropdown? Add it to customReviewLanguages (e.g. is, eu, gl).
By default strictReviewLanguage is on: the Actor detects each review's actual language and skips ones written in a different language β so "English only" really means English only, not a multilingual soup.
πΊοΈ Can I pull the same app across several countries at once?
Yes. List codes in countries (us, gb, de, jp, β¦). Every app Γ country Γ review-language combination is fetched and tagged, so you can compare markets in one run. Each row carries country, language (requested), and detectedLanguage.
π Does it get app metadata too, or only reviews?
Both. With includeAppDetails on (default) every app's full profile is available: title, icon, developer, score, ratings & reviews count, installs, genre, version, screenshots, and more.
appId Β· appTitle Β· appUrl Β· appIcon Β· developer Β· developerId Β· developerWebsite Β· developerEmail Β· genre Β· genreId Β· score Β· ratingsCount Β· reviewsCount Β· installs Β· minInstalls Β· maxInstalls Β· free Β· price Β· currency Β· released Β· updated Β· version Β· androidVersion Β· contentRating Β· containsAds Β· summary Β· description Β· screenshots
π΅ Can I get app details without scraping reviews?
Set maxReviewsPerApp to 0. You get the metadata for every target and zero reviews β ideal for discovery or an app catalog. Pair with "outputMode": "apps" to keep the default dataset app-only.
π What does a review row actually contain?
{"itemType": "review","reviewId": "gp:AOqpTO...","appId": "com.supercell.brawlstars","appTitle": "Brawl Stars","country": "US","language": "en","detectedLanguage": "en","rating": 5,"text": "Great game but the last update keeps crashing on my phone.","publishedAt": "2026-07-25T09:12:00+00:00","appVersion": "58.238","thumbsUpCount": 42,"developerReplyText": "Thanks for the report β a fix is on the way!","developerReplyDate": "2026-07-26T10:00:00+00:00","reviewerName": "John","reviewerImage": "https://play-lh.googleusercontent.com/....png","crawledAt": "2026-08-07T18:30:02+00:00"}
Key review fields: reviewId Β· text Β· rating Β· publishedAt Β· timestamp Β· appVersion Β· reviewCreatedVersion Β· thumbsUpCount Β· developerReplyText Β· developerReplyDate Β· reviewerName Β· reviewerImage Β· country Β· language Β· detectedLanguage Β· searchQuery Β· crawledAt.
π¬ Can I filter by developer reply, or by app version?
Yes to both:
onlyWithDeveloperReply/onlyWithoutDeveloperReplyβ reply presenceappVersionsβ keep only reviews written for exact version strings (e.g. after a specific release)
π§Ή How do I keep the export clean?
dedupe is on by default, so the same review won't repeat across countries/languages. Use outputMode to decide what lands in the default dataset β reviews, apps, or both. Every row is already flat, so CSV / Excel / JSON open ready to use.
ποΈ Where do apps, errors, and run stats go?
Beyond the default dataset (with Reviews and Apps views), the Actor auto-creates helper datasets:
- apps β full app-detail records collected in the run
- errors β anything skipped (bad package ID, failed search, empty locale) with a reason, so it never pollutes your reviews
- summary β run counters: apps discovered/processed, reviews scraped, duplicates skipped, runtime
β‘ Is it fast? Can I slow it down if I get throttled?
maxConcurrency controls how many app/country/language combos run in parallel. If you need to be gentle, add requestDelayMs (a pause after each review page). fetchPageSize and maxPagesPerApp tune how aggressively it paginates when strict filters need more pages to find matches.
π Do I need a login, cookies, or a browser?
No. It's fully request-only β no account, no browser, no cookies.
π₯ Every input, briefly
| Field | What it does |
|---|---|
appIdsOrUrls Β· searchQueries Β· maxAppsPerSearch | Targets and app discovery |
countries Β· reviewLanguages Β· customReviewLanguages Β· strictReviewLanguage | Markets and language control |
maxReviewsPerApp (0 = details only) Β· sort (newest/relevant/rating) | Review volume and order |
ratings Β· keywords Β· excludeKeywords Β· dateFrom Β· dateTo Β· recentDays Β· appVersions | Filters |
onlyWithDeveloperReply Β· onlyWithoutDeveloperReply | Reply-presence filters |
outputMode Β· includeAppDetails Β· dedupe | Output shape |
fetchPageSize Β· maxPagesPerApp Β· maxConcurrency Β· requestDelayMs | Performance tuning |
Was it useful? A rating on the Apify Store helps more people find the Actor and tells me what to build next β genuinely appreciated. π
π·οΈ Tags: google play Β· google play scraper Β· app reviews Β· android reviews Β· reviews scraper Β· app store optimization Β· aso Β· sentiment analysis Β· app intelligence