App Review Monitor — App Store & Google Play Review Tracker
Pricing
from $0.50 / 1,000 review checks
App Review Monitor — App Store & Google Play Review Tracker
Monitor Apple App Store and Google Play Store reviews for changes. Detects new, edited, and deleted reviews. Pay per check + per detected change. Perfect for app reputation monitoring, competitor analysis, and 1-star alerting.
Pricing
from $0.50 / 1,000 review checks
Rating
0.0
(0)
Developer
Mariano Ferreras
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pay-per-event — zero monthly fee, zero subscription. Monitor Apple App Store and Google Play Store reviews for changes. Detects new, edited, and deleted reviews with smart state tracking via Apify KeyValueStore. Pay per check + per detected change. No rental. No idle fees.
What it does
This is an app review monitoring tool that periodically fetches the latest reviews from both the Apple App Store (via RSS JSON feed) and Google Play Store (via SSR HTML parsing), detects changes since the last check, and emits only the changed reviews to the dataset.
Change types detected:
- New — a review ID not seen before
- Edited — same review ID but the content, title, rating, or version changed
- Deleted — a review ID is no longer present in the latest fetch
Run it once to establish a baseline for each app, then schedule it (e.g. every hour, daily, weekly) to monitor continuously. State persists across runs via Apify's built-in KeyValueStore — no external storage needed.
Use cases
- App reputation monitoring — track your app's reviews across both stores in one tool
- 1-star alerting — get notified the moment a new 1-star review drops (use
minRating: 1) - Competitive intelligence — watch competitor apps for new praise, complaints, or feature requests
- Review response tracking — detect when a developer edits a review in response to a bug fix
- Regulatory / compliance monitoring — track apps in regulated industries for emerging sentiment changes
- Agent-powered workflows — wire this into an AI agent: have it summarize what changed across all your monitored apps
Input example
Monitor Facebook on both platforms, plus Instagram on Play Store:
{"apps": [{"appId": "284882215","platform": "appstore","country": "us","language": "en","label": "Facebook (iOS)"},{"appId": "com.facebook.katana","platform": "playstore","language": "en","label": "Facebook (Android)"},{"appId": "com.instagram.android","platform": "playstore","language": "en","label": "Instagram (Android)"}],"maxReviewsPerApp": 100,"minRating": 2,"webhookUrl": "https://hooks.example.com/review-alerts"}
| Field | Type | Default | Description |
|---|---|---|---|
apps | array | required | One or more apps to monitor. Each entry: appId (string), platform ("appstore" | "playstore"), country (App Store only, default "us"), language (default "en"), label (optional, appears in output) |
maxReviewsPerApp | integer | 200 | Max reviews to fetch per app per run |
minRating | integer | none | Only alert on reviews at or below this rating (1–5). E.g. 2 = alert on 1★ and 2★ only |
webhookUrl | string | none | POST changed reviews (new/edited) to this URL |
webhookSecret | string | none | Bearer token for webhook auth |
useResidentialProxy | boolean | false | Upgrade to residential proxies if needed |
Finding app IDs
- App Store (iOS): Find your app's ID in its App Store URL. E.g.
apps.apple.com/us/app/facebook/id284882215→ ID is284882215. - Play Store (Android): The package name is in the URL. E.g.
play.google.com/store/apps/details?id=com.facebook.katana→ ID iscom.facebook.katana.
Output example
[{"changeType": "new","reviewId": "14338093308","rating": 5,"title": "Happy Thursday","text": "GM","author": "spicy and dicey","date": "2026-07-23T04:40:43-07:00","version": "570.0.0","helpfulVotes": 0,"platform": "appstore","appId": "284882215","label": "Facebook (iOS)","checkedAt": "2026-07-24T10:00:00.000Z","previousRating": null,"previousHash": null}]
| Field | Type | Notes |
|---|---|---|
changeType | string | "new", "edited", or "deleted" |
reviewId | string | Unique review identifier |
rating | integer | 1–5 star rating |
title | string | Review title |
text | string | Full review body text |
author | string | Reviewer display name |
date | string | ISO 8601 date of the review |
version | string|null | App version at time of review |
helpfulVotes | integer | Number of helpful votes |
platform | string | "appstore" or "playstore" |
appId | string | The app ID or package name |
label | string|null | Human-readable label from input |
checkedAt | string | ISO timestamp of when we checked |
previousRating | integer|null | Previous rating (only on "edited") |
previousHash | string|null | Previous content hash (only on "edited") |
Pricing
This actor uses pay-per-event pricing. You are never charged for failed requests or quarantined results.
| Event | Price | Description |
|---|---|---|
review-checked | — | Charged once per app per run, covers fetch cost |
review-changed | — | Charged once per detected new or edited review |
apify-actor-start | platform-managed | Standard platform startup event |
The review-changed event is only triggered when a review actually differs from the previous check. Deleted reviews are detected but not charged.
Scheduling
App Review Monitor is designed to be run on a schedule. Create a schedule in Apify Console (e.g. hourly, daily) and the actor will automatically compare against the previous run's stored state.
To monitor many apps, batch them into a single run using the apps input array. This is more efficient than one schedule per app.
How it works
Apple App Store: Fetches the RSS JSON feed at https://itunes.apple.com/{country}/rss/customerreviews/id={appId}/sortBy=mostRecent/json. No proxy or browser needed. Paginates up to your maxReviewsPerApp limit. Apple returns at most ~50 reviews per request, so the practical limit per fetch is ~500 reviews.
Google Play Store: Fetches the SSR HTML page and extracts the embedded review data from the AF_initDataCallback payload. No proxy or browser needed for moderate volume. The initial page load typically returns the most recent ~20 reviews.
State management: Each app's previous review set is stored in a named KVS keyed by SHA-256(appId+platform). Only the minimum data needed for diffing is stored (review ID → hash + rating).
Use with AI agents (MCP)
This actor is available as a tool for AI assistants via the Apify MCP server. Agents can monitor app reviews directly — no Apify console needed.
MCP setup
{"mcpServers": {"apify": {"command": "npx","args": ["mcp-remote","https://mcp.apify.com?tools=mfapitools/app-review-monitor","--header","Authorization: Bearer <YOUR_API_TOKEN>"]}}}
Example agent prompts
- "Monitor Facebook reviews on both App Store and Google Play. Alert me on any 1-star reviews"
- "Check Instagram Play Store reviews for anything new since yesterday"
- "What's the sentiment trend for our app this week?"
Limitations
- Apple RSS caps at ~50 reviews per request — the feed is limited by Apple. If your app gets many reviews, you may miss some between runs. Recommended schedule: every few hours for active apps.
- Google Play only returns ~20 reviews on initial page — the SSR HTML only embeds a limited number of reviews. Full pagination is not available via plain HTTP (the Play Store API requires Play Integrity attestation).
- First run is always a baseline — the first check of any app shows all fetched reviews as "new". Schedule the second run to see only changes.
- No login-gated data — this actor only fetches public review data. No App Store Connect or Google Play Console access.
- Google Play parsing is fragile — relies on the internal
AF_initDataCallbackJSON structure, which Google may change without notice. The fixture test catches breakage. - Public data only — only reviews visible to the public on each store's public pages.
Changelog
See ./CHANGELOG.md.