Google Play App Scraper
Pricing
from $9.00 / 1,000 results
Google Play App Scraper
Scrape Google Play app metadata, ratings, install ranges, pricing, and version changes for ASO tracking and Android competitor research.
Google Play Intelligence API | App Metadata, Ratings & Review Samples
Monitor specific Android applications on the Google Play store using a highly efficient, browserless data extractor. Designed for recurring watchlists and automated alerts, this tool captures precise app metadata, install ranges, pricing flags, and public review snippets directly from storefront listings. Rather than relying on heavy, resource-intensive browser rendering, it leverages a lightweight approach to instantly retrieve normalized metrics. This makes it the perfect solution for teams tracking mobile market trends, analyzing App Store Optimization (ASO) performance, or keeping a close eye on competitor app updates across different global regions.
Set up automated daily runs to maintain an accurate baseline of your top competitors or track your own app's visibility in the search results. The extractor outputs structured JSON containing developer contact details, updated descriptions, screenshot URLs, and crucial rating distribution data. Because it runs quickly and reliably, you can easily route the scraped data payload via webhooks to trigger immediate Slack or email notifications—such as alerting your product team the moment a competitor launches a new feature or when an app's average rating experiences a sudden drop. Whether you are managing a massive portfolio of mobile games or tracking a niche utility, this focused storefront tool delivers clean, actionable intelligence without the complexity of cross-platform monitoring setups.
Store Quickstart
- Start with
store-input.example.jsonfor the smallest useful dataset run. - Check
sample-output.example.jsonfor a recent Google Play sample captured from the repo's live output. - Check
live-proof.example.jsonfor the latest live canary + contract proof on the public actor surface. - Then move through
store-input.templates.jsonin this order:Quickstart Baseline (2 Apps)— smallest useful dataset runRecurring Baseline (Mobile App Watchlist)— same country/language baseline tuned for repeat monitoringWebhook Routed Alerts (Rating Drop Handoff)— route the same payload after the dataset baseline is stable
- Keep
countryandlanguagepinned from the start so repeat runs stay comparable.
What it does
For each Google Play app source, the actor:
- Normalizes package IDs and Google Play listing URLs.
- Fetches the public listing page with polite headers and timeouts.
- Extracts metadata from JSON-LD, canonical/meta tags, visible HTML, and Google Play embedded state.
- Returns normalized app intelligence including title, developer, category, icon, screenshots, rating, rating count, install ranges, pricing flags, content rating, descriptions, and update dates.
- Samples public review rows only when Google Play embeds them in the initial HTML response.
- Emits explicit warnings when a field or review surface is unavailable instead of fabricating data.
Data strategy
This actor intentionally avoids browser automation, authenticated traffic, and private APIs.
Extraction tiers:
- JSON-LD — stable core app metadata.
- Canonical/meta tags — URL and description fallbacks.
- Embedded
AF_initDataCallbackstate — installs, screenshots, developer metadata, rating breakdowns, and occasional review samples. - Visible HTML labels — final fallback for fields like
Updated on.
Limitations
- Google Play does not reliably expose the current version on every public listing response. The actor returns
nulland a warning when it cannot confirm it. - Review output is limited to the review snippets that Google Play embeds in the initial HTML. If Google stops embedding them, the actor falls back to aggregate rating data only.
- Availability can vary by storefront. If an app is missing or geo-restricted for the requested country, the actor returns a structured warning or missing status.
Use Cases
| Who | Why |
|---|---|
| ASO teams | Compare category fit, installs, ratings, and screenshots across Android competitors |
| Product teams | Sample public complaints after releases without running a full review-mining stack |
| Growth teams | Benchmark storefront positioning across markets with pinned country/language settings |
| Support teams | Watch for repeated issue themes in public review snippets |
Input
| Field | Type | Default | Description |
|---|---|---|---|
appUrls | string[] | required | Google Play URLs or Android package IDs |
country | string | "us" | Two-letter storefront code |
language | string | "en" | Listing page language |
reviewLimit | integer | 20 | Max embedded public review samples per app |
timeoutMs | integer | 20000 | HTTP timeout per request |
delivery | string | "dataset" | dataset or webhook |
webhookUrl | string | — | Webhook destination when delivery=webhook |
dryRun | boolean | false | Skip dataset writes |
Output
Each row in apps includes:
status:ok,partial,missing,blocked,invalid, orerrorapp: normalized listing intelligencereviewIntelligence: aggregate review availability plus public sample rows when exposedwarnings: explicit structured warnings withcodeandmessagefetch: requested URL, final URL, and HTTP status
Output Example
{"meta": {"implementationStatus": "partial","totalSources": 2,"uniquePackages": 2,"totals": {"apps": 2,"ok": 1,"partial": 0,"missing": 1,"blocked": 0,"invalid": 0,"errors": 0,"warnings": 3,"totalReviewSamples": 5}},"apps": [{"packageId": "com.spotify.music","status": "ok","app": {"title": "Spotify: Music and Podcasts","developer": "Spotify AB","rating": 4.3,"ratingCount": 35383844,"installsText": "1,000,000,000+","contentRating": "Teen"},"reviewIntelligence": {"availability": "sampled_public_html","sampleCount": 5,"fullReviewCoverageAvailable": false}}]}
Local run
npm startnpm test
npm start reads input.json locally and writes output/result.json.
Related Actors
Use this actor first for Android-only watchlists, storefront checks, or lightweight Play review sampling. Add the next actor when you need the adjacent signal:
- App Review Intelligence API | App Store + Google Play Summary — Promote to this once stakeholders want one summary row across iOS and Android instead of separate store reports.
- Apple App Store Intelligence API — Add when the same launch or competitor set needs iOS-side metadata, pricing, and deeper public review sampling.
- Shopify Store Intelligence API — Add when the app belongs to a commerce brand and you want to connect Play feedback with storefront or catalog changes.
- Domain Security Audit API — Add when Android complaints mention sign-in, payments, or site trust and you need to audit owned web properties.
Pricing & Cost Control
Apify Store pricing is usage-based, so total cost mainly follows how many appUrls you process and how many review samples you request. Check the Store pricing card for the current per-event rates.
- Start with
Quickstart Baselineon 1–3 package IDs or listing URLs in dataset mode. - Keep
reviewLimitaround 10–20 forRecurring Baseline, and pincountry/languageso repeat runs stay comparable. - Use
Webhook Routed Alertsonly after the dataset baseline already matches your warning flow. - Use
dryRun: truebefore scheduled runs or webhook delivery.
⭐ Was this helpful?
If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.
Bug report or feature request? Open an issue on the Issues tab of this actor.