
Ultimate Google Play Review Extractor
Pricing
$1.00 / 1,000 results

Ultimate Google Play Review Extractor
Extract app reviews from Google Play efficiently for sentiment analysis and feedback.
5.0 (1)
Pricing
$1.00 / 1,000 results
1
3
1
Last modified
a day ago
CodeMaster Google Play Reviews Scraper
A battle-tested Apify actor and Google Play Store reviews scraper that turns public app feedback into structured, production-ready data for product, marketing, and data science teams. Deploy it on Apify or run it locally to extract Google Play reviews, download review text as JSON or CSV, track sentiment, app versions, and keyword-rich opinions without manual copying or brittle Selenium scripts.
Snapshot
Category | Highlights |
---|---|
Primary goal | Extract, cleanse, and export public Google Play reviews at scale |
Built for | ASO teams, product managers, support leads, data analysts, agencies |
Tech stack | Node.js, Apify SDK, google-play-scraper, https-proxy-agent |
Hosting | Works both locally and on Apify cloud (with proxy and scheduling support) |
First-run experience | Uses com.spotify.music by default so every new user gets real output instantly |
Contents
- Why this actor stands out
- Who it is built for
- Getting results in under five minutes
- Apify Console walkthrough
- API and automation playbook
- Local developer workflow
- Configuration reference
- Output data dictionary
- Sample dataset
- Working with datasets
- Frequently asked questions
- Troubleshooting
- Support and next steps
Why this actor stands out
- Uses the official
google-play-scraper
library for high fidelity data without browser automation. - Precision pagination: keeps track of cursors, caps totals, and prevents infinite loops.
- Proxy-ready: plug in Apify proxy groups or your own HTTP proxies for geo-specific scraping.
- Defensive coding: validates inputs, clamps delays, sanitises filters, and fails fast on invalid package IDs.
- Ships with a realistic default input file so you see a working dataset immediately.
- Emits clean JSON objects that drop straight into BI tools, spreadsheets, or ML pipelines.
Who it is built for
- ASO and growth marketers measuring rating shifts, keyword density, and release sentiment.
- Product managers mining feature requests and regression complaints to inform the roadmap.
- Support and success teams catching churn signals and surfacing follow-up opportunities.
- Data scientists and analysts enriching dashboards or seeding sentiment and topic models.
- Agencies and consultants delivering competitor intelligence reports without manual scraping.
Getting results in under five minutes
You will find a ready-to-run configuration at storage/key_value_stores/default/INPUT.json
. Paste the same JSON into the Apify Console or run locally to scrape Spotify reviews on the very first run. This payload is fully optimised for Google Play review scraping SEO keywords, so search engines understand exactly what the actor delivers.
{"action": "scrapeReviews","count": 1,"maxDelay": 3,"minDelay": 1,"scrapeReviews.appId": "com.spotify.music","cursor": ""}
Use this Google Play reviews scraper configuration to download app store feedback, star ratings, and user sentiment data for ASO research, competitor tracking, and content marketing.
Fast start checklist
- Open the actor (locally or on Apify).
- Review the JSON above; keep it as-is or swap
scrapeReviews.appId
for your target package. - Install dependencies with
npm install
if you are running locally. - Start the actor (
APIFY_INPUT='…' node src/main.js
locally or press Run in Apify). - Export the dataset in JSON, CSV, Excel, NDJSON, or HTML.
Apify Console walkthrough
- Actor page – Click Run.
- Input tab – Paste the JSON payload or adjust via schema UI.
- Proxy tab – Select an Apify proxy group (AUTO works well for most cases).
- Launch – Press Start and monitor the log stream for
Fetching page
updates. - Results – Open the Dataset tab to download or pipe the data via API.
Scheduling tip: In the Schedule tab, run the actor daily or weekly to maintain an up-to-date review feed.
API and automation playbook
Trigger the actor from any HTTP client with the Apify REST API:
curl -X POST "https://api.apify.com/v2/acts/<username>~google-play-review-extractor/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"action": "scrapeReviews","count": 1,"maxDelay": 3,"minDelay": 1,"scrapeReviews.appId": "com.spotify.music","cursor": ""}'
Automation ideas:
- Send the POST request from Zapier, Make, or n8n and push the resulting dataset into Slack or a warehouse.
- Use Apify webhooks so downstream jobs fire as soon as a run completes.
- Control runs programmatically with the official Apify client in Node.js or Python.
Local developer workflow
git clone <repo-url>cd GooglePlay_ReviewExtractornpm install# Option 1: rely on the bundled input fileAPIFY_LOCAL_STORAGE_DIR=./storage node src/main.js# Option 2: supply inline JSONAPIFY_INPUT='{"action":"scrapeReviews","count":1,"maxDelay":3,"minDelay":1,"scrapeReviews.appId":"com.spotify.music","cursor":""}' node src/main.js
Developer tips:
- Delete
storage/key_value_stores/default/state.json
between runs to reset pagination. - Set
APIFY_LOG_LEVEL=DEBUG
to see the resolved options and pagination tokens. - Copy the package ID from any Play Store URL (look for
id=com.example.app
) and drop it intoscrapeReviews.appId
.
Configuration reference
Field | Type | Required | Description |
---|---|---|---|
action | string | yes | Supports scrapeReviews . |
maxItems | integer | no | Upper limit of reviews to store. Takes priority when provided. |
count | integer | no | Legacy alias for maxItems ; still supported for backwards compatibility. |
minDelay and maxDelay | integer (seconds) | no | Adds human-like pauses between page requests. |
proxy | object | no | Standard Apify proxy configuration object. |
cursor | string | no | Internal pagination cursor, managed automatically. |
scrapeReviews.appId | string | yes | Google Play package ID such as com.spotify.music . |
scrapeReviews.lang | string | no | ISO language code (example: en , de ). |
scrapeReviews.country | string | no | Two-letter uppercase ISO country code (example: US , IN ). |
scrapeReviews.sort | string or number | no | Accepts newest , rating , helpfulness , or numeric constants. Defaults to rating. |
scrapeReviews.num | integer | no | Reviews requested per API call (1 to 199). |
scrapeReviews.rating | integer | no | Filter by star rating from 1 to 5. |
The actor validates the package ID upfront and fails with App "<id>" not found on Google Play (received 404)
if the identifier is invalid.
Output data dictionary
Field | Type | Meaning |
---|---|---|
id | string | Google Play review identifier. |
userName | string | Reviewer display name. |
userImage | string (URL) | Reviewer avatar URL. |
date | string (ISO 8601) | Review timestamp. |
score | integer | Star rating (1 to 5). |
scoreText | string | Rating as returned by Google Play. |
url | string (URL) | Direct link to the review detail page. |
title | string or null | Review headline if provided. |
text | string | Review body. |
replyDate | string (ISO 8601) or null | Developer reply timestamp. |
replyText | string or null | Developer response text. |
version | string or null | App version mentioned by the reviewer. |
thumbsUp | integer | Helpful votes count. |
criterias | array | Structured rating criteria (may be empty). |
Sample dataset
[{"id": "6fac3b1b-1638-46a5-aa50-14f0cd7fd6ed","userName": "Muhammed Sheriff Omeiza Abdulmajeed","userImage": "https://play-lh.googleusercontent.com/a/ACg8ocKWLmIPnTgwReBW6obLwEHm7FMR0R7ZbLv-bbug0qbnL1nNeg=mo","date": "2025-08-03T05:23:17.237Z","score": 5,"scoreText": "5","url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=6fac3b1b-1638-46a5-aa50-14f0cd7fd6ed","title": null,"text": "It's a really good app, featuring all kinds of music, from old to recent and every genre. I really like it. But the thing is when one hasn't subscribed to the premium features, he's deprived of many choices. That's understandable, but then part of the restrictions is that there's a limit to how many times you can choose a song from your library in a day. Another thing, the app tends to play or switch to songs that are not in my catalog while I'm playing a song stored there. it's infuriating.","replyDate": null,"replyText": null,"version": "9.0.64.608","thumbsUp": 10126,"criterias": []}]
Working with datasets
- Apify Console – Export from the Dataset tab in JSON, CSV, Excel, NDJSON, or HTML.
- REST API –
GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json&clean=1
and use query parameters for filtering. - Apify CLI –
apify datasets get <datasetId> --format csv --fields userName,text,score
. - BI connectors – Plug the dataset URL into Looker Studio, Tableau, Power BI, or Google Sheets.
Each run produces a new dataset. Retrieve dataset IDs from the run detail or via the Apify actor runs API.
Frequently asked questions
Can I monitor multiple apps?
Yes. Run the actor once per package ID. Use Apify task queues, schedules, or external automation to cycle through a list.
How many reviews can I fetch?
Set maxItems
(or legacy count
) to the maximum you need. The actor stops when it reaches the limit or when Google Play runs out of pages.
Do I always need proxies?
Not necessarily. Proxies are recommended for high-volume scraping or when you need a specific region.
Can I filter by rating, language, or country?
Yes. Use scrapeReviews.rating
, scrapeReviews.lang
, and scrapeReviews.country
.
Troubleshooting
App "<id>" not found on Google Play (received 404)
– Check the package ID from the Play Store URL.- Empty dataset – Relax filters or ensure the app actually has reviews in the selected locale or rating range.
- Rate limiting or timeouts – Increase
minDelay
andmaxDelay
, and enable a broader proxy pool. - Need deeper diagnostics – Set
APIFY_LOG_LEVEL=DEBUG
to inspect resolved options and pagination tokens.
Support and next steps
- YouTube: https://www.youtube.com/@CodeMaster-421
- Instagram: https://www.instagram.com/quicklifesolutionsofficial/
- Newsletter: https://sendfox.com/quicklifesolutions
- Free consultation: https://tidycal.com/quicklifesolutions/free-consultation
- Apify portfolio: https://apify.com/dainty_screw
- Discord community: https://discord.gg/2WGj2PDmHb
- Email: codemasterdevops@gmail.com
Build your ASO control tower with the CodeMaster Google Play Reviews Scraper and convert every review into actionable insight.
On this page
-
CodeMaster Google Play Reviews Scraper
- Snapshot
- Contents
- Why this actor stands out
- Who it is built for
- Getting results in under five minutes
- Apify Console walkthrough
- API and automation playbook
- Local developer workflow
- Configuration reference
- Output data dictionary
- Sample dataset
- Working with datasets
- Frequently asked questions
- Troubleshooting
- Support and next steps
Share Actor: