App Store & Google Play Scraper: Reviews, Ranks & Versions avatar

App Store & Google Play Scraper: Reviews, Ranks & Versions

Pricing

from $0.08 / 1,000 reviews

Go to Apify Store
App Store & Google Play Scraper: Reviews, Ranks & Versions

App Store & Google Play Scraper: Reviews, Ranks & Versions

App Store + Google Play in one run: app details, reviews with filters, top charts & category ranks, version history, privacy/data safety, topic insights and new-since-last-run diffs. Pay per result, no start fee.

Pricing

from $0.08 / 1,000 reviews

Rating

0.0

(0)

Developer

Jeremy Lam

Jeremy Lam

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

App Store & Google Play Scraper — Reviews, Top Charts, Ranks & Version History (with change monitoring)

App Intel covers the Apple App Store (iPhone, iPad and Mac apps) and Google Play in one run. Give it app IDs, bundle or package names, store URLs, developer pages or plain search terms. You get back:

  • 📱 App details for each store and country: rating with a ★ histogram, rating count, installs, price and in-app purchases, version and release notes, version history, size, age rating, App Store privacy labels / Google Play data safety, permissions, developer contact, screenshots, similar apps, App Store events and editorial features.
  • 💬 Reviews with real filters: sort, star rating, date range, keywords, minimum length, helpful votes, developer reply and app version. Each review carries topic tags (crashes, pricing, ads, login …) and a sentiment score.
  • 🏆 Top charts and chart ranks: top free / paid / grossing (plus App Store new and iPad charts) for any category and country. You can also look up where each app ranks.
  • 🧠 Free insights record per app: rating mix, top complaint topics with example quotes, complaint and praise phrases, average rating by version, and developer reply rate.
  • 🔔 What changed since the last run: new reviews, edited or answered reviews, new versions, price, rating and IAP changes, rank moves, and apps entering or leaving charts. Put it on a schedule and receive only the changes.

Pay per result: $0.08 per 1,000 apps, reviews or chart rows. No start fee, no subscription. Every source is public: no login, no API key, no cookies.


Why this one

App IntelTypical App Store / Play scraper
StoresApp Store + Google Play in one run, with automatic matching of the same app across storesOne store per Actor
InputID, bundle/package, store URL, developer URL, search term, apple: / google: prefixesUsually only an ID or URL
CountriesAny number per run (up to all 175 App Store storefronts). If a storefront sells a separate local app (e.g. TikTok JP), its local twin is foundOne country per run
Review filtersStars, from/to date (or "30 days"), keywords, min length, min helpful votes, developer replied or not, app version, sortOften only sort and max items. Users report filters being ignored
App Store depthNewest and most-helpful feeds merged (≈1,000 per storefront), plus fan-out across countries500 or fewer, and runs often stop early
Version historyApp Store: last 25 releases with notes. Google Play: built from what each run observes, and the "Varies with device" version is resolved from reviewsRare
Ranks & chartsTop free / paid / grossing / new by category, rank lookup for your apps, and rank moves since the last runSeparate Actor, $0.80–$2 per 1,000 rows
InsightsTopic tags, sentiment and an insights summary per app at no extra cost, deterministic, no AI bill—
MonitoringBuilt-in diff: new / changed / unchanged / removed for apps, reviews and chart rows, with previous values—
Price$0.08 / 1,000, no start fee$0.10–$15 / 1,000, often with start fees

Quick start

Reviews and details for two apps on both stores (US + UK):

{ "apps": ["Duolingo", "com.spotify.music"], "countries": ["us", "gb"], "maxReviewsPerApp": 200 }

Only 1–2★ reviews about crashes from the last 30 days:

{ "apps": ["https://apps.apple.com/us/app/instagram/id389801252"], "reviewRatings": ["1", "2"], "reviewsFrom": "30 days", "reviewKeywords": ["crash", "freeze", "bug"], "maxReviewsPerApp": 1000 }

Top charts by category in several countries:

{ "charts": ["apple:topFree", "apple:topGrossing:6014", "google:topGrossing:GAME"], "countries": ["us", "de", "jp"], "chartDepth": 100 }

Daily competitor monitor (schedule it, get only what's new):

{ "apps": ["Headspace", "Calm"], "countries": ["us"], "maxReviewsPerApp": 300, "includeChartRanks": true, "outputMode": "changes", "monitorKey": "meditation-competitors" }

All apps from one developer (King on the App Store, Microsoft on Google Play):

{ "apps": ["https://apps.apple.com/us/developer/king/id526656015", "https://play.google.com/store/apps/dev?id=6720847872553662727"], "maxReviewsPerApp": 0 }

Accepted inputs (apps)

You typeMeans
https://apps.apple.com/gb/app/spotify/id324684580That App Store app (URL country is used if you set no countries)
324684580 or id324684580App Store ID (iPhone, iPad or Mac)
https://play.google.com/store/apps/details?id=com.whatsappThat Google Play app
com.spotify.musicGoogle Play package or iOS bundle ID, tried on both stores
https://apps.apple.com/us/developer/…/id526656015, https://play.google.com/store/apps/dev?id=…Every app of that developer (maxAppsPerDeveloper)
meditation appSearch: top maxResultsPerSearch results on each store, with searchRank
apple:…, google:…Limit that line to one store and skip counterpart matching

Output

The dataset mixes four flat item types. Filter on type, or open the ready-made views: Apps, Reviews, Changes since last run, Version history, Top charts, Review insights.

Each run also writes an OUTPUT record to its key-value store. It holds what each input resolved to, inputs that matched nothing, status per app and country (ok, not_available or error, with the reason), chart status, notes, totals per type, charged counts, HTTP stats and duration. A failure in one store or country never sinks the rest of the run.

Monitoring: "what changed since last time"

Every run saves a compact memory in a named key-value store (app-intel-monitor by default), keyed by your input (or by monitorKey). The next run marks each item:

  • Apps: new, unchanged or changed, plus changedFields, previous values and events. Events: newVersion, priceChange, ratingChange, iapChange, listingUpdate (title, subtitle, description), privacyUpdate, installsMilestone, contentRatingChange, categoryChange, adsChange. Counters and ranks always show deltas and never count as a "change" on their own, so reruns have zero false positives.
  • Reviews: new, unchanged, or changed with developerReplied / edited.
  • Chart rows: new / reEntered, rankUp / rankDown with the delta, and removed (dropped out). Removal is only reported for charts that were fully fetched.

Set Output to Only new or changes and schedule the Actor. You then pay only for the new or changed items it outputs. If a run hits your spending limit, items that were not delivered are not marked as seen, so the next run delivers them.

Pricing

EventPrice
App record (one app × one store × one country)$0.08 / 1,000
Review$0.08 / 1,000
Chart entry$0.08 / 1,000
Insights summaries, "removed from chart" notices, OUTPUT summaryfree
Start feenone

Examples: 10,000 reviews cost $0.80. A daily monitor of 5 apps × 2 countries with about 50 new reviews a day costs under $0.15 a month. Set Maximum cost per run in the run options and the Actor stops cleanly at that budget, never above it.

Use with AI agents (MCP)

Items are flat JSON with stable field names, which suits LLM tools. Add the Actor to the Apify MCP server and ask, for example, "Compare 1-star complaints about Duolingo and Babbel in the US and Germany this month." The free insights items give an agent the summary without reading every review.

Limits & FAQ

  • How many App Store reviews? Apple's public feed serves 500 reviews per storefront and sort order, and it lags a day or two. App Intel merges the newest and most-helpful feeds (appleReviewDepth, about 1,000 per storefront) and can fan out across countries. Apple does not publish developer responses or reviews older than that on any public endpoint. Tools that claim more use Apple's private web-player API with a scraped token, which we avoid on purpose.
  • Google Play reviews? Tens of thousands per app (5,000 in about 20 s in our tests). Reviews are per language, not per country, so us and gb share one English stream. The star filter runs on Google's side, so pulling "only 1★" is fast.
  • Google Play version history? Google publishes only the current version. App Intel records every version it observes from run to run (versionHistorySource: "observed"), and when the store says "Varies with device" it fills latestVersionInReviews from the newest reviews.
  • App not sold in a country? It is reported in OUTPUT as not_available. For App Store search-type inputs, the same developer's local app is used if one exists (noted in OUTPUT).
  • Short run timeout? App Intel watches the run's timeout and wraps up shortly before it, so you keep everything collected so far plus OUTPUT and the monitoring state. The run ends as SUCCEEDED with OUTPUT.stoppedEarly: "timeout" instead of TIMED-OUT, and the next run picks up what was missed.
  • Proxy? Not needed for normal use. For very large runs you can add one under Advanced.
  • Topics in my language? Rules cover English, Spanish, German, French, Portuguese, Italian, Japanese, Korean and Chinese. They are deterministic keyword rules, not AI: free, fast and repeatable.
  • Is it legal? It reads only public store pages and Apple's official iTunes Search/RSS endpoints, and stores no logins. Review text and user names are personal data in some jurisdictions, so process them in line with the GDPR/CCPA and the stores' terms.

Found a bug or missing field? Open an issue on the Issues tab. We read every one.