Ultimate Google Play Review Extractor avatar
Ultimate Google Play Review Extractor

Pricing

$1.00 / 1,000 results

Go to Apify Store
Ultimate Google Play Review Extractor

Ultimate Google Play Review Extractor

Developed by

codemaster devops

codemaster devops

Maintained by Community

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

CategoryHighlights
Primary goalExtract, cleanse, and export public Google Play reviews at scale
Built forASO teams, product managers, support leads, data analysts, agencies
Tech stackNode.js, Apify SDK, google-play-scraper, https-proxy-agent
HostingWorks both locally and on Apify cloud (with proxy and scheduling support)
First-run experienceUses com.spotify.music by default so every new user gets real output instantly

Contents

  1. Why this actor stands out
  2. Who it is built for
  3. Getting results in under five minutes
  4. Apify Console walkthrough
  5. API and automation playbook
  6. Local developer workflow
  7. Configuration reference
  8. Output data dictionary
  9. Sample dataset
  10. Working with datasets
  11. Frequently asked questions
  12. Troubleshooting
  13. 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

  1. Open the actor (locally or on Apify).
  2. Review the JSON above; keep it as-is or swap scrapeReviews.appId for your target package.
  3. Install dependencies with npm install if you are running locally.
  4. Start the actor (APIFY_INPUT='…' node src/main.js locally or press Run in Apify).
  5. Export the dataset in JSON, CSV, Excel, NDJSON, or HTML.

Apify Console walkthrough

  1. Actor page – Click Run.
  2. Input tab – Paste the JSON payload or adjust via schema UI.
  3. Proxy tab – Select an Apify proxy group (AUTO works well for most cases).
  4. Launch – Press Start and monitor the log stream for Fetching page updates.
  5. 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_ReviewExtractor
npm install
# Option 1: rely on the bundled input file
APIFY_LOCAL_STORAGE_DIR=./storage node src/main.js
# Option 2: supply inline JSON
APIFY_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 into scrapeReviews.appId.

Configuration reference

FieldTypeRequiredDescription
actionstringyesSupports scrapeReviews.
maxItemsintegernoUpper limit of reviews to store. Takes priority when provided.
countintegernoLegacy alias for maxItems; still supported for backwards compatibility.
minDelay and maxDelayinteger (seconds)noAdds human-like pauses between page requests.
proxyobjectnoStandard Apify proxy configuration object.
cursorstringnoInternal pagination cursor, managed automatically.
scrapeReviews.appIdstringyesGoogle Play package ID such as com.spotify.music.
scrapeReviews.langstringnoISO language code (example: en, de).
scrapeReviews.countrystringnoTwo-letter uppercase ISO country code (example: US, IN).
scrapeReviews.sortstring or numbernoAccepts newest, rating, helpfulness, or numeric constants. Defaults to rating.
scrapeReviews.numintegernoReviews requested per API call (1 to 199).
scrapeReviews.ratingintegernoFilter 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

FieldTypeMeaning
idstringGoogle Play review identifier.
userNamestringReviewer display name.
userImagestring (URL)Reviewer avatar URL.
datestring (ISO 8601)Review timestamp.
scoreintegerStar rating (1 to 5).
scoreTextstringRating as returned by Google Play.
urlstring (URL)Direct link to the review detail page.
titlestring or nullReview headline if provided.
textstringReview body.
replyDatestring (ISO 8601) or nullDeveloper reply timestamp.
replyTextstring or nullDeveloper response text.
versionstring or nullApp version mentioned by the reviewer.
thumbsUpintegerHelpful votes count.
criteriasarrayStructured 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 APIGET https://api.apify.com/v2/datasets/<datasetId>/items?format=json&clean=1 and use query parameters for filtering.
  • Apify CLIapify 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 and maxDelay, 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

Build your ASO control tower with the CodeMaster Google Play Reviews Scraper and convert every review into actionable insight.