# Google Play Apps Scraper (`scrapers_lat/google-play-apps-scraper`) Actor

Extract app listings and details from the Google Play Store by search, app IDs, developer or category. Scrape title, developer, category, rating, ratings count, installs, price, version, description, screenshots and content rating across any country region.

- **URL**: https://apify.com/scrapers\_lat/google-play-apps-scraper.md
- **Developed by:** [Michael Flores](https://apify.com/scrapers_lat) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Apps Scraper

> Extract app listings and full details from the Google Play Store across all 34 categories and any country region, from search results, developer pages, app IDs or category charts.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-Worldwide-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>31 fields</strong><br>per record</td>
<td align="center"><strong>Worldwide</strong><br>any country region</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-22</td>
</tr></table>

<br>

### What you get

Each app returns a structured record ready to load into any database, spreadsheet, or analytics pipeline:

- **icon**: app icon image URL
- **title**: app name as listed on the store
- **appId**: Android package name, the unique app identifier
- **url**: direct link to the app's Play Store page
- **developer**: developer or publisher name
- **developerId\***: developer identifier used on the store
- **category**: human-readable category name
- **categoryId\***: category code
- **score**: average star rating as a precise decimal
- **scoreText**: rounded star rating as shown on the store
- **ratingsCount\***: number of ratings the app has received
- **reviewsCount\***: number of written reviews
- **installs**: install count bucket as shown on the store
- **minInstalls\***: lower bound of the install count
- **maxInstalls\***: estimated upper bound of the install count
- **price**: numeric price in the store currency, 0 for free apps
- **currency**: ISO currency code
- **free**: whether the app is free
- **contentRating**: age or content rating
- **version\***: current app version, when published
- **released\***: original release date
- **updated\***: last update timestamp
- **summary\***: short tagline
- **description\***: full app description
- **developerEmail\***: developer contact email
- **developerWebsite\***: developer website
- **privacyPolicy\***: privacy policy URL
- **headerImage\***: feature graphic image URL
- **screenshots\***: list of screenshot image URLs
- **observedAt**: when this app was last seen by the scraper

*\*These fields only appear when Fetch Full Details is enabled, or in App IDs mode which always fetches details.*

### Who is it for

| Use case | Who benefits |
|---|---|
| App market research | Product teams sizing demand and ratings in a category |
| Competitor monitoring | Developers tracking rivals' versions, installs and ratings |
| ASO and keyword research | App store optimization specialists studying search results |
| Lead generation | Agencies sourcing developer contact details |
| Data pipelines | Analysts feeding BI tools or app intelligence dashboards |

### Frequently Asked Questions

**Which countries and languages does it support?**  
Any Google Play region. Set the two-letter country code and language code in the input, and prices, availability and ranking reflect that region. The same app can be scraped across multiple countries to compare pricing and reach.

**How many apps can I collect per run?**  
Search, developer and category modes each return up to roughly a couple hundred apps per page, and you cap the run with Max Items. App IDs mode collects exactly the package names you provide. For larger datasets, split by category or run several searches.

**Can I look up specific apps by package name?**  
Yes. Choose App IDs mode and enter Android package names like com.whatsapp or com.spotify.music. Each one is fetched with its full detail page including description, screenshots, ratings count and version.

**Why is the version field sometimes empty?**  
Some developers publish their app as Varies with device and do not expose a single version number on the store. In those cases the version field is null while every other field is still populated.

**What happens if an app ID is wrong or removed?**  
The actor skips the failed lookup without stopping the run. That record carries the error field with the reason, and the rest of the run continues normally.

---

> This actor is an independent tool and has no affiliation with Google or Google Play. It only accesses data that is publicly available on the platform. Use it in accordance with Google Play's terms of service.

# Actor input Schema

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

Maximum number of apps to collect across the whole run. Optional.
## `withDetails` (type: `boolean`):

When enabled, every app found in search, developer or category mode is enriched by fetching its detail page (full description, screenshots, ratings count, version, update date, privacy policy and more). When disabled, only the listing-level fields are returned. App IDs mode always fetches full details.
## `mode` (type: `string`):

How to find apps. Search finds apps by keyword. App IDs looks up specific package names. Developer lists every app by a developer. Category lists top apps in a Play Store category.
## `searchQuery` (type: `string`):

Keyword to search for, used when mode is Search. Example: photo editor, vpn, budget tracker.
## `appIds` (type: `array`):

Android package names to look up, used when mode is App IDs. Example: com.whatsapp, com.spotify.music.
## `developer` (type: `string`):

Exact developer name as shown on the store, used when mode is Developer. Example: WhatsApp LLC, Spotify AB.
## `category` (type: `string`):

Play Store category, used when mode is Category. Lists the top apps in that category.
## `country` (type: `string`):

Two-letter country code for the store region. Affects availability, price and ranking.
## `language` (type: `string`):

Two-letter language code for the returned text (titles, descriptions).
## `proxyConfiguration` (type: `object`):

Optional Apify proxy. Direct datacenter requests normally work for Google Play; enable a proxy only if you hit rate limits.

## Actor input object example

```json
{
  "maxItems": 10,
  "withDetails": true,
  "mode": "search",
  "searchQuery": "messenger",
  "appIds": [
    "com.whatsapp",
    "com.spotify.music"
  ],
  "category": "GAME",
  "country": "US",
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

# Actor output Schema

## `results` (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 = {
    "maxItems": 10,
    "searchQuery": "messenger",
    "appIds": [
        "com.whatsapp",
        "com.spotify.music"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/google-play-apps-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": "messenger",
    "appIds": [
        "com.whatsapp",
        "com.spotify.music",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/google-play-apps-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 '{
  "maxItems": 10,
  "searchQuery": "messenger",
  "appIds": [
    "com.whatsapp",
    "com.spotify.music"
  ]
}' |
apify call scrapers_lat/google-play-apps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Play Apps Scraper",
        "description": "Extract app listings and details from the Google Play Store by search, app IDs, developer or category. Scrape title, developer, category, rating, ratings count, installs, price, version, description, screenshots and content rating across any country region.",
        "version": "0.1",
        "x-build-id": "1htpj0EdRfCgVTn0u"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~google-play-apps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-google-play-apps-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~google-play-apps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-google-play-apps-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~google-play-apps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-google-play-apps-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of apps to collect across the whole run. Optional."
                    },
                    "withDetails": {
                        "title": "Fetch Full Details",
                        "type": "boolean",
                        "description": "When enabled, every app found in search, developer or category mode is enriched by fetching its detail page (full description, screenshots, ratings count, version, update date, privacy policy and more). When disabled, only the listing-level fields are returned. App IDs mode always fetches full details.",
                        "default": true
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "appIds",
                            "developer",
                            "category"
                        ],
                        "type": "string",
                        "description": "How to find apps. Search finds apps by keyword. App IDs looks up specific package names. Developer lists every app by a developer. Category lists top apps in a Play Store category.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword to search for, used when mode is Search. Example: photo editor, vpn, budget tracker."
                    },
                    "appIds": {
                        "title": "App IDs (package names)",
                        "type": "array",
                        "description": "Android package names to look up, used when mode is App IDs. Example: com.whatsapp, com.spotify.music.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "developer": {
                        "title": "Developer Name",
                        "type": "string",
                        "description": "Exact developer name as shown on the store, used when mode is Developer. Example: WhatsApp LLC, Spotify AB."
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "APPLICATION",
                            "GAME",
                            "ART_AND_DESIGN",
                            "AUTO_AND_VEHICLES",
                            "BEAUTY",
                            "BOOKS_AND_REFERENCE",
                            "BUSINESS",
                            "COMICS",
                            "COMMUNICATION",
                            "DATING",
                            "EDUCATION",
                            "ENTERTAINMENT",
                            "EVENTS",
                            "FINANCE",
                            "FOOD_AND_DRINK",
                            "HEALTH_AND_FITNESS",
                            "HOUSE_AND_HOME",
                            "LIBRARIES_AND_DEMO",
                            "LIFESTYLE",
                            "MAPS_AND_NAVIGATION",
                            "MEDICAL",
                            "MUSIC_AND_AUDIO",
                            "NEWS_AND_MAGAZINES",
                            "PARENTING",
                            "PERSONALIZATION",
                            "PHOTOGRAPHY",
                            "PRODUCTIVITY",
                            "SHOPPING",
                            "SOCIAL",
                            "SPORTS",
                            "TOOLS",
                            "TRAVEL_AND_LOCAL",
                            "VIDEO_PLAYERS",
                            "WEATHER"
                        ],
                        "type": "string",
                        "description": "Play Store category, used when mode is Category. Lists the top apps in that category.",
                        "default": "GAME"
                    },
                    "country": {
                        "title": "Country (gl)",
                        "type": "string",
                        "description": "Two-letter country code for the store region. Affects availability, price and ranking.",
                        "default": "US"
                    },
                    "language": {
                        "title": "Language (hl)",
                        "type": "string",
                        "description": "Two-letter language code for the returned text (titles, descriptions).",
                        "default": "en"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional Apify proxy. Direct datacenter requests normally work for Google Play; enable a proxy only if you hit rate limits.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
