# Google Play Reviews Scraper: Star Filter and Developer Replies (`themineworks/google-play-reviews-scraper`) Actor

Scrape Google Play reviews for any Android app: stars, text, thumbs up, app version, date and the developer's reply, with the app title on every row. Pages through thousands of reviews per app, sorted by newest, most relevant or rating, with star, language and country filters. No login.

- **URL**: https://apify.com/themineworks/google-play-reviews-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Developer tools, Marketing, MCP servers
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Play Reviews Scraper: Star Filter and Developer Replies

[![4,000 Google Play reviews from 4 apps in 51 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/google-play-reviews-scraper-hero.png)](https://console.apify.com/actors/wxnBtOSfBdHR4fbvV/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

### Why choose this actor?

- **Thousands of reviews per app, not one batch.** The actor keeps asking Google Play for the next page of reviews until it reaches your number or the end of the app's list. Our proof run collected **4,000 reviews from 4 apps in 51 seconds** (1,000 per app), and for one app the 1,000 newest reviews reached back to January 2021. No Google account, no API key, no cookies of yours.
- **The developer's reply sits on the same row.** Every review comes with its stars, text, thumbs up count, app version and date, plus the developer's public reply and the reply date when there is one: 19% of the 4,000 proof rows had a reply (668 of 1,000 for the app that answers most). The app title, developer, average rating and rating count are copied onto every row, so a spreadsheet needs no lookup.
- **You pay only for reviews you receive.** One charge per review row saved to your dataset, plus a flat start fee per run. Apps that do not exist, apps with no reviews, repeated reviews and reviews an earlier run already gave you (when you switch that on) are never charged.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/wxnBtOSfBdHR4fbvV/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Marketing, SEO and reviews family:** [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this input and press Start. It returns the 20 newest one star reviews of WhatsApp in a few seconds:

```json
{
  "apps": ["com.whatsapp"],
  "maxReviewsPerApp": 20,
  "sort": "newest",
  "stars": ["1"]
}
```

You can name an app in three ways, and mix them in one list:

- **Package name**: `com.whatsapp`, `com.spotify.music`. It is the `id=` part of the app's Google Play link.
- **Google Play link**: `https://play.google.com/store/apps/details?id=com.whatsapp`, with or without `https://` and with any extra parameters such as `&hl=en`.
- **Market link**: `market://details?id=com.whatsapp`.

On Apify's free plan every run returns the first 10 results as a preview, so you can check the data and the fields before you pay. A paid Apify plan returns every result: https://apify.com/pricing?fpr=ymnoit

#### Copy to your AI assistant

```text
themineworks/google-play-reviews-scraper on Apify. Returns Google Play reviews of Android apps, one row per review with stars, text, thumbs up, app version, date, the developer's reply and reply date, plus the app title, developer, average rating and rating count. Call ApifyClient("TOKEN").actor("themineworks/google-play-reviews-scraper").call(run_input={"apps": ["com.whatsapp"], "maxReviewsPerApp": 200, "sort": "newest"}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: apps (package names or Google Play links). Optional: maxReviewsPerApp (default 100, 20 to 50,000), sort (newest, mostRelevant or rating; default newest), stars (list of "1" to "5"; default all), language (default en), country (default us), onlyNewReviews (default false). Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~google-play-reviews-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **23 fields per review**: review id and link, reviewer name, stars, text, thumbs up count, app version, date, developer reply and reply date, then the app's title, developer, average rating and rating count, and the sort, star level, language, country and list position the review was read under.
- **Up to 50,000 reviews per app, 199 per call.** Each call carries Google Play's own continuation token to the next page, so depth is limited by the app's list and your cap, not by a first batch.
- **Three sort orders**: newest first, most relevant (the order the Play Store shows by default), and rating.
- **Star filter**: pick one or more of 1 to 5 stars. Each level is read as its own list, up to your cap each, so "1 and 2 stars, 500 each" gives up to 1,000 complaints.
- **Language and country**: reviews written in German, Japanese, Brazilian Portuguese or any other Play language, from the store of the country you choose.
- **Only new reviews on repeat runs**: switch it on for a schedule and each run returns, and charges, only reviews no earlier run in your account delivered.

### How to use it

#### Basic: the newest reviews of one app

```json
{
  "apps": ["https://play.google.com/store/apps/details?id=com.spotify.music"],
  "maxReviewsPerApp": 500
}
```

Newest first is the default. The run reads three calls of up to 199 reviews and stops at 500.

#### Several apps at once

```json
{
  "apps": [
    "com.whatsapp",
    "com.spotify.music",
    "com.termux",
    "org.mozilla.firefox.vpn"
  ],
  "maxReviewsPerApp": 1000,
  "sort": "newest"
}
```

This is the input of our proof run: 4,000 reviews in 51 seconds. Three apps are read at the same time. Up to 500 apps per run; an app given twice is read once.

#### Job: weekly complaint digest for your own app

Collect only one and two star reviews, newest first, and read the developer reply column to see which complaints your team already answered.

```json
{
  "apps": ["com.spotify.music"],
  "maxReviewsPerApp": 300,
  "sort": "newest",
  "stars": ["1", "2"]
}
```

Each star level is its own list, so this returns up to 300 one star and up to 300 two star reviews. Schedule it weekly (Console, Schedules, Add schedule) and turn on `onlyNewReviews` so each week brings only the reviews you have not seen.

#### Job: competitor comparison

Put your app and three rivals in one run with the same settings, then compare average stars, the share of one star reviews, how often each developer replies and how fast (`developer_reply_at` minus `reviewed_at`).

```json
{
  "apps": ["com.whatsapp", "org.telegram.messenger", "org.thoughtcrime.securesms", "com.viber.voip"],
  "maxReviewsPerApp": 2000,
  "sort": "newest"
}
```

Every row carries `app_title`, `app_rating` and `app_ratings_count`, so one pivot table covers the whole comparison.

#### Job: daily alert on new reviews

Run every morning, newest first, with only new reviews on. The first run fills your history up to the cap; after that each run reads until it reaches reviews an earlier run already delivered, and stops there.

```json
{
  "apps": ["com.whatsapp", "com.spotify.music"],
  "maxReviewsPerApp": 500,
  "sort": "newest",
  "onlyNewReviews": true
}
```

Connect the run to Slack, email or a sheet with a webhook or Make, Zapier or n8n (see Integrations). A day with no new reviews costs only the start fee.

#### Job: how an app is received in another market

Reviews on Google Play are split by language. Read the German reviews from the German store, most relevant first, to see what German users care about.

```json
{
  "apps": ["com.spotify.music"],
  "maxReviewsPerApp": 500,
  "sort": "mostRelevant",
  "language": "de",
  "country": "de"
}
```

We ran this shape with the 1 and 2 star filter on WhatsApp and Spotify: 200 German reviews in 12 seconds, 41 of them with the developer's reply.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `apps` | array of strings | `["com.whatsapp", "https://play.google.com/store/apps/details?id=com.spotify.music"]` | Apps to read: package names or Google Play links, one per line. Required. Up to 500 per run; repeats are read once. |
| `maxReviewsPerApp` | integer | `100` | Reviews to collect per app, 20 to 50,000. With a star filter, per star level. |
| `sort` | string | `newest` | `newest`, `mostRelevant` (the Play Store's default order) or `rating`. |
| `stars` | array of strings | `[]` (every rating) | Star levels to collect, any of `"1"` to `"5"`. Each level is read on its own. |
| `language` | string | `en` | Language of the reviews: `en`, `de`, `fr`, `es`, `ja`, `pt_BR` and so on. |
| `country` | string | `us` | Two letter code of the Google Play store to read: `us`, `gb`, `in`, `de` and so on. |
| `onlyNewReviews` | boolean | `false` | Skip, and never charge, reviews an earlier run of this actor in your account already delivered. |

### What data do you get?

One row per review. Fields are grouped below; a field with no value (for example no developer reply) is left out of the row rather than filled with an empty value.

**The review**: `review_id` (Google Play's own id, stable across runs), `review_url` (opens the review on Google Play), `user_name` (the reviewer's public display name), `rating` (1 to 5), `text`, `thumbs_up` (how many people marked it helpful), `app_version` (the version the review was written on, when Google Play knows it: 75% of proof rows), `reviewed_at` (ISO 8601, UTC; the latest edit when the review was edited).

**The developer's reply**: `developer_reply` and `developer_reply_at`, present only when the developer answered in public.

**The app**: `app_id` (package name), `app_title`, `app_developer`, `app_rating` (the average on the app's page), `app_ratings_count`, `app_url`. Read once per app from its Google Play page and copied onto each row.

**How it was read**: `sort`, `star_filter` (only when you set stars), `language`, `country` (upper case), `position` (the review's place in Google Play's list for that app, sort and star level), `input` (the app as you typed it), `scraped_at`.

The reviewer's Google account id and profile photo are in Google Play's answer but are deliberately not published.

At the end of a run with results, one extra row with `"_type": "info"` carries scheduling tips. It is never charged; filter it out with `_type`. A full run report (status per app, calls, retries, charges) is saved as the `OUTPUT` record of the run's key value store.

#### Stable fields for automations

These fields were present in every one of the 4,000 rows of our proof run:

| Field | Meaning |
|---|---|
| `app_id` | Package name of the app |
| `review_id` | Google Play's review id; use it to deduplicate |
| `review_url` | Link to the review |
| `user_name` | Reviewer's public display name |
| `rating` | Stars, 1 to 5 |
| `text` | Review text |
| `thumbs_up` | Helpful votes |
| `reviewed_at` | Review date, ISO 8601 UTC |
| `sort` | Sort the review was read in |
| `language` | Language code used |
| `country` | Store country, upper case |
| `position` | Place in Google Play's list |
| `app_url` | Link to the app |
| `input` | The app as you gave it |
| `scraped_at` | When the row was collected |

These names will not change. New fields may be added, never renamed.

#### Output examples

Real rows from our runs on 5 October 2026, trimmed. Reviewer names are masked here; the dataset has them in full.

A newest first review (proof run):

```json
{
  "app_id": "com.whatsapp",
  "app_title": "WhatsApp Messenger",
  "review_id": "8a4f2e8b-7f1a-4b8a-9957-027cf1dda7a1",
  "user_name": "N**** A****",
  "rating": 3,
  "text": "status privacy options needs to be more convenient only share with doesnot allows to delist contacts ...",
  "thumbs_up": 0,
  "app_version": "2.24.16.76",
  "reviewed_at": "2026-10-04T17:53:34.000Z",
  "review_url": "https://play.google.com/store/apps/details?id=com.whatsapp&reviewId=8a4f2e8b-7f1a-4b8a-9957-027cf1dda7a1",
  "app_developer": "WhatsApp LLC",
  "app_rating": 4.62,
  "app_ratings_count": 245112994,
  "sort": "newest",
  "language": "en",
  "country": "US",
  "position": 3,
  "app_url": "https://play.google.com/store/apps/details?id=com.whatsapp",
  "input": "com.whatsapp",
  "scraped_at": "2026-10-05T17:55:13.914Z"
}
```

A review with the developer's reply (proof run):

```json
{
  "app_id": "com.spotify.music",
  "app_title": "Spotify: Music and Podcasts",
  "review_id": "87a81f59-8f59-4f0d-a357-7b42d5a05c26",
  "user_name": "G***** M*",
  "rating": 1,
  "text": "very lag to use",
  "thumbs_up": 0,
  "app_version": "9.1.88.2204",
  "reviewed_at": "2026-10-04T17:37:33.000Z",
  "developer_reply": "Hi. Thanks for reporting this to us. Have you tried a quick reinstall? If that doesn't help, we'd recommend reaching out to our Customer Service at support.spotify.com. ...",
  "developer_reply_at": "2026-10-04T18:36:13.000Z",
  "review_url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=87a81f59-8f59-4f0d-a357-7b42d5a05c26",
  "app_developer": "Spotify AB",
  "app_rating": 4.35,
  "app_ratings_count": 36431833,
  "sort": "newest",
  "language": "en",
  "country": "US",
  "position": 17
}
```

A one star review read with the star filter (first test run):

```json
{
  "app_id": "com.whatsapp",
  "app_title": "WhatsApp Messenger",
  "review_id": "ef576a5a-2d26-4cd1-9639-db2d66a9353d",
  "user_name": "N***** K****",
  "rating": 1,
  "text": "very bad",
  "thumbs_up": 0,
  "app_version": "2.26.38.73",
  "reviewed_at": "2026-10-04T16:05:11.000Z",
  "sort": "newest",
  "star_filter": 1,
  "language": "en",
  "position": 1
}
```

An older review whose author edited it after the developer replied, so the reply date is earlier than the review date (proof run):

```json
{
  "app_id": "com.termux",
  "app_title": "Termux",
  "review_id": "6eb4e2cf-a950-48b4-a904-fc91076074c1",
  "rating": 5,
  "text": "Great app, I use it daily.",
  "thumbs_up": 2,
  "app_version": "googleplay.2026.02.11",
  "reviewed_at": "2026-06-18T03:41:14.000Z",
  "developer_reply": "This should be fixed in the v0.32 update just released! Let me know if it still catches too many intents.",
  "developer_reply_at": "2016-03-25T01:58:43.000Z",
  "app_developer": "Fredrik Fornwall",
  "position": 324
}
```

### Pricing

Pay per event: you pay for the review rows you receive, plus a flat $0.005 per run, whatever memory you choose.

Free plan runs return up to 10 results each; paid plans have no cap.

| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
| `review-scraped` | Once per review row saved to your dataset | $0.10 per 1,000 | $0.10 per 1,000 | $0.10 per 1,000 | $0.10 per 1,000 |
| `run-start` | Once per run, when it starts | $0.005 | $0.005 | $0.005 | $0.005 |

The price per single review is the price per 1,000 divided by 1,000. 1,000 reviews of one app are 1,000 events.

Never charged:

- apps Google Play does not know, and apps with no reviews in the language and country you chose;
- calls Google Play refused, and the retries the actor makes on other IP addresses;
- a review already delivered in the same run;
- with `onlyNewReviews` on, reviews an earlier run in your account already delivered;
- the information row at the end of the run and the `OUTPUT` run report.

If you set a maximum charge for the run in Apify, the actor stops when it is reached and keeps everything delivered so far.

### FAQ

#### What do I get on the free plan?

On Apify's free plan every run returns the first 10 results as a preview, so you can check the data and the fields before you pay. A paid Apify plan returns every result with no cap: https://apify.com/pricing?fpr=ymnoit

#### What exactly does this actor read?

The public Google Play web store, logged out: the review list the "See all reviews" window loads, and the app's own page for its title, developer and rating. It is the same information anyone sees in a browser without signing in.

#### How many reviews can I get from one app?

Up to your `maxReviewsPerApp`, at most 50,000 per app, or until Google Play's list for that app ends. The actor reads 199 reviews per call and follows Google Play's own next page token, so it is not limited to a first batch. Small apps end sooner: in our tests the English two star list of one VPN app held 96 reviews in total, going back to 2020, and the list simply ends there.

#### Why do I get fewer reviews than the app's rating count?

Most ratings on Google Play have no written review, and written reviews are split by language: `language` set to `en` returns English reviews only. Read other languages with one run per language.

#### How fresh is the data?

Every run reads Google Play live. In our 5 October runs the newest public review of each busy app was about a day old, so expect that delay between a review being written and it showing up.

#### How long does a run take?

Our proof run took 51 seconds for 4,000 reviews of 4 apps. A call of 199 reviews takes 2 to 10 seconds, the app page 4 to 13 seconds, and three apps are read at a time.

#### Why is app_version missing on some rows?

Google Play only records the version when it knows which build the reviewer had installed. In our proof run 75% of rows had it. The field is left out when Google Play has no value, never guessed.

#### Do I need a Google account, cookies or an API key?

No. Nothing to sign in to and nothing of yours is sent to Google.

#### Do I need to set up a proxy?

No. The actor uses Apify's datacenter proxy on its own and tries a refused call again from another IP address, up to four attempts in all. There is no proxy setting to get wrong.

#### What happens with an app that does not exist, or is not sold in my country?

It returns no rows and costs nothing beyond the start fee. The run report (`OUTPUT`) lists it as `not_found` or `no_reviews`, and if the whole run delivers nothing, an information row in the dataset says why.

#### Can I monitor new reviews over time?

Yes. Schedule the actor (Console, this actor, Schedules, Add schedule) with `sort` set to `newest` and `onlyNewReviews` on. Each run returns only reviews no earlier run in your account delivered, and stops reading an app at the first page that holds nothing new.

#### Can I get App Store reviews too?

This actor is for Google Play. For both stores in one run, see our [App Reviews Scraper](https://apify.com/themineworks/app-reviews-monitor?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

#### Which formats can I download?

JSON, CSV, Excel, XML, HTML table and RSS from the dataset page, or the same through the API. In CSV and Excel, filter on `_type` to drop the information row.

#### Can I use it from Claude, ChatGPT or Cursor (MCP)?

- Connector URL: https://mcp.apify.com/?tools=themineworks/google-play-reviews-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http google-play-reviews-scraper "https://mcp.apify.com/?tools=themineworks/google-play-reviews-scraper"`

#### Is it legal to scrape Google Play reviews?

The actor only reads reviews Google Play shows publicly to anyone without signing in. Reviews carry the public display names of the people who wrote them, which can be personal data: you are responsible for how you use the data, for Google Play's terms, and for data protection law such as GDPR and CCPA. If in doubt, ask a lawyer about your use case.

### Integrations

- **Google Sheets**: send each run's rows to a sheet with Apify's Google Sheets integration, or import the CSV link of the dataset.
- **Make, Zapier and n8n**: start the actor and read its dataset with the Apify apps and nodes, for example "new one star reviews to Slack".
- **Webhooks**: have Apify call your URL when a run succeeds, then fetch the dataset.
- **API and SDKs**: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above).
- **MCP clients**: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.

### More from The Mine Works

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Semrush Scraper](https://apify.com/themineworks/semrush-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [App Reviews Scraper](https://apify.com/themineworks/app-reviews-monitor?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Trustpilot Business Search](https://apify.com/themineworks/trustpilot-business-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [TripAdvisor Reviews Scraper](https://apify.com/themineworks/tripadvisor-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Username Checker](https://apify.com/themineworks/username-checker?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Backlink Building Agent](https://apify.com/themineworks/backlink-building-agent?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found an app that should work and does not? Open an issue in the Issues tab with the app link and the run ID, and we will look at it. For a new source or a field you need, email dmineworks@gmail.com.

*Paste Google Play app names or links, choose the order, stars, language and country, and get thousands of reviews per app back as clean rows with the developer's reply and the app's rating on each one.*

# Actor input Schema

## `apps` (type: `array`):

One app per line: a package name (com.whatsapp) or a Google Play link (https://play.google.com/store/apps/details?id=com.whatsapp). Up to 500 apps per run; repeats are read once.

## `maxReviewsPerApp` (type: `integer`):

How many reviews to collect for each app, 20 to 50,000. The actor pages through Google Play 199 reviews at a time until it reaches this number or the end of the app's reviews. With a star filter this applies to each star level you pick.

## `sort` (type: `string`):

The order Google Play returns reviews in. Newest first is the one to use for monitoring.

## `stars` (type: `array`):

Leave empty for every rating. Pick one or more star levels to collect only those; each level is read on its own, up to Max reviews per app each, for example 1 and 2 stars for complaints.

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

Language code of the reviews, for example en, de, fr, es, ja, pt_BR. Google Play returns reviews written in this language.

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

Two letter country code of the Google Play store to read, for example us, gb, in, de. An app that is not sold in that country has no reviews there.

## `onlyNewReviews` (type: `boolean`):

For schedules: skip reviews an earlier run of this actor in your account already delivered, so each run returns and charges only new ones. With Newest first, reading stops at the first page that holds only reviews you already have.

## Actor input object example

```json
{
  "apps": [
    "com.whatsapp",
    "https://play.google.com/store/apps/details?id=com.spotify.music"
  ],
  "maxReviewsPerApp": 100,
  "sort": "newest",
  "stars": [],
  "language": "en",
  "country": "us",
  "onlyNewReviews": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "apps": [
        "com.whatsapp",
        "https://play.google.com/store/apps/details?id=com.spotify.music"
    ],
    "maxReviewsPerApp": 100,
    "language": "en",
    "country": "us"
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/google-play-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 = {
    "apps": [
        "com.whatsapp",
        "https://play.google.com/store/apps/details?id=com.spotify.music",
    ],
    "maxReviewsPerApp": 100,
    "language": "en",
    "country": "us",
}

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

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

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

```

## CLI example

```bash
echo '{
  "apps": [
    "com.whatsapp",
    "https://play.google.com/store/apps/details?id=com.spotify.music"
  ],
  "maxReviewsPerApp": 100,
  "language": "en",
  "country": "us"
}' |
apify call themineworks/google-play-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/google-play-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/wxnBtOSfBdHR4fbvV/builds/xlhPI9lbTOo3703Gp/openapi.json
