Google Play Reviews Scraper - $0.09/1k, No Key
Pricing
from $0.09 / 1,000 google play reviews
Google Play Reviews Scraper - $0.09/1k, No Key
$0.09 per 1,000 reviews, flat at every volume, plus a $0.001 run-start fee. Pull unlimited public reviews from any app, in any country and language. Filter by star rating and date, sort by newest or most helpful, and get full app metadata in the same run. No login, no API key, no quota.
Pricing
from $0.09 / 1,000 google play reviews
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Google Play Reviews Scraper — unlimited reviews, no API key
Pull every public review from any Google Play app — unlimited, in any country and any language. $0.09 per 1,000 reviews ($0.00009 each), plus $0.001 each time a run starts. Flat rate — no volume tiers, no plan gates — and you are charged only for reviews actually returned.
No login, no API key, no Google quota, no setup. Filter by star rating and date, sort by newest or most helpful, and get full app metadata — rating, install count, version — in the same run.
Who uses this
- ASO teams mining review text for keywords and feature requests.
- Founders and PMs tracking competitor complaints in real time.
- AI and data teams feeding review text straight into sentiment pipelines.
- Support teams catching a bad release before the rating drops.
Why this one
| This Actor | Typical alternative | |
|---|---|---|
| Price per review | $0.00009, flat at every volume | up to $0.00299 |
| Review volume | Unlimited | Often capped |
| Countries / languages | Any | Frequently US-English only |
| App metadata included | Yes | Usually a separate call |
| API key or quota | None | Sometimes required |
Frequently asked questions
Do I need a Google API key or Play Console access? No. An app ID or Play Store URL is enough.
How many reviews can I pull? There is no built-in cap — use maxReviewsPerApp to bound a run.
Can I get reviews in other countries or languages? Yes, via country and language.
Can I filter to 1-star reviews only? Yes, with starRating, and dateCutoff limits how far back
to go.
Does it include the app's rating and install count? Yes, when includeAppMetadata is on.
What does a typical run cost? 1,000 reviews is $0.091 — the $0.001 start fee plus $0.09 of reviews.
No API key, login, cookies, or proxy are required for normal runs.
Features
- Accepts Android package IDs, Google Play app URLs, or both.
- Supports country and language localization.
- Sorts by newest, rating, or helpfulness.
- Returns up to 5,000 matching reviews per app.
- Filters by one star rating and an inclusive UTC date cutoff.
- Deduplicates review IDs across every pagination page.
- Adds useful app metadata to each review with one extra lookup per app.
- Uses conservative shared throttling and retries.
- Uses direct requests by default to avoid unnecessary proxy costs.
- Supports optional Apify or custom proxy fallback.
- Returns clear, uncharged diagnostics instead of failing the run.
- Returns one labeled, uncharged sample row when the input is empty.
Input
| Field | Type | Default | Description |
|---|---|---|---|
appIds | string array | none | Package IDs such as com.spotify.music. URLs also work here. |
appUrls | string array | none | Google Play details URLs. |
country | string | us | Two-letter Google Play storefront country. |
language | string | en | Two-letter review and store language. |
sort | enum | newest | newest, rating, or helpfulness. |
maxReviewsPerApp | integer | 100 | Maximum saved rows per app after filtering, up to 5,000. |
starRating | enum | all | all, or one value from 1 to 5. Numeric values are also accepted through the API. |
dateCutoff | string | none | Include reviews on or after this YYYY-MM-DD UTC date. |
includeAppMetadata | boolean | true | Add app summary fields to every review. |
requestsPerSecond | integer | 3 | Shared request limit from 1 to 10 requests per second. |
proxyConfiguration | object | disabled | Optional Apify or custom proxy fallback. |
At least one real app ID or URL is needed for live data. The schema intentionally has no
required fields so an empty automated test run succeeds with one _sample: true row.
Example input
{"appIds": ["com.spotify.music","https://play.google.com/store/apps/details?id=com.whatsapp"],"country": "us","language": "en","sort": "newest","maxReviewsPerApp": 500,"starRating": 1,"dateCutoff": "2026-01-01","includeAppMetadata": true,"proxyConfiguration": {"useApifyProxy": false}}
Output
Each real dataset row represents one unique review:
{"ok": true,"_sample": false,"appId": "com.spotify.music","appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music","appTitle": "Spotify: Music and Podcasts","appSummary": "Listen to songs, discover music and enjoy podcasts","appDeveloper": "Spotify AB","appScore": 4.3,"appRatings": 33000000,"appReviewCount": 8000000,"appInstalls": "1,000,000,000+","appMinInstalls": 1000000000,"appGenre": "Music & Audio","appVersion": "Varies with device","appUpdated": "2026-07-20T00:00:00.000Z","appIcon": "https://play-lh.googleusercontent.com/...","appPriceText": "Free","appContentRating": "Teen","reviewId": "gp:...","reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=...","userName": "Reviewer","userImage": "https://play-lh.googleusercontent.com/...","date": "2026-07-24T16:10:00.000Z","score": 5,"scoreText": "5","title": null,"text": "The review text.","thumbsUp": 12,"version": "9.0.0","replyDate": null,"replyText": null,"criterias": [],"country": "us","language": "en","sort": "newest"}
Google Play may omit individual fields. Missing values are returned as null, an empty
array, or an empty string where appropriate.
Filtering and pagination
maxReviewsPerApp is the number of rows saved after filters and deduplication. The actor
continues through pagination pages until it reaches that limit, Google Play has no more
pages, or a safety limit of 100 pages is reached.
With sort: "newest" and a dateCutoff, the actor stops once a page crosses the cutoff
because all later pages are older. With rating or helpfulness sorting, it keeps paginating
because later pages can still contain dates that match.
Pricing and billing
$0.09 per 1,000 reviews ($0.00009 each), plus $0.001 each time a run starts. Flat rate — no volume tiers, no plan gates — and you are charged only for reviews actually returned.
The actor writes accepted reviews in page-sized batches. Only after a batch is successfully
saved does it charge the review event for those rows. These rows are never charged:
- Empty-input sample rows.
- Invalid-input diagnostics.
- Not-found, blocked, rate-limited, network, parsing, and no-results diagnostics.
- Duplicate reviews.
- Reviews rejected by the star or date filter.
The direct-request default avoids residential proxy charges entirely. Residential bandwidth is billed to you by Apify on top of the $0.00009 result fee and can easily exceed it on a small or heavily filtered run, so keep proxy use as an explicit fallback for blocked high-volume runs.
Proxy guidance
Google Play normally works without a proxy. Start with the default direct connection and the
default request rate. If a high-volume run receives RATE_LIMITED or BLOCKED diagnostics:
- Lower
requestsPerSecond. - Retry after the temporary block clears.
- Enable an Apify proxy only when direct requests remain blocked.
Country-specific data is primarily selected by the country input. A proxy can also affect
regional availability, so use a matching proxy country when strict geolocation is required.
Diagnostics
Errors and empty results exit successfully with an uncharged dataset row where ok is
false. Check errorCode, error, and details.
| Code | Meaning |
|---|---|
BAD_INPUT | An app ID, URL, locale, filter, limit, or proxy setting is invalid. |
NOT_FOUND | The app is unavailable in the selected country. |
RATE_LIMITED | Google Play returned a rate limit after retries. |
BLOCKED | Google Play returned a captcha, consent wall, or access block. |
PARSE_ERROR | The Google Play response format changed unexpectedly. |
NETWORK | The request could not complete. |
NO_RESULTS | No reviews matched the app, locale, and filters. |
One app failure does not stop the remaining app IDs. If a later pagination page fails, the
actor keeps earlier successful rows and adds an uncharged diagnostic with partial: true.
Data source
This actor uses the actively maintained @mradex77/google-play-scraper package, which
provides typed errors, retries, throttling, pagination, and daily live contract tests against
Google Play. Google Play has no official public API for review data, so public page and internal
endpoint formats can still change.
This actor is not affiliated with Google. Use public data responsibly and comply with applicable terms and laws.
Billing
Two charges apply: a $0.001 run-start fee each time a run begins, and the per-result fee for results actually delivered. Samples, diagnostics, duplicates, blocked look-ups and no-result runs never incur the per-result fee — a run that returns nothing costs only the $0.001 start fee.