# App Store & Google Play Data Scraper (`fascinating_lentil/app-store-google-play-data-scraper`) Actor

Aggregate non-personal Apple App Store and Google Play app metadata, ratings counts, prices, versions, screenshots, and store URLs for ASO and app-market research.

- **URL**: https://apify.com/fascinating\_lentil/app-store-google-play-data-scraper.md
- **Developed by:** [Md Jakaria Mirza](https://apify.com/fascinating_lentil) (community)
- **Categories:** Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 app scrapeds

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/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

## App Store & Google Play Data Scraper

Aggregate non-personal app metadata from the Apple App Store and Google Play Store into one normalized Apify dataset for ASO, app-market research, competitor tracking, and product intelligence.

### What It Extracts

- App name, app ID, bundle ID/package name, developer company/studio name, category, price, currency, version, content rating, release date, update date, icon, screenshots, store URL, and redacted description.
- Aggregate ratings only: rating value, rating count, and Google Play rating histogram when available.
- Google Play install range when available.

This Actor does not output individual reviews, reviewer names, reviewer handles, developer emails, phone numbers, or contact fields.

### Sources

- Apple App Store via the official public iTunes Search and Lookup APIs.
- Google Play Store public app pages via app-level metadata fetching.

### Input

| Field | Type | Description |
| --- | --- | --- |
| `sources` | array | `app_store`, `google_play`, or both. |
| `searchQueries` | array | Keywords to search across selected stores. |
| `appIds` | array | Apple numeric app IDs or bundle IDs. |
| `packageNames` | array | Google Play package names or app URLs. |
| `country` | string | Store country/region code, default `us`. |
| `language` | string | Language code, default `en`. |
| `includeRatingsSummary` | boolean | Include aggregate ratings only. |
| `maxResults` | integer | Maximum app records across all selected sources. |
| `proxyConfiguration` | object | Recommended for Google Play; Apple API does not need proxy. |

### Sample Output

```json
{
  "source": "google_play",
  "query": "whatsapp",
  "appId": "com.whatsapp",
  "bundleId": "com.whatsapp",
  "appName": "WhatsApp Messenger",
  "developer": "WhatsApp LLC",
  "category": "Communication",
  "price": 0,
  "currency": "USD",
  "ratingValue": 4.3,
  "ratingCount": 200000000,
  "ratingHistogram": {
    "oneStar": 1000000,
    "twoStar": 500000,
    "threeStar": 900000,
    "fourStar": 3000000,
    "fiveStar": 15000000
  },
  "installRange": "5,000,000,000+",
  "version": "Varies with device",
  "contentRating": "Everyone",
  "releaseDate": "2010-10-18",
  "lastUpdated": "2026-06-01T00:00:00.000Z",
  "description": "Simple. Reliable. Private messaging...",
  "iconUrl": "https://...",
  "screenshots": ["https://..."],
  "appUrl": "https://play.google.com/store/apps/details?id=com.whatsapp",
  "country": "us",
  "scrapedAt": "2026-06-14T00:00:00.000Z"
}
````

### Use Cases

- ASO keyword and competitor research.
- App-market intelligence and category monitoring.
- Pricing, version, and update tracking.
- Product benchmarking across Apple App Store and Google Play.
- Portfolio monitoring for publishers, agencies, and investors.

### Pricing

This Actor uses pay-per-event pricing.

| Event | When charged | Price |
| --- | --- | --- |
| `app-scraped` | One clean non-personal app metadata record saved | $0.001 |

Charges are made only after a clean app record is pushed to the dataset.

### Responsible Use

This Actor is intended for lawful collection of publicly available information only. Users are responsible for ensuring their use complies with the source website's terms, robots.txt, applicable privacy laws, including India's DPDP Act, and all local regulations.

Do not use this Actor to collect, store, sell, or misuse personal data without a lawful basis. The Actor author is not responsible for misuse by end users.

### License

Apache-2.0

# Actor input Schema

## `sources` (type: `array`):

App marketplaces to query.

## `searchQueries` (type: `array`):

Keywords to search in selected stores.

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

Apple numeric app IDs or bundle IDs. Example: 310633997.

## `packageNames` (type: `array`):

Google Play package names or app URLs. Example: com.whatsapp.

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

Store country/region code, such as us or in.

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

Language/locale code, such as en.

## `includeRatingsSummary` (type: `boolean`):

Include aggregate ratings counts and histogram when available. Individual reviews are never output.

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

Maximum clean app records to save across all selected sources.

## `userAgent` (type: `string`):

Descriptive User-Agent for public API/page requests.

## `proxyConfiguration` (type: `object`):

Recommended for Google Play. Apple iTunes API does not need a proxy.

## Actor input object example

```json
{
  "sources": [
    "app_store",
    "google_play"
  ],
  "searchQueries": [
    "whatsapp"
  ],
  "country": "us",
  "language": "en",
  "includeRatingsSummary": true,
  "maxResults": 10,
  "userAgent": "AppStoreGooglePlayDataScraper/1.0 app-market-research",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("fascinating_lentil/app-store-google-play-data-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("fascinating_lentil/app-store-google-play-data-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 '{}' |
apify call fascinating_lentil/app-store-google-play-data-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "App Store & Google Play Data Scraper",
        "description": "Aggregate non-personal Apple App Store and Google Play app metadata, ratings counts, prices, versions, screenshots, and store URLs for ASO and app-market research.",
        "version": "1.0",
        "x-build-id": "Q5ZyQ58miLR4NyWgU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fascinating_lentil~app-store-google-play-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fascinating_lentil-app-store-google-play-data-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/fascinating_lentil~app-store-google-play-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fascinating_lentil-app-store-google-play-data-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/fascinating_lentil~app-store-google-play-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fascinating_lentil-app-store-google-play-data-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": {
                    "sources": {
                        "title": "Sources",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "App marketplaces to query.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "app_store",
                                "google_play"
                            ],
                            "enumTitles": [
                                "Apple App Store",
                                "Google Play Store"
                            ]
                        },
                        "default": [
                            "app_store",
                            "google_play"
                        ]
                    },
                    "searchQueries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Keywords to search in selected stores.",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "whatsapp"
                        ]
                    },
                    "appIds": {
                        "title": "Apple App Store app IDs",
                        "type": "array",
                        "description": "Apple numeric app IDs or bundle IDs. Example: 310633997.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "packageNames": {
                        "title": "Google Play package names",
                        "type": "array",
                        "description": "Google Play package names or app URLs. Example: com.whatsapp.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "title": "Country",
                        "type": "string",
                        "description": "Store country/region code, such as us or in.",
                        "default": "us"
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Language/locale code, such as en.",
                        "default": "en"
                    },
                    "includeRatingsSummary": {
                        "title": "Include ratings summary",
                        "type": "boolean",
                        "description": "Include aggregate ratings counts and histogram when available. Individual reviews are never output.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Maximum app records",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum clean app records to save across all selected sources.",
                        "default": 10
                    },
                    "userAgent": {
                        "title": "User-Agent",
                        "type": "string",
                        "description": "Descriptive User-Agent for public API/page requests.",
                        "default": "AppStoreGooglePlayDataScraper/1.0 app-market-research"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Recommended for Google Play. Apple iTunes API does not need a proxy.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
