App Store & Google Play Scraper - ASO Ranks & Ratings Monitor
Pricing
from $2.00 / 1,000 app checkeds
App Store & Google Play Scraper - ASO Ranks & Ratings Monitor
Monitor iOS and Android apps: rating, rating count, installs, price, version, release notes, App Store chart positions and keyword search ranks. Each run returns the current state plus change rows (field, old, new) since the last run. Optional new Google Play reviews.
Pricing
from $2.00 / 1,000 app checkeds
Rating
0.0
(0)
Developer
Ivora Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
App Store & Google Play Scraper: ASO Ranks, Ratings & Change Monitor
Track your apps and your competitors' apps on both stores in one run:
- Current state per app and country: rating, rating count, installs (Google Play), price, version, release notes, last update, category, content rating, ads and in-app purchases (Play), and App Store chart positions (top 100: Top Free or Top Paid, plus Top Grossing, overall and in the app's category).
- Change rows since the last run (
field,oldValue,newValue,delta), for example: new version, new release notes, price change, rating up or down, rating count jump, installs bucket change, chart position move, title change. - Keyword search ranks: where your apps rank for each keyword in each store and country, the top results, and which apps entered or left the top since the last run.
- New Google Play reviews (optional). Reviewer names are off by default.
Built for ASO freelancers, app marketers, mobile agencies, product managers and investors watching app traction. Schedule it daily and get only what changed.
Sample output
An app row and a keyword-rank row from a real Apify cloud run (Oct 2026), shortened:
[{"type": "app","store": "google_play","appId": "com.spotify.music","country": "gb","rating": 4.2545,"ratingCount": 36447699,"installs": "1,000,000,000+","version": "Varies with device","lastUpdated": "2026-10-07T06:27:03Z","containsAds": true,"changedFields": []},{"type": "keywordRank","store": "apple","keyword": "habit tracker","country": "us","trackedApps": [{"appId": "1438388363", "title": "Habit Tracker", "rank": 1, "previousRank": null}],"topResults": [{"rank": 1, "title": "Habit Tracker", "developer": "InnerGrow", "rating": 4.79}, …]}]
Data sources
| Store | Source |
|---|---|
| App Store (Apple) | Apple's official iTunes Search and Lookup APIs (app data, keyword search) and Apple's official RSS chart feeds (top 100). |
| Google Play | Google Play's public app and search pages. The embedded page data is parsed with the same data paths as the widely used open-source (MIT) google-play-scraper library. Reviews come from the public review list that the Play website itself loads. |
No login, no API keys, normally no proxy.
Input example
{"apps": ["324684580", "https://apps.apple.com/us/app/habit-tracker/id1438388363", "com.spotify.music", "com.habitnow"],"keywords": ["habit tracker", "music streaming"],"countries": ["us", "gb", "de"],"language": "en","monitorMode": true,"checkCharts": true,"includePlayReviews": true,"maxReviewsPerApp": 50}
Apps can be given as an App Store ID or URL, or a Google Play package name or URL. Optional prefixes: apple: and play:. The apps you list are also the apps whose keyword ranks are reported.
Output
There are four row types, each with its own dataset view:
app: the current state of one app in one country (charged asapp-checked):
{"type": "app", "store": "apple", "appId": "1438388363", "country": "us", "title": "Habit Tracker","developer": "InnerGrow", "rating": 4.7918, "ratingCount": 147698, "price": 0.0, "currency": "USD","version": "2.25", "releaseNotes": "- support iOS 27\n- fix bugs ...", "lastUpdated": "2026-10-06T22:46:31Z","genre": "Productivity", "contentRating": "4+", "chartPositions": {},"changesSinceLastRun": 0, "changedFields": [], "firstRun": false, "url": "https://apps.apple.com/us/app/habit-tracker/id1438388363"}
Google Play rows also carry installs ("1,000,000,000+"), minInstalls, installsEstimate (Google's own exact-ish figure), reviewCount, histogram (1-5 stars), containsAds, offersIAP / iapPriceRange and summary.
change(free):{"field": "version", "oldValue": "9.1.86", "newValue": "9.1.88", ...}. Chart moves look likechartPosition:topfree/Musicwithdelta= places gained.- A rating change is reported only when the rating (rounded to 2 decimals) moves by at least
ratingChangeThreshold(default 0.01). - Rating and review counts are reported only when they move by at least
ratingCountChangePct(default 1%).
- A rating change is reported only when the rating (rounded to 2 decimals) moves by at least
keywordRank(charged askeyword-rank):trackedApps(rank, previousRank, rankChange),bestTrackedRank,topResults,newInTopanddroppedFromTop.review(Google Play, charged asreview): rating, text, date, app version, thumbs-up count, developer reply and reply date.userNameis null unlessincludeReviewerNamesis on.error(free): an app that was not found or is not available in a country, or a failed search.
Honest limits
- App Store reviews are not included. Apple's official customer-reviews RSS feed currently returns zero entries for the apps we tested. Getting reviews would require Apple's private web-app API, which we chose not to depend on. Google Play reviews are supported.
- App Store keyword ranks come from Apple's official iTunes Search API. Its order is close to, but not guaranteed identical to, what an iPhone shows for the same search (Apple personalises the App Store and adds Search Ads). Treat ranks as a consistent trend signal.
- Google Play keyword ranks cover the first page of results (about 20-30 apps). An app below that shows
rank: null. - Charts are App Store only (top 100, the limit of Apple's RSS feed). Google Play charts are not supported.
- Google Play parsing depends on the page's embedded data layout, which Google changes a few times a year. The Actor is self-tested daily, and the data paths follow the maintained open-source library.
- Google Play shows the same rating count worldwide, but the rating and texts per country and language. Apps with "Varies with device" have no version number on Play, so version changes show up as
lastUpdatedchanges. - Google Play serves reviews per language, not per country, so each Play app's reviews are fetched once per run (in the first country of your list). Duplicates are never charged.
- Developer replies are published text. They sometimes greet the reviewer by first name even when reviewer names are off.
Pricing (pay per event)
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
| App checked (one app in one country, incl. change rows) | $0.002 |
| Keyword rank (one keyword × store × country) | $0.003 |
| Google Play review | $0.0005 |
Change and error rows are free.
Example: 10 apps × 2 countries + 5 keywords × 2 stores × 2 countries, daily = $0.005 + 20 × $0.002 + 20 × $0.003 = about $0.105 per day (about $3.15 per month).
Tips
- Run it on a schedule (daily is typical). The first run stores a baseline, and every later run reports what changed.
- Use different
stateStoreNamevalues for independent monitors (for example, one per client). - For big runs (hundreds of Play apps), enable Apify Proxy in case Google Play starts rate-limiting.
Daily alerts to Slack or email
- Fill in the input and click Save as a new task (one task per client or competitor set is a good pattern).
- In Schedules, create a schedule (for example every day at 08:00 in your time zone) and add the task.
- In the task's Integrations tab, add the Slack or Gmail integration to get a message when a run finishes,
or a webhook on "Run succeeded" that passes the run to Zapier, Make, n8n or your own endpoint. Those tools can read the rows from
https://api.apify.com/v2/datasets/{defaultDatasetId}/itemsand format them however you like.
Because monitor mode outputs only change rows since the previous run (plus one current-state row per app), every scheduled run's dataset is your alert list. An empty dataset (apart from free summary rows) means nothing changed. Turn on Apify's run-failure notifications too, so you hear about a failed run instead of silence.
Related actors
Part of a small competitor-intelligence suite by the same developer. Same conventions everywhere: pay per event, failed items are never charged, and the monitors return only what changed since the last run.
- Google Trends Scraper & API: interest over time, by region/city, top queries and Trending now for any country.
- Google Ads Transparency Scraper & New Ads Monitor: competitors' Google Search, Display and YouTube ads, with only-new-ads alerts.
- LinkedIn Ad Library Scraper & New Ads Monitor: competitors' LinkedIn ads without login, incl. EU impressions and targeting.
- Bing Ads Library Scraper - Microsoft Ads Monitor (EU): Bing ads from Microsoft's official Ad Library (EU/EEA), with impressions by country.
- ATS Jobs Scraper & Hiring Monitor: new and closed jobs from Greenhouse, Lever, Ashby, Workday and 6 more job boards, by company domain.
- Shopify Store Monitor - Product, Price & Stock Change Scraper: new and removed products, price drops, sales and stock changes in competitor Shopify stores.
- Google Hotels Scraper & Rate Monitor: hotel prices by booking site (Booking.com, Expedia, Agoda, own site) for any dates, with price-change alerts.