Google Play Reviews Scraper

Scrape public Google Play app reviews, ratings, dates, helpful votes, and developer replies for app monitoring and ASO.

Data fields

FieldTypeDescription
appIdstringAndroid package ID for the reviewed app.
appUrlstringGoogle Play app detail URL.
appNamestring | nullApp title fetched from Google Play when available.
reviewIdstringGoogle Play review identifier.
reviewUrlstringDirect review URL returned by Google Play when available.
reviewerNamestring | nullPublic reviewer display name when available.
reviewerImageUrlstring | nullPublic reviewer image URL when available.
ratinginteger | nullReview rating from 1 to 5 when available.

Input preview

appsApp IDs or Google Play URLs *
maxReviewsMaximum reviews
countryCountry
languageLanguage
sortReview sort order
startDateStart date

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

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.
  • 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 newest run 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 developerReplyText and developerReplyDate to 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, and helpfulness can return different samples.

API usage

Run from the Apify API or SDK with the same input keys shown above.

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);

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.

Support

Open an issue on the Actor page if Google Play changes its review response format or if you need a field clarified.

Common questions

Questions and answers reused from the canonical actor README.

Can I scrape multiple apps in one run?

Yes. Put multiple package IDs or app URLs in apps.

Can I scrape by country and language?

Yes. Use country and language to request localized review data.

Can I export to CSV, Excel, JSON, or API?

Yes. Apify datasets support all of those access paths.

Does this require my Google account?

No. It reads public Google Play review data.

Is each row one review?

Yes. Each saved dataset item is one public review row.