Google Play Reviews Scraper avatar

Google Play Reviews Scraper

Pricing

from $0.07 / 1,000 review scrapeds

Go to Apify Store
Google Play Reviews Scraper

Google Play Reviews Scraper

Scrape Google Play Store reviews for any Android app - rating, text, date, thumbs up, app version and the developer reply - plus the app store listing, in any country and language.

Pricing

from $0.07 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Returns reviews for any app on the Google Play Store: star rating, review text, date, thumbs-up count, the app version the reviewer was running, and the developer's public reply. It also returns the app's own store listing - name, developer, category, content rating, icon, aggregate score, rating count and price - so a run tells you what the app is as well as what people said about it.

Give it an Android package name (com.spotify.music) or just paste a Play Store URL. Several apps in one run is fine.

Read this before you pay for a run

  • It walks, it does not jump. Play serves reviews in pages behind a continuation token, and this actor follows that token until it runs out or maxReviews is reached. There is no page number you can skip to, here or in any other tool, because Play does not expose one.
  • A quiet app returns everything it has, which may be little. maxReviews is a ceiling, not a promise. If Play stops handing out tokens, the run stops and the log says so.
  • The three sort orders return different reviews. newest, rating and helpfulness each walk their own ordering. Running more than one collects more than any single one does.
  • The star filter narrows the pool. Asking for 500 one-star reviews of an app with a few thousand reviews will return fewer than 500. That is the app, not the actor.
  • country and language do different jobs. country (Play's gl) picks which store the listing is read from - price, availability. language (Play's hl) is what actually biases which reviews come back: hl=ja returned Japanese reviews for the same app that hl=en answered in English. Neither one is a hard filter on the reviewers' countries; Play does not offer one.
  • Residential proxy is required, and it is the default. Google rate limits its reviews endpoint per exit address. No proxy country is pinned on purpose - pinning one narrows the address pool enough to start drawing 403s.

Output

One record per review, type = "review":

FieldNotes
idGoogle's review id. Used for de-duplication across pages.
app_idThe Android package name, e.g. com.spotify.music.
app_nameThe app's display name, read from its store page.
country / languageThe gl and hl the run asked for.
rating1-5.
contentThe review text. Empty string when the reviewer left a star rating and no words, which is common.
updatedISO 8601, UTC.
author_nameThe reviewer's display name.
author_imageAvatar URL, or null.
app_versionThe version the reviewer was running. Often null - Play only attaches it when the review came from a device that reported one. Null means "not recorded", never "version 0".
vote_countThumbs up. Genuinely 0 for most reviews.
reply_content / reply_updated / reply_authorThe developer's reply, its date, and who signed it. All three are null together when there is no reply.
review_urlA link that opens this review on the store page.

Plus one record per app, type = "app", unless you turn includeAppDetails off. App rows are not charged for.

FieldNotes
app_id, app_name, urlThe listing.
description, developer, developer_urlFrom Google's own schema.org markup.
categoryGoogle's category slug, e.g. MUSIC_AND_AUDIO.
content_rating, iconAs shown on the store page.
scoreThe aggregate star rating, 1.0-5.0. Null on apps with too few ratings.
ratingsHow many ratings that aggregate is over. This is larger than the review count - most raters leave no text.
price, currency, freeprice is 0.0 and free is true for a free app. All three are null when the page carried no offer, which happens for apps not distributed in the requested country.

Nulls are measurements

Nothing here is filled in with a zero to make a column look tidy. A null app_version means Play did not record one; a null score means the app has too few ratings for an aggregate. If you see 0, Google sent 0.

Pairing it with the iOS side

The field names match the App Store Reviews Scraper wherever the two stores mean the same thing - id, app_id, app_name, country, content, rating, author_name, app_version, updated, vote_count - so you can run both and union the rows to get one table across both platforms. Two differences are real rather than cosmetic: app_id is a package name here and a number on iOS, and Play reviews have no title, so there is no always-empty title column pretending otherwise.

Billing

  • actor-start, once per run, charged only after your input parses. A run that fails on its own input costs nothing.
  • review-scraped, once per review row. App rows are free, and a review that Play hands back twice mid-walk is charged once.