App Store & Google Play Reviews with daily tracking
Pricing
from $0.50 / 1,000 reviews
App Store & Google Play Reviews with daily tracking
Customer reviews of any iOS or Android app as clean JSON: rating, title, text excerpt, version, date and developer reply, with country, language, rating and date filters. Schedule it daily with 'Only new reviews' on. Reads Apple's and Google Play's public product pages, no logins.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
DataForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
App Reviews: App Store & Google Play, with daily new-review tracking
Name the apps you care about and get a featured sample of customer reviews from the App Store and Google Play as clean, consistent JSON: stars, title, a text excerpt, app version, date, helpful votes and the developer's reply. Each run also tells you which reviews are new since the last run.
- Both stores, one schema: paste App Store or Google Play URLs; the Actor detects the store. Every record has the same fields whichever store it came from.
- Filters that matter: countries (App Store storefronts), languages (Google Play), a star range (for example only 1- and 2-star reviews), and "posted within the last N days".
- Change tracking built in: every record has
changeStatus(neworexisting) andfirstSeenAt. Turn on Only new reviews and schedule the Actor daily to get just the new reviews. - Limited samples: both stores' public product pages show selected reviews, with no paging or newest-first guarantee.
onlyNewtracks reviews that enter this sample, not every newly posted review. One wrong app never fails the run. - No logins, no proxies, no browser: only the stores' public endpoints, with polite rate limits and a descriptive User-Agent. Reviewer names, profile links and avatars are never output.
Use cases
- Product and support teams: a daily digest of new 1- and 2-star reviews across your apps, countries and languages, routed to Slack or a ticketing tool.
- Competitive analysis: watch competitors' reviews for feature requests, bugs and pricing complaints; compare ratings per version.
- App store optimisation (ASO) and marketing: track how a release changes sentiment; find quotable 5-star reviews.
- Market research and data science: build review datasets per app and country for classification or trend analysis (text excerpts and ratings; follow
urlfor full text). - Agencies and dashboards: feed many clients' apps into one pipeline with stable ids and
onlyNewincrements.
How to use it
- Add apps to Apps, one per line. Any of these forms works:
https://apps.apple.com/us/app/whatsapp-messenger/id310633997orappstore:310633997orappstore:net.whatsapp.WhatsApp(bundle id)https://play.google.com/store/apps/details?id=com.whatsapporplay:com.whatsapp
- Pick Countries for App Store storefronts (each country is a separate feed) and Languages for Google Play reviews.
- Add filters if you want them: star range, posted within N days, max reviews per app.
- For daily monitoring, schedule the Actor with Only new reviews turned on.
Input example
{"apps": ["https://apps.apple.com/us/app/whatsapp-messenger/id310633997","https://play.google.com/store/apps/details?id=com.whatsapp"],"countries": ["us", "gb"],"languages": ["en"],"minRating": 1,"maxRating": 2,"postedWithinDays": 30,"onlyNew": true,"maxReviewsPerApp": 200}
| Field | Default | What it does |
|---|---|---|
apps | WhatsApp on both stores | Store URLs, appstore:<id>, appstore:<bundle id>, play:<package>, a bare id or a bare package name. |
countries | ["us"] | App Store storefronts, one feed each. Google Play gets the first one as its region. Clear the list to use each App Store URL's own storefront. |
languages | ["en"] | Google Play review languages, one feed each. App Store reviews are not filtered by language. |
minRating / maxRating | 1 / 5 | Keeps reviews in this star range. Equal values select one star value. |
postedWithinDays | any | Keeps reviews posted in the last N days within the available sample. |
onlyNew | false | Outputs only reviews earlier runs with the same apps, countries, languages and filters have not seen. |
maxReviewsPerApp | 200 | At most N matching reviews from the page sample per app and country (App Store) or language (Google Play). |
Output
Every dataset item has the same shape, whichever store it came from:
{"id": "play:com.whatsapp:d40bb75a-d1a5-44b3-863d-c8624445efe9","store": "play","appId": "com.whatsapp","appName": "WhatsApp Messenger","developer": "WhatsApp LLC","country": "us","language": "en","reviewId": "d40bb75a-d1a5-44b3-863d-c8624445efe9","rating": 1,"title": null,"textExcerpt": "The most useless app I've encountered since apps were invented. I have it on my phone, and whenever I try to link it to another device - PC or tablet, using their app - the account is placed under review, during which time I can't use it, without explanation. There is no customer support as such, just what seems to be a beta version of 1st-generation AI. Don't waste your time.","textTruncated": false,"appVersion": "2.26.33.74","helpfulCount": 13,"postedAt": "2026-08-28T20:40:15.000Z","developerReply": null,"url": "https://play.google.com/store/apps/details?id=com.whatsapp&reviewId=d40bb75a-d1a5-44b3-863d-c8624445efe9","appUrl": "https://play.google.com/store/apps/details?id=com.whatsapp&hl=en&gl=us","firstSeenAt": "2026-10-04T07:16:24.000Z","changeStatus": "new","scrapedAt": "2026-10-04T07:16:24.509Z"}
An App Store record looks the same, with "store": "appstore", "appId": "310633997", an id like appstore:310633997:us:14621029193, a title, appVersion: null, helpfulCount: null, language: null, developerReply: null (not provided by this parser) and url pointing to the app's reviews page (Apple has no per-review links).
Field notes:
idis stable across runs, so you can use it as a primary key. App Store ids include the storefront because the same review id can appear in several storefront feeds.textExcerptis the first 400 characters of the review as plain text;textTruncatedtells you when it was cut. The Actor never outputs full review text; followurl.helpfulCountis Google Play's thumbs-up count, or null on App Store pages.developerReplyis set on Google Play when the developer answered; it has the same excerpt rule.countryis the App Store storefront or the Google Play region sent with the request;languageis the Google Play review language (hl).
The dataset's Overview view shows the key columns as a table; Developer replies puts review and reply side by side. Export to JSON, CSV, Excel, or use the API or integrations.
Run summary (OUTPUT record)
Each run writes a summary to the default key-value store under the key OUTPUT:
The summary includes totals, per-feed status/counts, errors, HTTP request count and charge-limit status. pagesEmpty counts product pages with no featured reviews. A robots-denied or unavailable page is reported as a feed error, while other apps continue. There are no robots exceptions.
Change tracking: how it works
- History is kept in a named key-value store,
app-reviews-state, in your account, keyed by a hash of your apps + countries + languages + filters. ChangingonlyNewormaxReviewsPerAppkeeps the history. Changing apps, countries, languages or filters starts a new one. - The first run treats every review as
new. Later runs mark a reviewnewonly if it wasn't seen before. - If a run stops early because it hit your maximum cost per run, reviews you didn't receive stay
newfor the next run. Nothing is lost. - If a feed fails to load , its history is left untouched, so the reviews come out as
newon the next successful run.
Pricing
Pay-per-event: you pay only for the reviews you receive (event review, one per dataset item).
Suggested price: $0.50 per 1,000 reviews. The owner sets the actual price. With Only new reviews on, a daily run usually costs a fraction of a cent, because you pay only for new reviews. Set a maximum cost per run in Apify and the Actor stops cleanly when it reaches it.
FAQ
Which apps are supported? Any app on the App Store or Google Play. The App Store is read per storefront (country); Google Play per language.
Why only a few reviews? Both stores' public product pages embed a selected sample: typically a handful on Apple and about 20 on Play. RSS and RPC pagination are excluded because robots.txt disallows them. The actor cannot promise complete history or all daily new reviews. Samples and page formats may change.
Can I get only 1-star reviews from the last week? Yes: minRating: 1, maxRating: 1, postedWithinDays: 7.
Does it include who wrote the review? No. Reviewer names, profile links and avatars are excluded. Legacy includeAuthorName and playSource inputs are ignored and cannot enable personal-data fields or RPC requests.
How fast is it? The default input uses one product page per store plus Apple's metadata lookup; it must finish in under five minutes.
What happens with a wrong app id? You get a warning, an entry in OUTPUT.errors, and the run continues with the other apps. The run is marked failed only if no feed could be fetched.
Does it work with proxies or need login? Neither. Only public, unauthenticated endpoints are used.
Legal
This Actor reads public product pages and Apple's iTunes Lookup API. It obeys robots.txt at run time (including redirect destinations), uses polite limits and a descriptive User-Agent, and never logs in or bypasses access controls. Review text and developer replies are capped at 400 characters with a source link. Reviewer names, profile links and avatars are excluded. See ./LEGAL.md for checked paths, terms and excluded sources.