# Google Play Scraper — App Data, Reviews & ASO API (`logiover/google-play-data-api`) Actor

Unofficial Google Play API alternative. Scrape Play Store app data & reviews without login; export app data to CSV/JSON. No API key, no browser.

- **URL**: https://apify.com/logiover/google-play-data-api.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Developer tools, SEO tools
- **Stats:** 10 total users, 2 monthly users, 98.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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/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

## Google Play Scraper — App Data, Reviews, Top Charts & ASO API (No API Key)

![Google Play Scraper — App Data, Reviews & ASO API](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify\&logoColor=white) ![No API key](https://img.shields.io/badge/No%20API%20key-required-2ea44f) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Category](https://img.shields.io/badge/Category-App%20Intelligence-8B5CF6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)

An unofficial **Google Play Store scraper** and REST-style **Android app data API** in a single Apify Actor. Extract Play Store **app details, user reviews, ratings, top charts, ASO keyword suggestions, Android permissions and Google Play data-safety info** — no Play Console account, no OAuth, no API key, no headless browser. Just fast HTTP and clean JSON. **Ten endpoints (modes) share one input form**, and every result is tagged with `_mode` so you can mix modes in a single dataset.

> ### 🏆 Why this Google Play scraper?
>
> **10 endpoints in one Actor** · up to **100,000+ reviews per app** · top charts by country & category · ASO keyword suggestions · pure HTTP, sub-3s cold start · 4 pre-built dataset views · export to JSON / CSV / Excel. The unofficial **Google Play API alternative** for Android developers, ASO platforms, app-intelligence tools and AI agents.

***

### ✨ What this Actor does / Key features

- 🔟 **Ten modes, one form** — search, app, reviews, list, similar, developer, suggest, permissions, datasafety, categories.
- 📱 **Full app details** — title, summary, description (+ HTML), icon, header image, screenshots, promo video, genre & categories.
- ⭐ **Ratings & reach** — floating-point `score`, `scoreText`, total ratings/reviews, exact 1–5 star `histogram`, install bands and best-estimate real installs.
- 💬 **Reviews at scale** — up to **100,000+ reviews per app**, auto-paginated, with reviewer, star rating, full text, date, app version, helpful-votes and developer reply.
- 📊 **Top charts** — TOP\_FREE / TOP\_PAID / TOP\_GROSSING / NEW / TRENDING by category and country.
- 🔍 **ASO keyword research** — ranked autocomplete `suggest` terms plus keyword `search` rankings for long-tail ASO mining.
- 💰 **Monetization signals** — price, currency, free flag, in-app purchases + IAP range, ad-supported flag.
- 🔐 **Privacy & compliance** — Android permissions list and the Google Play data-safety section for vendor/GDPR reviews.
- 🌍 **Locale-aware** — set `country` + `language`; the same app differs per locale.
- 🔑 **No API key** — reads publicly visible `play.google.com` pages over plain HTTP; only an Apify account required.

#### The 10 modes

| Mode | What it returns |
|---|---|
| `search` | Keyword search results (Play Store search bar) |
| `app` | Full details for one app or many (batch, 5× concurrency) |
| `reviews` | Up to 100,000+ reviews per app, auto-paginated |
| `list` | Top charts (free / paid / grossing) by category |
| `similar` | "Similar apps" for a given app |
| `developer` | Every app published by a developer |
| `suggest` | Autocomplete suggestions for ASO keyword research |
| `permissions` | Android permissions an app declares |
| `datasafety` | Google Play data-safety section |
| `categories` | Full list of Google Play category codes |

### 🚀 Quick start (3 steps)

1. **Configure** — pick a **Mode** and fill the fields it needs: an `appId` for app-targeted modes (e.g. `com.spotify.music`), a `query` for search/suggest, or a `devId` for developer. Set `country` and `language`.
2. **Run** — click **Start**. The Actor calls the chosen Play Store endpoint and streams tagged rows into your dataset.
3. **Get your data** — open the **Output** tab (Overview, App catalog, Reviews or App details view) and export to **JSON, CSV, Excel, HTML, RSS or JSONLines**, or pull it via the Apify API.

### 📥 Input

Pick a `mode`, then fill the fields that mode uses. Everything else is optional.

#### Example — keyword search for meditation apps

```json
{
  "mode": "search",
  "query": "meditation",
  "country": "us",
  "language": "en",
  "maxResults": 50
}
```

#### Example — pull 5,000 newest reviews for an app

```json
{
  "mode": "reviews",
  "appId": "com.spotify.music",
  "country": "us",
  "reviewSort": "NEWEST",
  "maxResults": 5000
}
```

#### Example — top free finance apps in Germany

```json
{
  "mode": "list",
  "collection": "TOP_FREE",
  "category": "FINANCE",
  "country": "de",
  "language": "de",
  "maxResults": 200
}
```

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `mode` | string | Which Play Store endpoint to call (see the 10 modes above). **Required.** | `search` |
| `appId` | string | Single app ID (value after `id=` in the Play URL). Used by app/reviews/similar/permissions/datasafety. | – |
| `appIds` | array | Batch app IDs for multi-app runs (app/reviews/permissions/datasafety). | `[]` |
| `query` | string | Keyword for `search`, or partial term for `suggest` autocomplete. | – |
| `devId` | string | Developer name as on Google Play (e.g. `Spotify AB`). Used by `developer`. | – |
| `collection` | string | Top chart for `list`: TOP\_FREE, TOP\_PAID, TOP\_GROSSING, NEW\_FREE, NEW\_PAID, TRENDING. | `TOP_FREE` |
| `category` | string | Category code for `list` (e.g. `GAME`, `FINANCE`). Run `categories` mode for all codes. | – |
| `age` | string | Age-band filter for game categories in `list`. | – |
| `reviewSort` | string | `NEWEST`, `RATING` or `HELPFULNESS` (reviews mode). | `NEWEST` |
| `reviewScore` | integer | Return only reviews with this exact star rating (1–5). | – |
| `country` | string | ISO 3166-1 alpha-2 country code (e.g. `us`, `de`, `jp`). Applies to every mode. | `us` |
| `language` | string | BCP 47 language code (e.g. `en`, `de`, `ja`). | `en` |
| `maxResults` | integer | Max results (per-app for reviews; overall otherwise). Some modes cap at ~250. | – |
| `fullDetail` | boolean | Enrich search/list/similar/developer rows with full 47+ field app detail (slower). | `false` |
| `shortPermissions` | boolean | Compact permission strings instead of full objects (permissions mode). | `false` |

> **Finding an App ID:** open the app on play.google.com and copy the value after `id=` in the URL (e.g. `https://play.google.com/store/apps/details?id=com.spotify.music` → `com.spotify.music`).

### 📤 Output

Documented flat fields per mode — every item carries `_mode` and `scrapedAt`. Here is a trimmed `app`-mode sample record:

```json
{
  "_mode": "app",
  "appId": "com.spotify.music",
  "title": "Spotify: Music and Podcasts",
  "developer": "Spotify AB",
  "developerId": "Spotify+AB",
  "score": 4.3,
  "scoreText": "4.3",
  "ratings": 32871004,
  "reviews": 4210233,
  "histogram": { "1": 2100000, "2": 610000, "3": 1400000, "4": 3900000, "5": 24800000 },
  "installs": "1,000,000,000+",
  "minInstalls": 1000000000,
  "realInstalls": 1284500110,
  "free": true,
  "price": 0,
  "currency": "USD",
  "offersIAP": true,
  "IAPRange": "$0.99 - $199.99 per item",
  "adSupported": false,
  "genre": "Music & Audio",
  "genreId": "MUSIC_AND_AUDIO",
  "contentRating": "Teen",
  "androidVersionText": "Varies with device",
  "version": "8.9.0.100",
  "released": "Oct 7, 2008",
  "developerEmail": "android-support@spotify.com",
  "developerWebsite": "https://www.spotify.com/",
  "privacyPolicy": "https://www.spotify.com/legal/privacy-policy/",
  "url": "https://play.google.com/store/apps/details?id=com.spotify.music",
  "scrapedAt": "2026-07-06T12:00:00.000Z"
}
```

<details>
<summary><b>📋 Full field reference (click to expand)</b></summary>

| Group | Fields |
|-------|--------|
| App details | `appId`, `title`, `summary`, `description`, `descriptionHTML`, `icon`, `headerImage`, `screenshots[]`, `video`, `url` |
| Ratings | `score`, `scoreText`, `ratings`, `reviews`, `histogram` (1–5 star counts) |
| Reach | `installs`, `minInstalls`, `maxInstalls`, `realInstalls` |
| Reviews (reviews mode) | `userName`, `score`, `text`, `date`, `version`, `thumbsUp`, `replyText`, `replyDate` |
| Pricing | `price`, `currency`, `free`, `priceText`, `offersIAP`, `IAPRange` |
| Metadata | `version`, `recentChanges`, `released`, `updated`, `androidVersion`, `androidVersionText`, `contentRating`, `genre`, `genreId`, `categories` |
| Developer | `developer`, `developerId`, `developerEmail`, `developerWebsite`, `developerAddress`, `developerLegalName` |
| Compliance | `privacyPolicy`, `adSupported`, permissions list, data-safety section |
| ASO (suggest mode) | ranked autocomplete search terms |
| Universal | `_mode`, `scrapedAt` (ISO 8601) |

</details>

### 💡 Use cases

- **ASO & app store optimization** — track keyword rankings with `search`, mine long-tail keywords with `suggest`, monitor competitor metadata changes.
- **App market intelligence** — bulk-ingest `app` details, install bands, top charts by country and rating histograms into dashboards.
- **Review monitoring & sentiment** — pull tens of thousands of reviews for your app or competitors, filter by star rating, alert on 1-star spikes.
- **Privacy & compliance research** — extract Android permissions and data-safety sections for GDPR/CCPA vendor reviews and MDM policy audits.
- **AI agents & RAG** — wrap the Actor as a tool so an LLM can answer "top mindfulness apps in Germany?" or embed app descriptions + reviews.

### 👥 Who uses it

Android developers & mobile PMs · ASO platforms and agencies · app-intelligence & market-research firms · competitive-intel and growth teams · privacy/compliance and security auditors · data scientists and AI-agent builders needing structured Play Store data.

### 💰 Pricing

This Actor runs on a simple **pay-per-result** model — you pay for the items you extract, with no separate Apify platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Do I need a Google account or API key?**
No. This is an unofficial scraper that reads data publicly visible on `play.google.com`, the same way a browser would. You only need an Apify account — no Play Console account, no OAuth, no API key.

**Is this a Google Play API alternative?**
Yes. It works as an unofficial Google Play API alternative, returning REST-style JSON for app details, reviews, ratings and top charts — without a Play Console account, OAuth or API key.

**Can I scrape Google Play without an API or login?**
Yes. This Play Store scraper reads publicly visible pages over plain HTTP, so you can scrape Google Play app data and reviews without login, without an API key, and without a headless browser.

**How many reviews can I pull per app?**
Reviews are auto-paginated, so you can pull anywhere from a handful to 100,000+ per app on popular titles. Use `reviewSort: NEWEST` and increase `maxResults`; the Actor handles continuation tokens for you. Set `reviewScore: 1` to fetch only 1-star reviews for negative-sentiment monitoring.

**How do I scrape Google Play reviews for a specific app?**
Set mode to `reviews` and pass the `appId` (the value after `id=` in the Play Store URL). Reviews auto-paginate, so you can pull thousands per app sorted by newest or rating.

**Can I get the top free apps by category and country?**
Yes. Use mode `list` with a collection like TOP\_FREE, a category code such as GAME or FINANCE, and a country code to fetch that country's Play Store top chart.

**How do I do ASO keyword research with Google Play data?**
Use mode `suggest` with a partial query to pull Google Play autocomplete terms, or mode `search` to see ranking results — ideal for mining long-tail ASO keywords.

**How accurate are the rating and install numbers?**
`score` is the floating-point average Google exposes and `scoreText` is the rounded display value. `histogram` gives exact 1–5 star counts. `minInstalls`/`maxInstalls` are Google's official install bands per country, and `realInstalls` is the closest available estimate.

**Can I run several modes in one run?**
Each run executes one mode. To combine modes, call the Actor multiple times and join the datasets on `appId`. Every item carries a `_mode` field, so mixed datasets stay easy to filter.

**How do I export Google Play data to CSV or JSON?**
Run any mode, then download the dataset as CSV, JSON, Excel (XLSX), HTML, RSS or JSONLines from the run's Storage tab, or pull it via the Apify API. Pre-built views let you export with no post-processing.

### 🔗 More app, store & product-intelligence scrapers by logiover

Building an app-store or product-intelligence dataset? Pair this with:

| Actor | What it does |
|---|---|
| [App Store Data API](https://apify.com/logiover/app-store-data-api) | Unofficial Apple App Store data API (apps, reviews, charts) |
| [Product Hunt Daily Launches](https://apify.com/logiover/product-hunt-daily-launches-scraper) | New product launches, makers & upvotes |
| [G2 Software Reviews Scraper](https://apify.com/logiover/g2-com-software-reviews-scraper) | B2B software reviews & ratings |
| [Trustpilot Reviews Scraper](https://apify.com/logiover/trustpilot-reviews-scraper) | Company reviews, ratings & sentiment |
| [Steam Game Reviews Scraper](https://apify.com/logiover/steam-game-reviews-scraper) | Game reviews & scores from Steam |
| [Shopify Merchant Scraper](https://apify.com/logiover/shopify-merchant-scraper) | Shopify stores, apps & tech signals |
| [Similarweb Scraper](https://apify.com/logiover/similarweb-scraper) | Traffic & engagement estimates |
| [SERP Keyword Research](https://apify.com/logiover/serp-keyword-research) | Search-engine keyword & ranking data |
| [Google News Scraper](https://apify.com/logiover/google-news-scraper) | News coverage by keyword |
| [NPM Package Intelligence](https://apify.com/logiover/npm-package-intelligence-scraper) | Package stats & dependency intel for devs |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

Schedule this Actor on Apify to track rankings, reviews or metadata daily or weekly. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Call it from your stack via `run-sync-get-dataset-items`, the JavaScript/Python clients, or no-code tools like **Make, n8n and Zapier**.

### ⭐ Support & feedback

Found a bug or need an extra field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏

### ⚖️ Legal

This Actor extracts only publicly visible Google Play data and is intended for legitimate research, analytics and app-intelligence use. You are responsible for complying with Google Play's terms of service and any applicable local laws.

***

### 📝 Changelog

#### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Declared 21 dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.
- Declared 21 nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder or brittle to sparse modes.

#### 2026-07-06

- ✨ README overhaul: richer app-mode output sample, three ready-to-run example scenarios, full field-group reference, expanded app/product-intelligence cross-links, and clearer quick-start.

#### 2026-07-01

- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.

#### 2026-06-15

- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.

#### 2026-06-07

- Docs: added coverage for using the actor as a Google Play API alternative, exporting Play Store data to CSV/JSON, and scraping Google Play app data without login.

#### 2026-06-05

- Reliability fix: results are no longer dropped by strict output validation — runs complete cleanly at high volume.
- Stability & performance hardening; fresh rebuild.

#### 2026-06-04

- Verified live & refreshed build — reliability/maintenance pass.

***

\*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).

# Actor input Schema

## `mode` (type: `string`):

Which Google Play endpoint to call.

• **search** — keyword search (most common)
• **app** — full details for one or more app IDs
• **reviews** — user reviews with pagination
• **list** — top charts (free/paid/grossing) by category
• **similar** — apps similar to a given app
• **developer** — all apps by a developer
• **suggest** — autocomplete suggestions (great for ASO keyword research)
• **permissions** — Android permissions list (privacy/security audits)
• **datasafety** — Google Play data safety section
• **categories** — full list of Google Play category codes

## `appId` (type: `string`):

Single Google Play app ID — the value after `id=` in the Play Store URL. E.g. `com.spotify.music`. Used by **app**, **reviews**, **similar**, **permissions**, **datasafety** modes.

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

Array of app IDs for batch operations. Used by **app**, **reviews**, **permissions**, **datasafety** modes when you want multiple apps in one run. Adds to (or replaces) the single App ID field above.

## `query` (type: `string`):

Keyword to search for in **search** mode, or partial term for **suggest** mode autocomplete. Required when mode is "search" — the run stops immediately without it.

## `devId` (type: `string`):

Developer name as it appears on Google Play (URL-encoded). E.g. `Spotify+AB` or `Google+LLC`. Used by **developer** mode.

## `collection` (type: `string`):

Which top chart to fetch in **list** mode.

## `category` (type: `string`):

Optional category filter for **list** mode. Leave as "All categories" for the overall top charts. (Run mode=categories to fetch the full up-to-date code list.)

## `age` (type: `string`):

Age-band filter for game categories in **list** mode.

## `reviewSort` (type: `string`):

How reviews are ordered when fetched from Google Play.

## `reviewScore` (type: `integer`):

Optional: return only reviews with this exact star rating (1–5). Leave blank for all ratings.

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

Country storefront. Affects localized title, description, ratings, and which apps are returned. Leave on the default (United States) for the broadest catalog.

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

Interface / listing language. Leave on the default (English) for the broadest coverage.

## `maxResults` (type: `integer`):

Maximum results to return. For **reviews** mode, this is per-app. For **list/search/similar/developer** modes, this is overall. Leave on the default (100) for a fast, cheap run; raise it to pull more (some Google Play modes cap at ~250 per run).

## `fullDetail` (type: `boolean`):

For **search**, **list**, **similar**, **developer** modes: if enabled, each result is enriched with the full 47+ field app detail (slower, more expensive). Disable for quick lookups.

## `shortPermissions` (type: `boolean`):

For **permissions** mode: if enabled, returns a compact list of permission strings instead of the full permission objects.

## Actor input object example

```json
{
  "mode": "search",
  "appId": "com.spotify.music",
  "appIds": [],
  "query": "spotify",
  "devId": "Spotify AB",
  "collection": "TOP_FREE",
  "category": "",
  "age": "",
  "reviewSort": "NEWEST",
  "country": "us",
  "language": "en",
  "maxResults": 100,
  "fullDetail": false,
  "shortPermissions": false
}
```

# Actor output Schema

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

Full results dataset. Switch between Overview, App catalog, Reviews, and App details views depending on which mode you ran.

# 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 = {
    "query": "photo editor",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/google-play-data-api").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 = {
    "query": "photo editor",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/google-play-data-api").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 '{
  "query": "photo editor",
  "maxResults": 100
}' |
apify call logiover/google-play-data-api --silent --output-dataset

```

## MCP server setup

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

```

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/cuSaFiPrAB674738o/builds/OBUogU97BOjcnthYZ/openapi.json
