Google Play Apps Scraper exports public Google Play app search results and app detail metadata for ASO, market research, and competitor tracking.
Use it to collect Android app titles, package IDs, developers, ratings, installs, prices, categories, descriptions, screenshots and videos, release notes, Android requirements, public developer contacts, and localized metadata.
At a glance
- Extracts: app ID, title, developer, URL, icon, rating, ratings/reviews counts, installs, price, ads/IAP flags, category, summary, description, media URLs, release/update data, developer website, and developer email when available.
- Inputs: search queries, direct app IDs, direct Google Play app URLs, country, language, maximum results, detail toggle, and price filter.
- Best for: ASO research, competitor discovery, app store market snapshots, lead enrichment, and product intelligence.
- Exports: Apify dataset rows downloadable as CSV, JSON, Excel, or available through the API.
- Login: no Google account, cookies, or Google API key are required.
What can it do?
- Export Google Play search results: Save ranked app rows for keywords, categories, brands, or competitor searches.
- Enrich known apps: Fetch app metadata from direct package IDs or Google Play app URLs.
- Collect ASO fields: Capture titles, summaries, descriptions, ratings, installs, screenshots, categories, and pricing signals.
- Localize market snapshots: Use country and language inputs to compare localized rankings, prices, and metadata.
- Use as a Google Play apps API workflow: Run from API, schedules, webhooks, or MCP-compatible agents and export CSV/Excel/JSON.
Common workflows
- Research ASO keywords: collect top search results for a keyword and compare titles, summaries, ratings, installs, and categories.
- Enrich app IDs: pass known package IDs to get detail fields without running a discovery search.
- Compare competitors: run a small app list weekly and track metadata changes in your own database.
- Build app market datasets: export localized rows to spreadsheets, BI tools, or warehouse jobs through the Apify API.
Example input
{
"queries": ["fitness tracker"],
"appIds": ["com.spotify.music"],
"country": "us",
"language": "en",
"maxResults": 10,
"includeDetails": true,
"price": "all"
}
Example output
{
"query": "fitness tracker",
"rank": 1,
"inputType": "search",
"appId": "com.example.fitness",
"title": "Example Fitness App",
"developer": "Example Developer",
"appUrl": "https://play.google.com/store/apps/details?id=com.example.fitness&hl=en&gl=US",
"rating": 4.5,
"ratingsCount": 12000,
"installs": "1,000,000+",
"free": true,
"containsAds": true,
"inAppPurchases": true,
"category": "Health & Fitness",
"locale": "en_US",
"scrapedAt": "2026-07-03T09:00:00.000Z"
}
Tips for best results
- Use direct app IDs for known apps: package IDs are the most precise input for enrichment.
- Use small keyword batches: test search quality with one keyword and 10-25 results before scaling.
- Set country and language deliberately: rankings, prices, titles, and descriptions can change by locale.
- Keep details enabled for richer rows: developer contacts, screenshots, installs, and descriptions depend on detail data.
Limits and caveats
- This is not a reviews scraper: use Google Play Reviews Scraper for review text and developer replies.
- Fields vary by app: some apps do not expose contact details, screenshots, install ranges, or update data.
- Search ranking changes: Google Play search order can shift by country, language, time, and personalization outside the Actor.
- Large runs can take longer: detail pages are richer but slower than search-card metadata.
- Google Play can vary search behavior: upstream Google Play responses have occasionally ignored country or price filters. Treat those filters as best-effort and verify critical market comparisons with direct app IDs.
- Partial runs preserve useful data: if one detail page disappears or changes format, its search-card row is kept when possible and the error is recorded in
RUN_SUMMARY.
API usage
Run from the Apify API or SDK with the same input keys shown above.
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/google-play-apps-scraper').call({
queries: ['fitness tracker'],
country: 'us',
language: 'en',
maxResults: 10,
includeDetails: true
});
console.log(run.defaultDatasetId);
Python:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/google-play-apps-scraper").call(run_input={
"queries": ["fitness tracker"],
"country": "us",
"maxResults": 10,
"includeDetails": True,
})
print(run["defaultDatasetId"])
cURL:
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-play-apps-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queries":["fitness tracker"],"country":"us","maxResults":10,"includeDetails":true}'
MCP and AI agents
For AI agents, use the official Apify MCP server. The focused single-Actor URL is:
https://mcp.apify.com?tools=fetch_cat/google-play-apps-scraper
The default MCP server can search and run Actors. The focused URL exposes this Actor directly to clients that support tool-scoped MCP connections.
Claude CLI:
claude mcp add --transport http apify-google-play "https://mcp.apify.com?tools=fetch_cat/google-play-apps-scraper"
JSON configuration for MCP clients:
{
"mcpServers": {
"apify-google-play": {
"type": "http",
"url": "https://mcp.apify.com?tools=fetch_cat/google-play-apps-scraper"
}
}
}
Example prompts:
- “Find 20 budgeting apps on Google Play in the UK and include detailed metadata.”
- “Enrich
com.spotify.musicandcom.duolingo, then compare ratings, installs, recent changes, and Android requirements.” - “Export lightweight search results for
fitness trackerwithout fetching app detail pages.”
Support
Open an issue on the Actor page if Google Play changes its public response format or if you need a field clarified. To make a problem reproducible, include:
- the Apify run ID or run URL;
- the exact input JSON, with secrets removed;
- the expected output and the actual output;
- one reproducible public URL (normally a Google Play app page) or search query, when applicable.
Do not post Apify tokens, cookies, private URLs, or other credentials.
Privacy and data handling
This Actor runs with Apify limited permissions and processes only the inputs needed for the documented run. It requests public Google Play search and app-detail pages, then stores results in your Apify run storage. FetchCat does not use your inputs or outputs for advertising or model training and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.