App Store & Google Play Scraper - ASO Ranks & Ratings Monitor avatar

App Store & Google Play Scraper - ASO Ranks & Ratings Monitor

Pricing

from $2.00 / 1,000 app checkeds

Go to Apify Store
App Store & Google Play Scraper - ASO Ranks & Ratings Monitor

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

Ivora Tools

Maintained by Community

Actor 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

StoreSource
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 PlayGoogle 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 as app-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 like chartPosition:topfree/Music with delta = 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%).
  • keywordRank (charged as keyword-rank): trackedApps (rank, previousRank, rankChange), bestTrackedRank, topResults, newInTop and droppedFromTop.
  • review (Google Play, charged as review): rating, text, date, app version, thumbs-up count, developer reply and reply date. userName is null unless includeReviewerNames is 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 lastUpdated changes.
  • 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)

EventPrice
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 stateStoreName values 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

  1. Fill in the input and click Save as a new task (one task per client or competitor set is a good pattern).
  2. In Schedules, create a schedule (for example every day at 08:00 in your time zone) and add the task.
  3. 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}/items and 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.

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.