App Store & Google Play Scraper: Reviews, Ranks & Versions
Pricing
from $0.08 / 1,000 reviews
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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 Intel | Typical App Store / Play scraper | |
|---|---|---|
| Stores | App Store + Google Play in one run, with automatic matching of the same app across stores | One store per Actor |
| Input | ID, bundle/package, store URL, developer URL, search term, apple: / google: prefixes | Usually only an ID or URL |
| Countries | Any 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 found | One country per run |
| Review filters | Stars, from/to date (or "30 days"), keywords, min length, min helpful votes, developer replied or not, app version, sort | Often only sort and max items. Users report filters being ignored |
| App Store depth | Newest and most-helpful feeds merged (≈1,000 per storefront), plus fan-out across countries | 500 or fewer, and runs often stop early |
| Version history | App Store: last 25 releases with notes. Google Play: built from what each run observes, and the "Varies with device" version is resolved from reviews | Rare |
| Ranks & charts | Top free / paid / grossing / new by category, rank lookup for your apps, and rank moves since the last run | Separate Actor, $0.80–$2 per 1,000 rows |
| Insights | Topic tags, sentiment and an insights summary per app at no extra cost, deterministic, no AI bill | — |
| Monitoring | Built-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 type | Means |
|---|---|
https://apps.apple.com/gb/app/spotify/id324684580 | That App Store app (URL country is used if you set no countries) |
324684580 or id324684580 | App Store ID (iPhone, iPad or Mac) |
https://play.google.com/store/apps/details?id=com.whatsapp | That Google Play app |
com.spotify.music | Google 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 app | Search: 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,unchangedorchanged, pluschangedFields,previousvalues andevents. Events:newVersion,priceChange,ratingChange,iapChange,listingUpdate(title, subtitle, description),privacyUpdate,installsMilestone,contentRatingChange,categoryChange,adsChange. Counters and ranks always showdeltasand never count as a "change" on their own, so reruns have zero false positives. - Reviews:
new,unchanged, orchangedwithdeveloperReplied/edited. - Chart rows:
new/reEntered,rankUp/rankDownwith the delta, andremoved(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
| Event | Price |
|---|---|
| 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 summary | free |
| Start fee | none |
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
usandgbshare 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 fillslatestVersionInReviewsfrom 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.