Play Store reviews by language and country for Android apps by package name or URL. One row per review: 1-5 rating, text, reviewer, thumbs-up, app version, developer reply. Free app row: Google Play ratings. Filters before billing: star rating (negative, one-star reviews), since date (new reviews).
2026-10-16 — Keyword Planner and locale documentation
Validated search terminology against Google Ads Keyword Planner and Store shelves. Added localized usage guidance and bounded examples; retained existing English phrases. Clarified locale limitations where measured. No runtime, output fields, defaults, or pricing changed.
1.0 — listing and input form reworded, 2026-10-11
No behaviour, output or price changed; the same inputs return the same rows.
Title unchanged ("Google Play Reviews Scraper — Android App Reviews & Ratings"): its phrases hold #1 for "android app reviews ratings", #2 for "android app reviews" and #4 for "android reviews" today, and the Store ranks by the contiguous phrase in the title.
Description: opens with "Play Store reviews by language and country" (the phrases that were missing from the card), names the inputs (package name, URL), one row per review with its fields, the free app row (Google Play ratings) and the filters that run before billing (star rating with one-star reviews, since date for new reviews, text only). "developer reply" is written without the possessive so the phrase matches as typed.
Pricing text (price unchanged, $0.004 a review): the event is "Review"; it lists what one review carries, the per-1,000 price, everything that is never charged (app rows, status rows, filtered reviews, reviews Google skips server-side for a single star value, a review listed under two locales, apps with no reviews, unknown packages, failed jobs, bad input), that there is no start fee, that Google answers up to 100 reviews per request, and that a run stops at the maxTotalChargeUsd you set.
Every input now says what to pass with an example, its default, what it changes and what it costs: appIds says app names are not accepted and where to find the package name; appUrls says the URL's hl/gl are not used (languages and countries decide); maxReviewsPerApp says the filters apply to the N reviews read — except a single star value, which Google filters before the read, so N reviews of that star are delivered; sort says there is no lowest-rating-first order and what to use instead; sinceDate says there is no end date and no "since last run" memory. Order unchanged (all 14 inputs fit on the card).
seo.json: seoTitle carries "Android App Reviews"; seoDescription carries the synonyms (reviews API, play store reviews, google play ratings) and the German, Spanish, Japanese and Korean nouns for app reviews.
README: a section mapping common requests to the exact input, the output row fields (with the measured share of rows carrying app_version), the status and empty-result contract.
2026-08-30
Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
Store listing: moved into the categories buyers actually browse (the old Business category has no Store page).
1.0 — 2026-08-29
First release.
Every review of any Android app, read from the same review call the Google Play web page makes: 1-5 rating, review text, reviewer name, thumbs-up count, app version, date and the developer's public reply. Pages by continuation token to the end of the list — hundreds of thousands of reviews for the big apps.
Every language and country in one run: give languages (en, de, pt-BR, ja…) and countries (us, gb, in, br…) and each app is read for each pair; every row carries language and country. A review Google lists under two locales is delivered and billed once.
Two ways in: package names, or Google Play URLs (the package name is read from the URL).
Three orders: most recent (the one to schedule), most relevant (Google Play's own default), highest rating first.
Cost controls that filter before billing: minRating / maxRating (a complaints feed pays only for the 1-2★ rows; a single star value is filtered by Google itself, so the rest are never fetched), sinceDate (absolute or relative — "7 days" — so schedules never go stale) and requireText. Filtered reviews are never charged.
A free app row per app and locale: name, developer, category, content rating, average rating, rating count, price, currency, icon and description.
Billing: pay per delivered review row. App rows, status rows, filtered reviews, apps with no reviews, unknown packages and failed jobs are all free.
Reliability: Google throttles bursts per IP; the fetcher paces per session, treats an answer without a review payload as a refusal (never as "no reviews"), rotates and backs off, so large runs finish instead of failing.