Google Play Reviews Scraper - $0.09/1k, No Key avatar

Google Play Reviews Scraper - $0.09/1k, No Key

Pricing

from $0.09 / 1,000 google play reviews

Go to Apify Store
Google Play Reviews Scraper - $0.09/1k, No Key

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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 ActorTypical alternative
Price per review$0.00009, flat at every volumeup to $0.00299
Review volumeUnlimitedOften capped
Countries / languagesAnyFrequently US-English only
App metadata includedYesUsually a separate call
API key or quotaNoneSometimes 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

FieldTypeDefaultDescription
appIdsstring arraynonePackage IDs such as com.spotify.music. URLs also work here.
appUrlsstring arraynoneGoogle Play details URLs.
countrystringusTwo-letter Google Play storefront country.
languagestringenTwo-letter review and store language.
sortenumnewestnewest, rating, or helpfulness.
maxReviewsPerAppinteger100Maximum saved rows per app after filtering, up to 5,000.
starRatingenumallall, or one value from 1 to 5. Numeric values are also accepted through the API.
dateCutoffstringnoneInclude reviews on or after this YYYY-MM-DD UTC date.
includeAppMetadatabooleantrueAdd app summary fields to every review.
requestsPerSecondinteger3Shared request limit from 1 to 10 requests per second.
proxyConfigurationobjectdisabledOptional 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:

  1. Lower requestsPerSecond.
  2. Retry after the temporary block clears.
  3. 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.

CodeMeaning
BAD_INPUTAn app ID, URL, locale, filter, limit, or proxy setting is invalid.
NOT_FOUNDThe app is unavailable in the selected country.
RATE_LIMITEDGoogle Play returned a rate limit after retries.
BLOCKEDGoogle Play returned a captcha, consent wall, or access block.
PARSE_ERRORThe Google Play response format changed unexpectedly.
NETWORKThe request could not complete.
NO_RESULTSNo 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.