Google Play Reviews Scraper exports public Google Play review rows with ratings, dates, helpful votes, app versions, and developer replies when available.
Use it for ASO review mining, release monitoring, support triage, product feedback analysis, and competitor review tracking.
At a glance
- Extracts: app ID, app URL, app name, review ID, review URL, reviewer display fields, rating, review text, review date, helpful votes, developer reply, app version, locale, sort order, and scrape time.
- Inputs: app IDs or Google Play URLs, country, language, sort order, maximum reviews, optional start date, and optional end date.
- Best for: mobile app feedback analysis, ASO audits, release monitoring, support workflows, and competitor review snapshots.
- Exports: Apify dataset rows downloadable as CSV, JSON, Excel, or available through the API.
- Run diagnostics: a
RUN_SUMMARYrecord reports completed apps, per-app errors, and pending apps when a bounded run stops early. - Login: no Google account, cookies, or Google API key are required.
What can it do?
- Export public review rows: Save ratings, review text, review dates, helpful votes, app versions, and review URLs.
- Monitor app feedback: Use country, language, sort, and date filters for release monitoring or support triage.
- Compare competitors: Run several package IDs with the same locale and compare review themes and ratings.
- Capture developer replies: Include public developer reply text and dates when Google Play exposes them.
- Use as a Google Play reviews API workflow: Run from API, schedules, webhooks, or MCP-compatible agents and export CSV/Excel/JSON.
Common workflows
- Monitor new reviews: schedule a small
newestrun daily and filter by review date downstream. - Mine product feedback: export review text, rating, version, and helpful votes into a text analytics workflow.
- Track competitor launches: compare review rows for competing package IDs after a release window.
- Audit developer replies: use
developerReplyTextanddeveloperReplyDateto check public response coverage.
Example input
{
"apps": ["com.instagram.android"],
"country": "US",
"language": "en",
"sort": "newest",
"maxReviews": 20,
"startDate": "2026-06-01"
}
Example output
{
"appId": "com.instagram.android",
"appUrl": "https://play.google.com/store/apps/details?id=com.instagram.android&hl=en&gl=US",
"appName": "Instagram",
"reviewId": "example-review-id",
"reviewUrl": "https://play.google.com/store/apps/details?id=com.instagram.android&reviewId=example-review-id",
"reviewerName": "Example User",
"rating": 4,
"reviewText": "Useful app, but the latest version changed a workflow I liked.",
"reviewDate": "2026-07-01T12:00:00.000Z",
"thumbsUpCount": 3,
"developerReplyText": "Thanks for the feedback.",
"appVersion": "1.0.0",
"country": "US",
"language": "en",
"sort": "newest",
"scrapedAt": "2026-07-03T09:00:00.000Z"
}
Tips for best results
- Use package IDs when possible: direct IDs avoid ambiguity in app names.
- Set locale intentionally: review availability and text can differ by country and language.
- Use date filters downstream too: Google Play returns a limited review set, so date filtering happens after retrieval.
- Schedule small monitoring runs: daily small runs are easier to compare than occasional very large pulls.
Limits and caveats
- Only public reviews are returned: private account data and hidden reviews are not available.
- Review availability is controlled by Google Play: some apps, countries, or languages may return fewer rows than requested.
- Developer replies are optional: reply fields are null when no public reply is visible.
- Sort order affects coverage:
newest,rating, andhelpfulnesscan return different samples. - Unexpected upstream failures are explicit: if one app fails in a multi-app run, completed review rows remain available and
RUN_SUMMARYrecords the affected app. If no requested app can be read, the run fails instead of reporting a successful empty dataset.
API usage
Run from the Apify API or SDK with the same input keys shown above.
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/google-play-reviews-scraper').call({
apps: ['com.instagram.android'],
country: 'US',
language: 'en',
sort: 'newest',
maxReviews: 20
});
console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/google-play-reviews-scraper").call(run_input={
"apps": ["com.instagram.android"], "country": "US", "language": "en", "maxReviews": 20
})
print(run["defaultDatasetId"])
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-play-reviews-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"apps":["com.instagram.android"],"country":"US","language":"en","maxReviews":20}'
MCP and AI agents
For AI agents, use the official Apify MCP server. The focused single-Actor URL is:
https://mcp.apify.com?tools=fetch_cat/google-play-reviews-scraper
The default MCP server can search and run Actors. The focused URL exposes this Actor directly to clients that support tool-scoped MCP connections.
Claude Code setup
claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/google-play-reviews-scraper"
Claude Desktop, Cursor, or VS Code JSON config
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/google-play-reviews-scraper"
}
}
}
Example prompts
- "Export the newest Google Play reviews for this package ID and group the results by rating."
- "Compare recent Google Play review themes for these two apps in Germany."
Support
Open an issue from the Actor page for a failed run, missing field, or wrong output. Include the Apify run ID or run URL, your input JSON, expected output, actual output, and one reproducible public URL (such as the Google Play app URL) so the problem can be checked quickly.
Privacy and data handling
This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses review lookup inputs and public review results to produce the output dataset and sends requests to public Google Play Reviews pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.