Google Play App Scraper avatar

Google Play App Scraper

Pricing

from $3.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 $3.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

12 days ago

Last modified

Share

Google Play Intelligence API | App Metadata, Ratings & Review Samples

After this run

Turn this Actor's output into a capped paid report with App Store & Google Play Listing Gap Report. Use it when mobile growth, indie app, and ASO teams need to decide which app listing metadata and positioning gaps to fix before spending on paid acquisition.

  • First report: $9 / listing_snapshot_checklist; set maxChargeUsd to $9.
  • Deeper report: $29 / competitor_listing_gap_report; use only when the first result needs competitor or action-depth.
  • This is an internal Apify flow aid. It is not revenue proof until accounted paid usage appears.

Next report-style Actors

If you already have data from this Actor, these follow-on Actors turn public or user-provided inputs into decision-ready reports. They are optional, capped by maxChargeUsd, and do not make business outcome claims.

Monitor specific Android applications on the Google Play store using a browserless storefront extractor. Designed for recurring watchlists and automated alerts, this tool captures app metadata, install ranges, pricing flags, and public review snippets directly from storefront listings. It uses a lightweight approach to retrieve normalized metrics and returns warnings when fields are missing, partial, or blocked. Teams can use it for mobile market trend checks, ASO baseline reviews, and competitor app update monitoring across regions.

Set up automated daily runs to maintain a storefront baseline for selected competitors or your own apps. The extractor outputs structured JSON containing developer support fields exposed by the listing, updated descriptions, screenshot URLs, and rating distribution data. You can route the dataset via webhooks for internal alerts, such as notifying a product team when a competitor listing changes or an app rating shifts.

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

Input Examples

Example: Single app deep-dive

{
"packageNames": [
"com.example.app"
],
"country": "US"
}

Example: Multi-region comparison

{
"packageNames": [
"com.example.app"
],
"country": "US,JP,DE",
"includeReviews": true
}

Example: Competitor bulk scan

{
"packageNames": [
"com.competitor.a",
"com.competitor.b"
],
"includeVersionHistory": true
}

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.

Next Step: Listing Gap Report

If you need a buyer-ready listing improvement report instead of raw metadata or review rows, run mobile-app-listing-gap-report next. It compares one target app with competitor App Store / Google Play listings, checks buyer-provided seed keyword coverage in public metadata, and returns prioritized listing edits.

Recommended handoff:

{
"targetApp": "APP_STORE_URL_OR_GOOGLE_PLAY_PACKAGE",
"competitorApps": ["COMPETITOR_APP_1", "COMPETITOR_APP_2", "COMPETITOR_APP_3"],
"reportTier": "premium",
"maxChargeUsd": 29,
"dryRun": false
}

Use these follow-on Actors when you want a capped, decision-ready report instead of more raw rows. They use public or user-provided inputs, respect maxChargeUsd, and do not promise rankings, revenue, conversion lifts, or sales outcomes.

If this Actor gave you raw rows or source context, these follow-on report Actors are designed for a small capped paid run. They help make a decision, not just collect more data.

  • App Store & Google Play Listing Gap Report - decide which app listing metadata and positioning gaps to fix before spending on paid acquisition. Entry $9 / listing_snapshot_checklist; premium $29 / competitor_listing_gap_report.
  • App Release Review Regression Report - decide whether a public app release created review regressions that need QA or product action. Entry $9 / release_review_snapshot_report; premium $29 / release_regression_report.

Keep maxChargeUsd equal to the selected tier. Internal links are traffic aids only; real proof requires accounted paid usage.