Google Play Store Reviews Scraper avatar

Google Play Store Reviews Scraper

Pricing

from $0.20 / 1,000 results

Go to Apify Store
Google Play Store Reviews Scraper

Google Play Store Reviews Scraper

[๐Ÿ’ฐ $0.2 / 1K] Extract reviews from any app on Google Play โ€” reviewer, rating, text, date, helpful votes, app version, device, and developer replies. Accepts app package names or full Play Store URLs.

Pricing

from $0.20 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

71

Total users

23

Monthly active users

16 days ago

Last modified

Share

Pull user reviews from any Android app on the Google Play Store at scale โ€” reviewer names, 1-to-5 star ratings, full review text, publish dates, helpful votes, app versions, device types, and developer replies, plus app metadata (title, publisher, overall rating, install bucket, icon) attached to every row. Built for app product managers, ASO agencies, and customer-insight teams who need fresh Play Store reviews without writing a batchexecute parser or scrubbing chunked RPC responses by hand.

Why This Scraper?

  • 24 typed fields per review โ€” every row carries the review (id, rating, text, helpful votes, language, app version, device) plus 8 app-metadata fields (title, publisher, overall rating, total review count, install bucket like 500M+, icon URL, package name, canonical URL) so you can group and filter without a second lookup.
  • Developer replies on every row โ€” ownerReplyText and ownerReplyAt are extracted whenever the developer responded, letting you measure reply rate, reply latency, and reply-text sentiment in a single dataset.
  • 4 sort modes including Highest and Lowest Rating First โ€” Google's RPC only ships 3 sort modes; the actor synthesizes "Highest" and "Lowest" by fanning out across the 5 star buckets so you get clean stratified coverage instead of relevance-biased samples.
  • 5-star multi-select rating filter โ€” pull only 1โ˜… and 2โ˜… reviews for support triage, only 5โ˜… for testimonial mining, or any combination โ€” each rating is fetched in its own pass so the cap applies per bucket.
  • 55 country codes and 30 interface languages โ€” get region-specific reviews from Brazil to Vietnam, with Google Play's locale-resolved review text in language=de, language=ja, language=zh-CN, and 27 more.
  • Date-window early stop โ€” pair "Newest First" with recentDays or reviewsStartDate and the run halts the moment a review older than the window appears, so a "last 7 days" sweep across 100 apps costs a fraction of a full export.
  • Phone, Tablet, and Chromebook isolation โ€” Google Play exposes three device review buckets; pick one and only that device's reviewers come back, perfect for diagnosing tablet-only rendering bugs or Chromebook keyboard complaints.
  • Pastes both com.spotify.music and full play.google.com/store/apps/details?id=... URLs in the same input list, with invalid package names skipped (warned, never fatal) so one bad entry doesn't kill a 500-app batch.
  • Drop-in pairing with the Google Play Apps Scraper โ€” both actors use the identical appId column, so you can chain "Top 100 Free Finance apps" โ†’ 500 reviews each into one pipeline with zero data transformation.

Use Cases

Product & App Development

  • Track sentiment and recurring complaints across app versions
  • Catch crash and login regressions in the first 24 hours after a release
  • Compare user reactions across competing apps in your category
  • Build in-house dashboards for review trends and rating drops

Market Research & Competitive Intelligence

  • Benchmark your app against direct competitors on rating, review volume, and reply rate
  • Surface feature requests and pain points hiding in 1โ˜… and 2โ˜… reviews
  • Map review sentiment across countries to guide localization priorities
  • Spot competitors' weak spots from their lowest-rated reviews

Marketing, ASO & Agencies

  • Mine 5โ˜… reviews for testimonials and store-listing copy
  • Identify which app versions drove rating spikes or drops
  • Audit client apps for unanswered negative reviews ripe for a reply strategy
  • Pull multilingual reviews to inform international ad creative

Customer Support & Community

  • Alert on new negative reviews containing keywords like crash, bug, refund, login
  • Build a reply workflow by feeding unreplied low-rated reviews into your ticketing tool
  • Measure developer reply rates and reply latency over time

Data Science & Research

  • Train sentiment and topic models on multilingual review corpora
  • Study review dynamics across categories, countries, and app sizes
  • Correlate app-version release dates with rating shifts

Getting Started

Simple โ€” One App, Latest Reviews

{
"appIdsOrUrls": ["com.supercell.brawlstars"],
"maxReviewsPerApp": 500,
"sortBy": "newest"
}

Multiple Apps at Once

Mix package names and full URLs in the same list:

{
"appIdsOrUrls": [
"com.spotify.music",
"com.whatsapp",
"https://play.google.com/store/apps/details?id=com.instagram.android"
],
"maxReviewsPerApp": 1000,
"sortBy": "newest"
}

Only 1โ˜… and 2โ˜… Reviews With Keywords

Perfect for support teams hunting for specific issues:

{
"appIdsOrUrls": ["com.asana.app"],
"maxReviewsPerApp": 500,
"sortBy": "newest",
"ratings": ["1", "2"],
"keywords": ["crash", "bug", "refund", "login"]
}

Recent Reviews Only (Last 7 Days)

Combine with "Newest First" for the fastest, cheapest fresh-reviews run โ€” collection stops automatically once reviews fall outside the window:

{
"appIdsOrUrls": ["com.duolingo"],
"maxReviewsPerApp": 2000,
"sortBy": "newest",
"recentDays": 7
}

Localized Reviews โ€” Germany, German Language

{
"appIdsOrUrls": ["com.spotify.music"],
"maxReviewsPerApp": 500,
"sortBy": "newest",
"language": "de",
"countryCode": "DE"
}

Tablet-Only Reviews for a Specific App Version

{
"appIdsOrUrls": ["com.supercell.brawlstars"],
"maxReviewsPerApp": 1000,
"sortBy": "highest",
"deviceType": "tablet",
"appVersions": ["65.165", "64.226"]
}

Input Reference

Apps

ParameterTypeDefaultDescription
appIdsOrUrlsstring[][]App package names (e.g. com.supercell.brawlstars) or full Google Play URLs. Mix and match in the same list.

Collection Options

ParameterTypeDefaultDescription
maxReviewsPerAppinteger1000Maximum reviews per app. Set to 0 for all available.
sortBystring"mostRelevant"mostRelevant, newest, highest (highest rating first), or lowest (lowest rating first).
deviceTypestring"phone"Restrict to one device bucket: phone, tablet, or chromebook.
languagestring"en"Interface and review-text language. 30 options including English, German, French, Spanish, Japanese, Simplified and Traditional Chinese, Arabic, Hindi, Portuguese, Russian.
countryCodestring"US"Country used to resolve region-specific reviews. 55 options across the Americas, Europe, Asia-Pacific, and MENA.

Filters

ParameterTypeDefaultDescription
ratingsstring[][]Star ratings to keep ("1" through "5", multi-select). Empty = all ratings. Each rating runs as its own pass so the cap applies per bucket.
keywordsstring[][]Only keep reviews whose text contains any of these words or phrases (case-insensitive).
reviewsStartDatestringโ€”Only reviews posted on or after this date. Format: YYYY-MM-DD. With sortBy: "newest", the run halts as soon as older reviews are reached.
reviewsEndDatestringโ€”Only reviews posted on or before this date. Format: YYYY-MM-DD.
recentDaysinteger0Only reviews from the last N days. Overrides reviewsStartDate when greater than 0.
appVersionsstring[][]Only keep reviews reported from these app versions (e.g. ["65.165", "64.226"]).
uniqueOnlybooleantrueDrop duplicate reviews matched by review ID across the run.

Output

Each row is one review with the parent app's metadata attached. Example:

{
"reviewId": "a2c4e8f0-1234-5678-90ab-cdef12345678",
"appId": "com.supercell.brawlstars",
"appTitle": "Brawl Stars",
"appUrl": "https://play.google.com/store/apps/details?id=com.supercell.brawlstars",
"developer": "Supercell",
"appOverallRating": 4.2,
"appReviewCount": 25666604,
"appInstalls": "500M+",
"appIconUrl": "https://play-lh.googleusercontent.com/...",
"reviewerName": "Jane D.",
"reviewerAvatarUrl": "https://play-lh.googleusercontent.com/a/...",
"rating": 5,
"reviewText": "Great game, lots of fun with friends. The new brawler is amazing!",
"publishedAt": "2026-04-18T14:22:31Z",
"timestamp": 1776261751,
"language": "en",
"helpfulCount": 42,
"appVersion": "65.165",
"deviceType": "phone",
"ownerReplyText": "Thanks for the love! Glad you're enjoying the new brawler.",
"ownerReplyAt": "2026-04-19T09:11:02Z",
"position": 1,
"scrapedAt": "2026-04-20T16:04:12Z"
}

App Metadata (attached to every review row)

FieldTypeDescription
appIdstringApp package name (e.g. com.supercell.brawlstars)
appTitlestringHuman-readable app title
appUrlstringCanonical Google Play URL
developerstringApp publisher / developer name
appOverallRatingnumberCurrent overall star rating of the app (1.0โ€“5.0)
appReviewCountnumberTotal number of reviews the app has on Google Play
appInstallsstringInstall count label (e.g. 500M+, 10B+)
appIconUrlstringURL of the app's icon

Review Fields

FieldTypeDescription
reviewIdstringUnique review identifier
reviewerNamestringDisplay name of the reviewer
reviewerAvatarUrlstringURL of the reviewer's profile image
ratingintegerStar rating, 1โ€“5
reviewTextstringFull review body text
publishedAtstringReview publish date (ISO 8601, UTC)
timestampintegerUnix epoch seconds for the review
languagestringLanguage code used for the review
helpfulCountintegerNumber of "helpful" votes the review received
appVersionstringApp version the reviewer was using (occasionally empty for very old versions)
deviceTypestringDevice bucket of the reviewer: phone, tablet, or chromebook
ownerReplyTextstringDeveloper's reply text (present only when the developer responded)
ownerReplyAtstringDeveloper's reply date (ISO 8601, UTC)
positioninteger1-indexed order within this app's collection
scrapedAtstringISO 8601 timestamp of when the row was collected

Tips for Best Results

  • "Most Relevant" is capped at ~50โ€“150 reviews per app โ€” Google's UI hard-caps it. For deep scans (anything over ~150) switch to sortBy: "newest" or use "Highest"/"Lowest" rating fan-out.
  • Pair "Newest First" with recentDays or reviewsStartDate for free early-stop savings. Collection halts the instant a review older than the window appears, so a daily monitoring run on 100 apps stays cheap.
  • keywords, appVersions, and reviewsEndDate are post-collection filters. Final row count may be below maxReviewsPerApp when few reviews match โ€” widen the cap or relax the filter to get more.
  • Match language to countryCode. Google Play returns region-specific reviews, so countryCode: "DE" + language: "de" is a very different dataset than countryCode: "US" + language: "en". Mismatches silently return generic results.
  • Use "Highest Rating First" to mine testimonials, "Lowest Rating First" to triage support. Both fan out across the 5 star buckets in predictable order โ€” within each rating bucket, reviews come back newest-first.
  • Chain with the Google Play Apps Scraper โ€” discover apps by Top Charts, search, or developer catalog there, then paste the resulting appId column directly into appIdsOrUrls here. No transformation needed.
  • Batch many apps in one run. Invalid package names are skipped with a warning, so one bad appId in a 500-app list won't kill the run.

Pricing

$0.40 per 1,000 reviews โ€” pay only for reviews delivered to your dataset.

ReviewsEstimated Cost
100$0.04
1,000$0.40
10,000$4.00
100,000$40.00

A "result" is any review row in the output dataset. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n โ€” Workflow automation and alerts on new reviews
  • Google Sheets โ€” Direct spreadsheet export for review dashboards
  • Slack / Email โ€” Notifications when new low-rated reviews appear
  • Webhooks โ€” Trigger your own backend when a run completes
  • Apify API โ€” Full programmatic access for pipelines and data warehouses

This actor is designed for legitimate product research, market intelligence, and customer insight. Users are responsible for complying with applicable laws, Google's Terms of Service, and any privacy regulations that apply to their region. Review text and reviewer names are public data on Google Play โ€” do not use the collected data for spam, harassment, targeted advertising to individual reviewers, or any unlawful purpose.