Google Play App Scraper avatar

Google Play App Scraper

Pricing

from $9.00 / 1,000 results

Go to Apify Store
Google Play App Scraper

Google Play App Scraper

Scrape Google Play app metadata, ratings, install ranges, pricing, and version changes for ASO tracking and Android competitor research.

Pricing

from $9.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

12 days ago

Last modified

Share

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.json for the smallest useful dataset run.
  • Check sample-output.example.json for a recent Google Play sample captured from the repo's live output.
  • Check live-proof.example.json for the latest live canary + contract proof on the public actor surface.
  • Then move through store-input.templates.json in this order:
    • Quickstart Baseline (2 Apps) — smallest useful dataset run
    • Recurring Baseline (Mobile App Watchlist) — same country/language baseline tuned for repeat monitoring
    • Webhook Routed Alerts (Rating Drop Handoff) — route the same payload after the dataset baseline is stable
  • Keep country and language pinned from the start so repeat runs stay comparable.

What it does

For each Google Play app source, the actor:

  1. Normalizes package IDs and Google Play listing URLs.
  2. Fetches the public listing page with polite headers and timeouts.
  3. Extracts metadata from JSON-LD, canonical/meta tags, visible HTML, and Google Play embedded state.
  4. Returns normalized app intelligence including title, developer, category, icon, screenshots, rating, rating count, install ranges, pricing flags, content rating, descriptions, and update dates.
  5. Samples public review rows only when Google Play embeds them in the initial HTML response.
  6. 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:

  1. JSON-LD — stable core app metadata.
  2. Canonical/meta tags — URL and description fallbacks.
  3. Embedded AF_initDataCallback state — installs, screenshots, developer metadata, rating breakdowns, and occasional review samples.
  4. 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 null and 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

WhoWhy
ASO teamsCompare category fit, installs, ratings, and screenshots across Android competitors
Product teamsSample public complaints after releases without running a full review-mining stack
Growth teamsBenchmark storefront positioning across markets with pinned country/language settings
Support teamsWatch for repeated issue themes in public review snippets

Input

FieldTypeDefaultDescription
appUrlsstring[]requiredGoogle Play URLs or Android package IDs
countrystring"us"Two-letter storefront code
languagestring"en"Listing page language
reviewLimitinteger20Max embedded public review samples per app
timeoutMsinteger20000HTTP timeout per request
deliverystring"dataset"dataset or webhook
webhookUrlstringWebhook destination when delivery=webhook
dryRunbooleanfalseSkip dataset writes

Output

Each row in apps includes:

  • status: ok, partial, missing, blocked, invalid, or error
  • app: normalized listing intelligence
  • reviewIntelligence: aggregate review availability plus public sample rows when exposed
  • warnings: explicit structured warnings with code and message
  • fetch: 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 start
npm test

npm start reads input.json locally and writes output/result.json.

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:

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 Baseline on 1–3 package IDs or listing URLs in dataset mode.
  • Keep reviewLimit around 10–20 for Recurring Baseline, and pin country / language so repeat runs stay comparable.
  • Use Webhook Routed Alerts only after the dataset baseline already matches your warning flow.
  • Use dryRun: true before 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.