# Google Play Store Scraper (`parseforge/google-play-store-scraper`) Actor

Scrape Google Play Store app listings by keyword search or package ID. Returns each app's title, developer, rating, installs, price, description, reviews, and similar apps as a flat row.

- **URL**: https://apify.com/parseforge/google-play-store-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Marketing
- **Stats:** 18 total users, 3 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.99 / 1,000 result items

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?

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Google Play Store Scraper

**Scrape Google Play Store apps by keyword search or package ID, up to a million per run.** Every app comes with its title, developer, rating, installs, price, reviews, and similar apps. No API key. Export to CSV, JSON, Excel, or XML.

Google Play Store has no official data API, and scraping it yourself means handling dynamic page loads, infinite scroll, and regional redirects. This Actor searches by keyword or reads a list of package IDs, returning each app's full public listing in one flat row. It handles the rendering, pagination, and localization so you get clean, structured data.

| Who uses it | What they scrape Google Play Store for |
|---|---|
| Market researchers | Track which apps dominate a category and how their ratings trend over time. |
| App developers | Monitor competitor app descriptions, feature lists, and user review sentiment. |
| SEO and ASO specialists | Analyze keyword density in app titles and descriptions to optimize store listings. |
| Data journalists | Investigate app pricing models, permission requests, and developer networks across markets. |

### What it does

This Actor collects Google Play Store app listings from keyword searches or package IDs and returns each app as a flat row with its metadata, reviews, and similar app recommendations.

- 🔍 **Keyword search:** feed a search term like "fitness tracker" and collect every app in the results.
- 📦 **Package ID list:** paste a list of package IDs such as "com.spotify.music" and get each app's full detail page.
- 🌐 **Localized results:** set language and country codes to see the store exactly as a user in that market would.
- ⭐ **User reviews:** each app row can include up to 20 recent reviews with text, score, and reviewer name.
- 🔄 **Similar apps:** each app row can include the "Similar apps" carousel from its Play Store page.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Google Play Store data

**📈 Monitor competitor app performance.**

An ASO agency scrapes the top 50 fitness apps weekly by keyword, tracking rating changes and review volume to report to their clients.

**🌍 Compare app availability across countries.**

A market researcher runs the same package ID list with 10 different country codes to map where a competitor app is published and how it is priced locally.

**💬 Analyze user review sentiment at scale.**

A product manager collects reviews for their own app and three competitors, then runs sentiment analysis on the text to find feature requests and complaints.

**🔗 Map developer networks via similar apps.**

A data journalist scrapes a set of news apps with similar apps enabled, building a graph of which developers recommend each other.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key required** | Reads the public Play Store pages directly, no Google developer account or API billing. |
| **Localized scraping** | Set any language and country code to see regional pricing, rankings, and content. |
| **Reviews included** | Up to 20 recent user reviews per app, with rating, text, and reviewer name. |
| **Similar apps discovery** | Collects the recommended similar apps for every app in your list. |
| **Fixed flat schema** | Every app returns the same fields, ready for CSV, JSON, Excel, or XML export. |

### How it compares

This Actor scrapes Google Play Store app listings, while the competitors below scrape Google Maps business data or Google Search results. They target different Google properties and return different data shapes.

| Feature | ParseForge | Google Maps Scraper | Google Maps Extractor | Google Search Results Scraper |
|---|---|---|---|---|
| Scrapes Google Play Store apps | Yes | Not listed | Not listed | Not listed |
| Returns app package ID | Yes | Not listed | Not listed | Not listed |
| Returns app rating and install count | Yes | Not listed | Not listed | Not listed |
| Returns user reviews | Yes | Yes | Not listed | Not listed |
| Returns similar app recommendations | Yes | Not listed | Not listed | Not listed |
| Localized results by language and country | Yes | Not listed | Not listed | Yes |

### Configure the run

Drive the Actor from a search query or a list of package IDs, and set language and country to localize the results. Toggle reviews and similar apps on or off before the run starts. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "searchQuery": "instagram"
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "searchQuery": "instagram"
}
```

### Pricing

Pay-per-result: **$0.01599 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.60 |
| 1,000 results | $15.99 |
| 10,000 results | $159.90 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Google Play Store Scraper](https://apify.com/parseforge/google-play-store-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Google Play Store through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/google-play-store-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results for my search query?**

Check that your search term is spelled correctly and is not too narrow. Try a broader term. Also verify that your language and country settings match a market where apps for that term exist.

**Why are some package IDs returning empty or missing data?**

The package ID may be incorrect, or the app may not be available in the country you set. Double-check the ID in a browser and try changing the country code to `us`.

**The reviews array is empty even though I enabled includeReviews.**

Some apps have no reviews, or the reviews may not be visible in the selected country and language. Try switching to `en` and `us` to see if reviews appear.

**The Actor is running slowly or timing out.**

Lower your `maxItems` value or split your package ID list into smaller batches. Running with `includeSimilarApps` enabled adds extra requests per app, which increases total run time.

**I am getting a different number of results than I see on the Play Store website.**

Google Play Store search results can vary by region, time, and user profile. The Actor sees the public, non-personalized listing. Small differences in result count are expected.

### FAQ

| Question | Answer |
|---|---|
| Can I scrape Google Play Store without an API key? | Yes. This Actor reads the public web pages of Google Play Store directly. You do not need a Google Cloud account, API key, or developer registration. |
| How many apps can I scrape in one run? | You can set the maximum up to 1,000,000 apps per run. The Actor will paginate through search results or iterate through your package ID list until it hits your limit. |
| What data fields does the Actor return for each app? | It returns the title, developer, rating, number of ratings, install count, price, description, category, content rating, last update date, version, and more. If enabled, it also returns up to 20 recent reviews and a list of similar apps. |
| How do I find the package ID of an app? | Open the app's page on Google Play Store in a browser. The URL will look like `play.google.com/store/apps/details?id=com.example.app`. The part after `id=` is the package ID. |
| Can I scrape reviews for a specific app? | Yes. Set `includeReviews` to true and provide the app's package ID. The Actor will return up to 20 of the most recent reviews, including the review text, score, and reviewer name. |
| Does the Actor support different languages and countries? | Yes. Set the `language` and `country` fields to any valid code, such as `es` and `mx` for Spanish in Mexico. The Actor will fetch the localized version of each app listing. |
| Can I scrape both by keyword and by package ID in the same run? | No. Use one input method per run. If you provide both a search query and package IDs, the Actor will prioritize the search query. |
| What format is the exported data? | You can export your dataset in CSV, JSON, Excel, or XML format directly from the Apify platform. |
| Is it legal to scrape Google Play Store? | This Actor accesses publicly available web pages. You are responsible for complying with Google's terms of service and any applicable laws in your jurisdiction. |
| How do I schedule this Actor to run automatically? | After creating a task, you can set a schedule in the Apify Console to run it hourly, daily, weekly, or on a custom cron expression. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Google LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

How many apps to collect per run.

## `searchQuery` (type: `string`):

Search term to find apps on Google Play Store (e.g., "instagram", "fitness tracker", "photo editor")

## `packageIds` (type: `array`):

List of specific app package IDs to scrape (e.g., "com.instagram.android", "com.whatsapp"). Find the package ID in the app's Play Store URL.

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

Language code for app content (e.g., "en" for English, "es" for Spanish, "de" for German)

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

Country code for regional pricing and availability (e.g., "us", "gb", "de", "jp")

## `includeReviews` (type: `boolean`):

Include user reviews for each app (up to 20 most recent reviews)

## `includeSimilarApps` (type: `boolean`):

Include similar/related apps recommendations for each app

## Actor input object example

```json
{
  "maxItems": 10,
  "searchQuery": "instagram",
  "language": "en",
  "country": "us",
  "includeReviews": true,
  "includeSimilarApps": true
}
```

# Actor output Schema

## `overview` (type: `string`):

Dataset with scraped app details

# 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 = {
    "maxItems": 10,
    "searchQuery": "instagram"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/google-play-store-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 = {
    "maxItems": 10,
    "searchQuery": "instagram",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/google-play-store-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 '{
  "maxItems": 10,
  "searchQuery": "instagram"
}' |
apify call parseforge/google-play-store-scraper --silent --output-dataset

```

## MCP server setup

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