App Store & Google Play Monitor: Versions, Ratings, Prices
Under maintenancePricing
Pay per event
App Store & Google Play Monitor: Versions, Ratings, Prices
Under maintenanceTrack any iOS or Android app across countries: version, release notes, rating, ratings count, price and installs. Changes mode returns only new versions, rating moves and price changes. No login, no reviews.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Bryan Masias
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Track any iOS or Android app across countries. Get one clean record per app with version, release notes, rating, ratings count, price and installs, or schedule it daily in changes mode to get only what is new: new versions, rating moves, price changes and apps that disappear from a store.
Both stores come out in one schema. No login, no reviews, no developer names or contacts.
What it does
- Reads the App Store through Apple's public lookup API, in batches of 50 apps per call.
- Reads the public Google Play app page, with
hlandglset to your language and country. - Normalizes both into the same record, so one table holds your iOS and Android apps.
- In changes mode, compares each run with the last one and returns only the differences.
Use cases
- Competitor tracking: know the day a rival ships a release, changes its price or loses rating.
- Release monitoring: watch your own apps in every country you sell in, with the release notes.
- ASO and market research: follow ratings, ratings counts and install ranges over time.
- AI agents: three input fields, a flat output, and you pay only for apps that were read.
Input
{"apps": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580", "com.spotify.music"],"countries": ["us", "gb"],"mode": "changes"}
| Field | Default | What it does |
|---|---|---|
apps | required | App Store URL or numeric id, Google Play URL or package name. The store is detected per entry. Up to 500. |
countries | ["us"] | 2-letter country codes. Each app is checked in each country. Up to 20. |
mode | changes | changes returns only what changed; snapshot returns every app in full. |
monitorId | from apps + countries | Name of the saved state. Use one per watch list. |
language | en | Language of texts such as release notes and category. |
minRatingDelta | 0.05 | Smallest rating move that is reported. |
minRatingsCountDeltaPct | 1 | Smallest change in the number of ratings that is reported, in percent. |
includeReleaseNotes | true | Add the "What's new" text. |
maxConcurrency | 2 | Play pages loaded at once (1 to 4). |
Duplicates, mixed formats and invalid entries are cleaned up; invalid entries are listed in the run summary.
Output
In snapshot mode, one record per app and country:
{"type": "snapshot","store": "app_store","appId": "324684580","bundleId": "com.spotify.client","country": "us","title": "Spotify: Music and Podcasts","url": "https://apps.apple.com/us/app/id324684580","category": "Music","price": 0,"currency": "USD","rating": 4.77,"ratingsCount": 42776956,"currentVersionRating": 4.77,"currentVersionRatingsCount": 42776956,"installsRange": null,"version": "9.1.94","versionReleasedAt": "2026-10-23T17:59:53Z","releaseNotes": "We're always making changes and improvements to Spotify...","contentRating": "12+","minOsVersion": "16.1","sizeBytes": 325112832,"checkedAt": "2026-10-26T12:00:00.000Z"}
On Google Play, installsRange holds text such as "1B+", currentVersionRating and
sizeBytes are null, and version is null for apps whose version "varies with device".
Changes mode
The first run returns one FIRST_SEEN item per app and country, with the full snapshot. Later
runs return only changes:
{"type": "change","changeType": "VERSION_RELEASED","store": "google_play","appId": "com.spotify.music","country": "us","title": "Spotify: Music and Podcasts","url": "https://play.google.com/store/apps/details?id=com.spotify.music","field": "version","previous": "9.1.90","current": "9.1.94","releaseNotes": "Bug fixes and improvements.","detectedAt": "2026-10-26T12:00:00.000Z","monitorId": "competitors-us"}
changeType | When |
|---|---|
FIRST_SEEN | The first time an app is checked in a country. Free. |
VERSION_RELEASED | A new version, or the same version with a new release date. On Play, apps that vary by device are tracked by date. |
RATING_CHANGED | The rating moved at least minRatingDelta since it was last reported. |
RATINGS_COUNT_CHANGED | The number of ratings moved at least minRatingsCountDeltaPct percent. |
PRICE_CHANGED | The price or currency changed, including free to paid. |
INSTALLS_RANGE_CHANGED | The Play installs range moved, e.g. 5M+ to 10M+. |
APP_UNAVAILABLE | The app was missing two runs in a row, so a one-off empty answer never raises an alarm. |
APP_AVAILABLE_AGAIN | An unavailable app is back. |
Google Play shows the same version, ratings count and installs in every country, so those changes are reported once per app, not once per country. Ratings and prices are per country.
The state is saved in a key-value store named app-store-monitor-state in your own Apify account.
Two runs with the same monitorId never overlap. A run summary (checked, changes by type, not
found, blocked, invalid) is saved in the OUTPUT record.
Example run
The prefilled input runs in about a minute and costs a few cents at most. Snapshot mode returns one record per app and country. Switch to "changes" mode for alerts once you have a schedule.
Input:
{"apps": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580","com.spotify.music"],"countries": ["us"],"mode": "snapshot"}
First result (long text shortened):
{"type": "snapshot","store": "app_store","appId": "324684580","country": "us","title": "Spotify: Music and Podcasts","category": "Music","price": 0,"currency": "USD","rating": 4.77,"ratingsCount": 42804731,"version": "9.1.94","versionReleasedAt": "2026-10-23T17:59:53Z","checkedAt": "2026-10-29T03:33:27.745Z"}
Pricing
Pay per event:
| Event | Price | When |
|---|---|---|
app-checked | $0.002 | One app in one country, read successfully. |
change-detected | $0.005 | One change returned in changes mode. FIRST_SEEN is free. |
Apps that are not found, blocked or unreadable are never charged. Watching 50 apps in one country every day costs about $3 a month plus the changes you get.
Data policy
Public data only, no login. The output has no reviews, no images and no developer names, emails or addresses; emails and phone numbers in release notes are masked. Requests are polite: App Store lookups stay around Apple's 20 calls per minute, Google Play pages at most 2 per second with a plain user agent that names this Actor. A blocked page is skipped and never retried, and if more than 5% of Play pages are blocked, Play checks stop for that run.
You define the legal basis for your use of the data.
Not affiliated with, endorsed by or sponsored by Apple or Google. App Store is a trademark of Apple Inc. Google Play is a trademark of Google LLC.
FAQ
Where do I find an app id? On the App Store it is the number after id in the app URL. On
Google Play it is the id= value in the app URL, such as com.spotify.music.
Why is the Play rating different from the App Store rating? They are separate stores with separate users. The Play rating also differs by country.
Why did I get VERSION_RELEASED with the same version? The store shows a new release date
for the same version number, which usually means a re-submitted build.
Does it return reviews? No. Reviews carry personal data, so this Actor leaves them out.
How do I watch two lists separately? Give each its own monitorId.