App Store & Google Play Reviews Scraper with AI Themes
Pricing
from $0.50 / 1,000 reviews
App Store & Google Play Reviews Scraper with AI Themes
Scrape App Store and Google Play reviews in one run: rating, title, text, author, date, app version and developer reply. Add AI complaint and praise themes per app with shares and quotes. Paste app names or store links.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
Andrey Afanasenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Get the reviews of any app from the App Store and Google Play in one run — stars, title, text, author, date, app version and the developer's reply. Type an app's name and it is found in both stores for you. Turn on AI themes to get a broad summary of the main complaint and praise themes for each store, with how many reviews back each one, the share of 1–2 star ratings and real quotes.
🆓 Free to start: 3 apps a month on the free plan · the first 50 reviews of each app in each store in full · the next 50 shown with their stars, date and version.
🎯 What it does
You give one app per line: a name (Calm), an App Store link or id (https://apps.apple.com/us/app/calm/id571800810), or a Google Play link or package (com.calm.android). A name is matched in both stores; two links on one line pin the pair exactly.
You get one row per review: which store, the app, the stars, the title, the text, the reviewer's public name, the date, the app version it was written on, Google Play's helpful votes and the developer's public reply.
With AI themes on you also get one summary row per app and store — a broad summary of the main complaint themes (each with what to check first) and the main praise themes, with related issues grouped into one theme. Each theme carries how many reviews back it, what share of all reviews that is, how many of them are 1–2 stars, the app versions they name, and up to three verbatim quotes.
What you won't get more than the stores publish. The App Store gives at most 500 reviews per app — App Store rows stop there whatever you ask for. Google Play goes up to 100,000. The App Store does not publish helpful votes or developer replies, and Google Play reviews have no title.
📦 Output sample
There are three kinds of rows, told apart by rowType:
review—store,appName,appId,appUrl,country,position,reviewId,rating,title,text,author,date,appVersion,helpfulCount,developerReply,developerReplyDate,rowStatus,input,note,scrapedAt.theme_summary—store,appName,appId,appUrl,country,storeRating,storeRatingsCount,reviewsAnalysed,averageRating,lowRatingShare,summary,complaintThemes,praiseThemes,input,note,scrapedAt.app_skipped—store,input,skipReason,note,scrapedAt: an app a store does not list, or one the free plan's month left out. Never charged.
A Google Play review of Calm (US store; text shortened, reviewer name changed):
{"rowType": "review","rowStatus": "full","store": "Google Play","appName": "Calm - Sleep, Meditate, Relax","appId": "com.calm.android","appUrl": "https://play.google.com/store/apps/details?id=com.calm.android&gl=US","country": "US","position": 3,"reviewId": "2f436768-3eeb-48b7-b928-e2763ee5f893","rating": 1,"title": null,"text": "This app constantly drains my battery even with background usage switched off…","author": "sleepyreader","date": "2026-10-26T14:02:11.000Z","appVersion": "7.3","helpfulCount": 2,"developerReply": "Thank you for your patience, and we're sorry about the battery drain…","developerReplyDate": "2026-10-26T18:46:02.000Z","input": "Calm","note": null,"scrapedAt": "2026-10-27T13:38:40.512Z"}
A theme summary from the same run (App Store, 300 reviews read; one theme of each list shown, texts shortened):
{"rowType": "theme_summary","store": "App Store","appName": "Calm","storeRating": 4.8,"storeRatingsCount": 1990602,"reviewsAnalysed": 300,"averageRating": 3.63,"lowRatingShare": 30.7,"summary": "Reviewers love the sleep stories and daily meditations. The biggest complaint is that paying subscribers are locked out or shown as free after an update…","complaintThemes": [{"rank": 1,"title": "Paid subscribers locked out or not recognized","kind": "account","insight": "After the 7.x update, long-time subscribers are shown the paywall again.","action": "Investigate the subscription restore flow for purchases made before the 7.x update.","reviews": 21,"shareOfReviews": 7,"lowRatingShare": 90.5,"averageRating": 1.38,"versions": ["7.1", "7.3", "7.2"],"quotes": [{ "text": "Paid for years and now it says I'm on the free plan…", "rating": 1, "date": "2026-10-21T00:00:00.000Z", "appVersion": "7.3" }]}],"praiseThemes": [{ "rank": 1, "title": "Sleep stories and sounds help people sleep", "kind": "content", "reviews": 20, "shareOfReviews": 6.7, "lowRatingShare": 0, "averageRating": 4.9, "versions": ["7.3"], "quotes": [] }]}
In Apify Console the dataset has two views:
| View | What it shows |
|---|---|
| Reviews | store, app, stars, title, review, author, date, app version, helpful votes, developer reply, row status |
| Themes | store, app, reviews analysed, average stars, 1–2 star share, summary, complaint themes, praise themes, store rating |
⚡ Quick start
- Put
Calmin Apps. - Leave Stores on App Store and Google Play and Max reviews per app on 500.
- Tick Complaint and praise themes (AI) if you want the summaries.
- Click Start. A run like this takes about a minute.
🧭 When to use it
- Product and app teams — what users complain about after the latest release, store by store, with the app version.
- Competitor research — the complaints and praise of a rival app in both stores, side by side.
- Customer support and ASO — the reviews without a developer reply on Google Play, the 1–2 star reviews since a date.
- Market research — reviews of many apps in one country's store, or one app in several countries (one run per country).
🛠 Input
| Field | What it does |
|---|---|
| Apps | One app per line: a name, an App Store link or id, a Google Play link or package. Two links on one line pin the pair. Up to 50 apps a run. |
| Stores | Both, App Store only, or Google Play only. |
| Max reviews per app | The most reviews per app in each store. Default 500. Google Play: up to 100,000. The App Store gives at most 500. |
| Complaint and praise themes (AI) | One summary row per app and store: a broad summary of the main complaint and praise themes. Reads up to 300 reviews per summary, in the order you sorted by. |
| Country | Whose store to read — 104 countries both stores serve. |
| Review language | Google Play returns only the reviews written in this language; the App Store returns the country's reviews in any language. Default: the country's main language. |
| Sort by | Newest first, or the store's most-helpful order (Google Play calls it most relevant). |
| Star ratings | Keep only these stars, e.g. 1 and 2 for complaints. |
| Reviews since | Keep only reviews written on or after this date. |
💰 How much does it cost to scrape app reviews?
You pay per result, and nothing for a lookup that found nothing:
- Review — charged per review delivered in full.
- Theme summary — charged per app and store when its themes are written (only with AI themes on).
Filters are applied before you pay: a review that does not pass your stars or date filter is not charged. Reviews shown locked on the free plan are not charged. A theme summary that could not be written is not charged. The price per event for your plan is on the Pricing tab.
🆓 Free vs paid plan
| Free plan | Paid plan | |
|---|---|---|
| Apps a month | 3 | no limit |
| Reviews in full per app in each store | 50 | up to 100,000 (App Store: 500) |
| Next reviews | 50 shown locked (stars, date, version) | — |
| AI themes | yes, on the reviews in full | yes |
🧪 Recipes
Only complaints: Star ratings 1, 2, Sort by Newest first, AI themes on — the themes then read only the complaints.
What changed after a release: Reviews since the release date, Sort by Newest first.
A competitor in both stores: two lines, Calm and Headspace, AI themes on — four summary rows to compare.
Pin an app exactly: https://apps.apple.com/us/app/calm/id571800810 https://play.google.com/store/apps/details?id=com.calm.android on one line.
📡 Live status & storage records
| Record | What it holds |
|---|---|
Live Status (status.html) | Progress while the run works, then what was saved — or why nothing was. |
Run Summary (RUN_SUMMARY) | Per app and store: how it was matched, the store rating, reviews fetched, delivered, shown locked and filtered out, the themes; prices and the stop reason. |
User Message (USER_MESSAGE) | What happened and what to change — on every run that returned nothing, and whenever the App Store's 500 limit applied. |
Free-Plan Limits Applied (FREE_LIMITS_APPLIED) | The free-plan limits that affected the run. |
🤖 Programmatic / API use
curl -X POST "https://api.apify.com/v2/acts/afanasenko~app-reviews-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"apps": ["Calm", "Headspace"], "maxReviewsPerApp": 500, "ratings": ["1", "2"], "complaintThemes": true}'
Filter the rows by rowType: review for reviews, theme_summary for the themes.
💡 Tips & Best Practices
Getting maximum results
- Type the name as the store shows it. If an app is not found, paste its store link.
- For more than 500 App Store reviews, read several countries' stores — each country has its own reviews.
Cost optimization
- Set Max reviews per app to what you will read; the default 500 is enough for themes.
- Use Star ratings instead of filtering afterwards — what does not pass is not charged.
Performance
- A run with one app in both stores takes about a minute with themes, 20–30 seconds without.
Data quality
- The themes are counted from the reviews themselves: every count, share and quote comes from real reviews, and quotes are verbatim.
- The App Store gives the day of a review, not the time.
❓ FAQ
Why do I get only 500 App Store reviews? The App Store publishes at most 500 reviews per app per country. Google Play goes much deeper. The run says so in the log, the status message and the User Message.
How is my app found in the other store? A name is searched in each store and matched to the app whose title fits it. An App Store or Google Play link is read for the app's name and developer, and that name is searched in the other store. The Run Summary says how each app was matched. Two links on one line skip matching altogether.
What does "most helpful" mean on Google Play? Google Play has no most-helpful order; its own "most relevant" order is used.
Are the themes written by AI? The grouping is. The model only says which reviews belong to which theme; every number and quote in the row is computed from those reviews. The themes are broad: related problems are grouped together (for example, the price and what sits behind the paywall), so read them as the main topics reviewers raise, not as a list of every single issue.
In what language are the themes? English, whatever the language of the reviews. Quotes stay in the reviewer's own words.
Do I pay for an app that was not found? No. Nothing is charged for an app a store does not list, or for one the run could not reach.
🔗 Other related actors (same author)
- Instagram Audience Insights — themes and post ideas from Instagram comments.
- Backlink Scraper — backlinks of any website.
- Keyword Search Volume — monthly search volume and keyword ideas.
🛟 Support & feedback
Open the Issues tab with the input you used and what you expected. Ideas are welcome there too.
⚖️ Is it legal to scrape app reviews?
The reviews are public pages of the App Store and Google Play. Reviewers' names are their public display names. Use the data in line with the stores' terms and the privacy laws that apply to you, especially if you store or publish reviewers' names.
📋 Changelog
See the Changelog tab.