# Google Play Store Reviews Scraper (`scrapesmith/google-play-store-reviews-scraper`) Actor

Extract Google Play reviews with ratings, developer replies, thumbs-up counts, and app versions. 3 sort modes, star rating filter, date filter. No browser, no proxy, 256MB.

- **URL**: https://apify.com/scrapesmith/google-play-store-reviews-scraper.md
- **Developed by:** [Scrape Smith](https://apify.com/scrapesmith) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 16 total users, 14 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Play Store Reviews Scraper — Ratings, Developer Replies & Filters

Extract every Google Play Store review for any Android app in seconds. This Google Play reviews scraper pulls star ratings, review text, thumbs-up counts, app versions, and developer replies — all structured and ready to use, with no coding required.

***

### Why Use This Google Play Reviews Scraper?

- **10,000+ reviews per minute** — one of the fastest Google Play review extractors available on Apify
- **No browser, no proxy, no API key required** — fully anonymous, zero setup, zero maintenance
- **Developer replies included** — see exactly how developers responded to negative reviews, a field most competing scrapers leave out entirely
- **Three sort modes** — Newest, Most Relevant, and By Rating, so you can pull the exact slice of reviews you need
- **Star rating filter (1-5)** — isolate only the 1 and 2 star reviews to find complaints fast, or only 5 star reviews for testimonials
- **Date filtering built in** — only fetch reviews since a given date, ideal for daily or weekly monitoring runs
- **Direct review URLs** — every review includes a shareable link straight to that review on Google Play
- **Lightweight and reliable** — no browser overhead means fast runs that don't get flagged or blocked

Whether you're tracking Android app ratings, auditing customer support responses, or building a review sentiment pipeline, this scraper delivers clean Google Play data without the usual scraping headaches.

***

### What Data Do You Get?

Every review comes back with 17 fields covering the review, the reviewer, the app version, and the developer's response — everything you need for Google Play review analysis in one dataset.

| Field | Description |
|---|---|
| **reviewId** | Unique identifier for the review |
| **title** | Review headline, if the reviewer set one |
| **author** | Reviewer's display name |
| **authorImage** | URL to the reviewer's profile photo |
| **rating** | Star rating from 1 to 5 |
| **text** | Full review body text |
| **url** | Direct link to the review on Google Play |
| **date** | Review submission date and time (ISO 8601) |
| **thumbsUp** | Number of users who found the review helpful |
| **appVersion** | App version the review was written against |
| **developerReply** | The developer's reply text, if one was posted |
| **developerReplyDate** | Date the developer replied |
| **appId** | Google Play package ID for the app |
| **country** | Google Play region the review was pulled from |
| **language** | Language code used for review content |
| **scrapedAt** | Timestamp of when the data was collected |
| **status** | Result status for the review row |

***

### Input Parameters

```json
{
  "appIds": ["com.whatsapp"],
  "country": "us",
  "language": "en",
  "sortBy": "newest",
  "maxReviews": 500
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `appIds` | array | Yes | — | Google Play package IDs or full Google Play URLs. |
| `country` | string | No | `us` | Two-letter country code for localized reviews. |
| `language` | string | No | `en` | Two-letter language code for review content. |
| `maxReviews` | integer | No | 500 | Maximum reviews to return per app. |
| `sortBy` | string | No | `newest` | Review sort order: `newest`, `relevant`, or `rating`. |
| `ratingFilter` | array | No | all ratings | Only include reviews with these star ratings, e.g. `[1, 2]` to isolate negative feedback. |
| `sinceDate` | string | No | — | Only include reviews on or after this date. Format: `YYYY-MM-DD`. |

***

### Sample Output

```json
{
  "reviewId": "a95b3e06-769d-4fe2-9d27-a8aa1f3d750f",
  "title": "",
  "author": "Thabang Mpele",
  "authorImage": "https://play-lh.googleusercontent.com/a-/...",
  "rating": 5,
  "text": "good communication platform",
  "url": "https://play.google.com/store/apps/details?id=com.whatsapp&reviewId=a95b3e06...",
  "date": "2026-07-01T01:01:12+00:00",
  "thumbsUp": 0,
  "appVersion": "2.26.23.74",
  "developerReply": "",
  "developerReplyDate": "",
  "appId": "com.whatsapp",
  "country": "us",
  "language": "en",
  "scrapedAt": "2026-07-02T20:27:30Z",
  "status": "ok"
}
```

***

### How Fast Is It?

| Scenario | Reviews | Time |
|---|---|---|
| Single app | 500 | ~30 seconds |
| Small batch (5 apps) | 2,500 | ~1 minute |
| Medium batch (20 apps) | 10,000 | ~1 minute |
| Large batch | 5,000 | ~30 seconds |
| Bulk run, multiple apps | 10,000+ | ~1 minute |

With no browser to launch and no proxy hops slowing things down, this Google Play reviews scraper spends its runtime doing one job — fetching reviews — which keeps throughput fast whether you're pulling one app or dozens.

***

### Use Cases

#### App Store Optimization (ASO) & Review Monitoring

- **Track Android rating trends over time** with scheduled runs comparing rating distribution across periods
- **Monitor new reviews daily** using `sinceDate` to only pull what changed since your last check
- **Benchmark against competitor apps** by scraping reviews for multiple package IDs in the same category
- **Feed ASO dashboards** with structured review data instead of manual copy-paste from the Play Store

#### Customer Support Quality Auditing

- **Audit developer reply coverage** by checking which reviews have a populated `developerReply` field versus which were never answered
- **Measure response time** using the gap between `date` and `developerReplyDate`
- **Benchmark your support responsiveness against competitors** by comparing reply rates across similar apps
- **Identify unanswered complaints** by filtering for negative reviews (`ratingFilter: [1, 2]`) with no developer reply

#### Customer Feedback & Product Analytics

- **Surface recurring bugs and feature requests** by analyzing review text tied to specific `appVersion` values
- **Prioritize fixes using thumbs-up counts** — reviews with high `thumbsUp` represent the most broadly-felt issues
- **Track sentiment before and after a release** by comparing rating distributions across app versions
- **Build a product feedback repository** without needing Play Console access

#### Market Research & Competitive Intelligence

- **Compare rating distributions across competitors** in the same category
- **Identify market gaps** by analyzing recurring complaints across multiple apps in a niche
- **Localize sentiment research** by running the same scraper across multiple countries and languages
- **Support market entry research** with structured datasets ready for spreadsheets or BI tools

#### AI, NLP & Machine Learning

- **Build sentiment analysis training sets** from star ratings paired with review text
- **Fine-tune LLMs on real customer feedback** using `text` and `rating` as input-output pairs
- **Train customer support response models** using real `developerReply` examples as ground truth
- **Power AI-driven review triage tools** by classifying incoming reviews using historical patterns

***

### Frequently Asked Questions

**How do I scrape Google Play reviews without coding?**
Just provide the app's package ID (like `com.whatsapp`) or its Google Play URL as input and run the actor. No code, API key, or technical setup is required.

**Does this scraper include developer replies to reviews?**
Yes. Every review includes a `developerReply` field with the text of the developer's response, if one exists, plus a `developerReplyDate`. This is a field many competing Google Play scrapers don't capture at all.

**Can I filter reviews by star rating?**
Yes. Use the `ratingFilter` parameter with an array like `[1, 2]` to only receive negative reviews, or `[5]` to pull only 5-star testimonials.

**What's the difference between the three sort options?**
`newest` returns the most recently submitted reviews first, ideal for daily monitoring. `relevant` returns Google's relevance-ranked reviews, which tend to surface the most detailed and representative feedback. `rating` sorts by star rating.

**Can I get reviews in a specific language or country?**
Yes. Set the `country` and `language` parameters to pull localized reviews — for example `country: "de"` and `language: "de"` for German Play Store reviews.

**Can I filter reviews by date?**
Yes. Use the `sinceDate` parameter with a `YYYY-MM-DD` date to only receive reviews submitted on or after that day, which is ideal for incremental monitoring.

**Do I need a Google Play Console account or developer credentials?**
No. This scraper works entirely from publicly available Google Play review pages. You don't need to own the app or authenticate with Google in any way.

**Is a proxy needed to scrape Google Play reviews?**
No. This scraper runs without any proxy configuration and without a browser, keeping runs fast and lightweight while still reliably returning review data.

**Can I track reviews for competitor apps?**
Yes. Since this scraper only needs a public package ID or Play Store URL, you can monitor reviews for any published Android app, including competitors.

**How many reviews can I scrape per app?**
Set `maxReviews` to however many you need. There's no fixed cap built into the scraper — larger requests simply take proportionally longer.

**What does the empty string in `title` or `developerReply` mean?**
An empty string means that field wasn't present for that particular review — not every reviewer adds a title, and not every review receives a developer reply.

**Can I run this scraper on a schedule?**
Yes. Apify's built-in scheduler lets you run this actor daily, weekly, or on any custom interval to continuously monitor new Google Play reviews.

**Can I export the results to Excel or Google Sheets?**
Yes. Apify datasets support exporting to JSON, CSV, Excel, XML, and other formats, plus direct integrations to Google Sheets and other tools.

**How current is the review data?**
Every run fetches reviews live from Google Play at the time the actor runs, so there's no caching or stale data — you always get the latest reviews available.

**Does the `url` field link directly to the specific review?**
Yes. Each review's `url` field is a direct deep link to that individual review on the Google Play Store, useful for sharing or verification.

***

### Output Formats

Results are available directly from your dataset in every format Apify supports:

- **JSON** — structured data for programmatic use and API integration
- **CSV** — flat table format, opens directly in Excel and Google Sheets
- **Excel (.xlsx)** — native spreadsheet format with proper headers
- **XML** — structured markup for enterprise integrations

***

### Integration & Automation

Connect this Google Play reviews scraper to your existing workflow:

- **Google Sheets** — append new reviews to a spreadsheet automatically
- **Slack / Discord** — get notified when a scheduled run finds new reviews
- **Webhooks** — trigger your own systems when a run completes
- **Zapier / Make** — connect to thousands of apps without writing code
- **BigQuery / Snowflake / data warehouses** — load review data for long-term analysis

Set up a recurring schedule with Apify's built-in scheduler to monitor new Google Play reviews daily or weekly without lifting a finger.

# Actor input Schema

## `appIds` (type: `array`):

Google Play Store app package IDs or URLs.

## `country` (type: `string`):

Two-letter country code for localized reviews.

## `language` (type: `string`):

Two-letter language code for review content.

## `maxReviews` (type: `integer`):

Maximum reviews to scrape per app.

## `sortBy` (type: `string`):

How to sort reviews.

## `ratingFilter` (type: `array`):

Only include reviews with these star ratings (e.g. \[1, 2] for negative reviews). Leave empty for all.

## `sinceDate` (type: `string`):

Only include reviews on or after this date. Format: YYYY-MM-DD

## Actor input object example

```json
{
  "appIds": [
    "com.whatsapp"
  ],
  "country": "us",
  "language": "en",
  "maxReviews": 500,
  "sortBy": "newest"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "appIds": [
        "com.whatsapp"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesmith/google-play-store-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "appIds": ["com.whatsapp"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesmith/google-play-store-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "appIds": [
    "com.whatsapp"
  ]
}' |
apify call scrapesmith/google-play-store-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesmith/google-play-store-reviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/1QAylHtmPuZfQTrcz/builds/YUgUh8vOYnL5mf9wt/openapi.json
