# Google Play Scraper - Apps, Details & Reviews (`get_anything/google-play-scraper`) Actor

Scrape Google Play: search apps, get full details (installs, rating, price, developer, version, screenshots) and extract user reviews. Any country store & language, no API key or browser. Export JSON, CSV or Excel for app market research and review sentiment.

- **URL**: https://apify.com/get\_anything/google-play-scraper.md
- **Developed by:** [Get Anything](https://apify.com/get_anything) (community)
- **Categories:** Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Scraper — Apps, Details & Reviews (Android)

Scrape the **Google Play Store** in one run: search apps by keyword, pull **full app details** (installs, rating, price, developer, version, screenshots, description), and extract **user reviews** across **any country store and language**. Everything comes from Google Play's **own internal endpoints** — no API key, no headless browser, no proxies.

### Why this one

Most Play Store actors do one thing — usually reviews only. This one covers the whole workflow in a single run and returns clean, flat records ready for a spreadsheet, a database, or an LLM:

- **Search** → find every app matching a keyword.
- **Details** → 40+ fields of metadata for any package name or Play URL.
- **Reviews** → user reviews with rating, thumbs-up, version and developer reply.

Runs are fast, cheap, and reliable. Pair it with the **App Store Scraper** to cover **both** mobile app stores for full market research.

### What it does

- Search Google Play with multiple keywords at once.
- Look up specific apps by **package name** (`com.whatsapp`) **or Play URL**.
- Any **country store** (`us`, `gb`, `ae`, `in`, `de`, …) and **language** (`en`, `ar`, …).
- Optional **review scraping** — newest, by rating, or most relevant; filter by star rating.
- Deduplicates apps found via both search and direct lookup.
- Export to **JSON, CSV, or Excel**, or pull via the Apify API.

### Input

| Field | Description |
|-------|-------------|
| `searchTerms` | Keywords to search, e.g. `habit tracker`, `vpn`, `budget`. |
| `appIds` | Specific apps by package name or Play store URL. |
| `country` | Two-letter store code (`us`, `gb`, `ae`, …). |
| `language` | Two-letter language code (`en`, `ar`, `de`, …). |
| `maxAppsPerSearch` | Cap per search term. |
| `scrapeReviews` | Also pull each app's reviews. |
| `maxReviewsPerApp` | Cap per app. |
| `reviewsSort` | `newest`, `rating`, or `relevance`. |
| `reviewsFilterScore` | Keep only reviews with a given star rating (or any). |

#### Example

```json
{
  "searchTerms": ["habit tracker"],
  "appIds": ["com.whatsapp"],
  "country": "us",
  "language": "en",
  "maxAppsPerSearch": 20,
  "scrapeReviews": true,
  "maxReviewsPerApp": 100,
  "reviewsSort": "newest"
}
```

### Output

One dataset item per **app** or **review**. App records include `appId`, `title`, `installs`, `score`, `ratings`, `price`, `developer`, `genre`, `version`, `updated`, `screenshots` and more. Review records include `score`, `content`, `thumbsUp`, `at`, and any developer `replyContent`.

```json
{
  "resultType": "app",
  "appId": "com.whatsapp",
  "title": "WhatsApp Messenger",
  "installs": "5,000,000,000+",
  "score": 4.2,
  "ratings": 189234567,
  "free": true,
  "developer": "WhatsApp LLC",
  "genre": "Communication",
  "version": "Varies with device",
  "url": "https://play.google.com/store/apps/details?id=com.whatsapp"
}
```

### Use cases

- **App market research** — track ratings, installs and pricing across competitors.
- **Review sentiment / ASO** — feed reviews to an LLM to mine feature requests and complaints.
- **Cross-store analysis** — combine with the App Store Scraper for iOS + Android in one dataset.
- **Localised monitoring** — compare an app's reviews per country and language.

### FAQ

**Do I need a Google or API key?** No. It uses Google Play's public endpoints.

**Can I get reviews in a specific language or country?** Yes — set `country` and `language`.

**How many reviews can I get?** Set `maxReviewsPerApp`; reviews are paginated automatically.

### 🤖 Use with Claude or ChatGPT (MCP)

Run this actor from Claude, ChatGPT, Cursor or any MCP client via the [Apify MCP server](https://mcp.apify.com). In **Claude Desktop**: Settings → Connectors → Add custom connector → `https://mcp.apify.com`. Or expose just this tool:

```json
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=get_anything/google-play-scraper" } } }
```

Full guide: [Connect Apify actors to Claude & ChatGPT](https://dev.to/get_anything/connect-any-apify-scraper-to-claude-or-chatgpt-in-2-minutes-mcp-37he).

### ⭐ Found this useful?

If this Actor saved you time, please leave a rating on its [Apify page](https://apify.com/get_anything/google-play-scraper) — reviews genuinely help others discover it and help me keep improving it.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search Google Play, e.g. 'habit tracker', 'vpn', 'budget'. Leave empty if you only pass app IDs.

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

Specific apps by package name (e.g. 'com.whatsapp') or Play store URL (e.g. 'https://play.google.com/store/apps/details?id=com.whatsapp'). These get a full details lookup.

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

Two-letter country code for the store, e.g. 'us', 'gb', 'ae', 'de'. Pricing, ratings and reviews are per-country.

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

Two-letter language code for details & reviews, e.g. 'en', 'ar', 'de'.

## `maxAppsPerSearch` (type: `integer`):

Cap on apps returned per search term.

## `scrapeReviews` (type: `boolean`):

For every app found, pull its user reviews too.

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

Cap on reviews per app.

## `reviewsSort` (type: `string`):

Order in which reviews are fetched.

## `reviewsFilterScore` (type: `integer`):

Optionally keep only reviews with a specific star rating (1-5). Use 0 for any.

## Actor input object example

```json
{
  "searchTerms": [
    "habit tracker"
  ],
  "appIds": [],
  "country": "us",
  "language": "en",
  "maxAppsPerSearch": 20,
  "scrapeReviews": false,
  "maxReviewsPerApp": 100,
  "reviewsSort": "newest",
  "reviewsFilterScore": 0
}
```

# Actor output Schema

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

Structured results in the default dataset - one item per app or review.

# 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 = {
    "searchTerms": [
        "habit tracker"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("get_anything/google-play-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 = { "searchTerms": ["habit tracker"] }

# Run the Actor and wait for it to finish
run = client.actor("get_anything/google-play-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 '{
  "searchTerms": [
    "habit tracker"
  ]
}' |
apify call get_anything/google-play-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,get_anything/google-play-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/msTnbdCy3I01g6WXW/builds/FqVj4sUVVCX8UpIwh/openapi.json
