Before you build an app, the most useful research is free and public: what people hate about the apps that already exist. It sits in the 1- and 2-star reviews on the App Store and Google Play.
The problem is getting it out. The stores show a few reviews at a time, Apple and Google format them differently, and copy-pasting 2,000 reviews into a chat window is not a plan.
This post shows a simple workflow:
- Export reviews from both stores into one CSV (no code needed).
- Give the CSV to an AI model and get back a ranked list of complaints and feature requests.
- Turn that into a short list of product ideas you can actually test.
Step 1: Export the reviews
I'll use the App Store & Google Play Reviews Scraper on Apify. Disclosure: I built it. It takes App Store and Google Play links side by side and returns the same fields for both, which is what makes the AI step easy.
- Open the Actor page and click Try for free. The free Apify plan includes $5 of monthly credit.
- In Apps, paste the store links of the app you want to study, for example both versions of a habit tracker:
https://apps.apple.com/us/app/.../id1234567890https://play.google.com/store/apps/details?id=com.example.app
Plain IDs work too (1234567890, com.example.app).
- In Countries, add one or more markets:
us,gb,de... Reviews are collected separately for each country. - Set Max reviews per app and country, for example
500. - Set Sort by to
newestto see what people complain about now. - Click Start, then download the result as CSV from the Output tab.
Every row looks the same, whichever store it came from:
{
"store": "googlePlay",
"appName": "ChatGPT",
"country": "us",
"rating": 2,
"title": null,
"text": "Keeps logging me out after the last update...",
"date": "2026-10-19T14:18:56",
"appVersion": "1.2026.279",
"thumbsUpCount": 14
}
rating, appVersion and thumbsUpCount are the useful columns: you can filter to low ratings, see which version broke something, and weight complaints by how many people agreed.
Limits to know: Apple only shares the latest 500 reviews per app, country and sort order. To get more from the App Store, add countries or run both sort orders. Google Play has no fixed limit.
Step 2: Keep only the complaints
You don't need 5-star "great app!!" reviews for this. In Google Sheets or Excel, filter rating to 1, 2 and 3. For a popular app, that's usually a few hundred rows, small enough for any AI chat.
Or in Python:
import pandas as pd
df = pd.read_csv("dataset.csv")
bad = df[df["rating"] <= 3].sort_values("thumbsUpCount", ascending=False)
bad[["store", "rating", "appVersion", "thumbsUpCount", "title", "text"]].to_csv("complaints.csv", index=False)
print(len(bad), "complaints saved")
Step 3: Let AI sort them
Upload complaints.csv to Claude or ChatGPT and use a prompt like this:
These are 1-3 star reviews of [APP NAME] from the App Store and Google Play.
1. Group them into themes (bugs, pricing, missing features, UX, support...).
2. For each theme give: number of reviews, total thumbsUpCount, and 2 short quotes.
3. Rank themes by how painful and how common they are.
4. List the top 5 feature requests people explicitly ask for.
5. Note any theme that started after a specific appVersion.
Be concrete. Do not invent reviews that are not in the file.
What you get back is a ranked map of the competitor's weak spots, with real quotes as evidence. The "started after version X" question often finds the best opportunities: users who were happy until an update broke something are actively looking for an alternative.
Step 4: Turn it into ideas
A few patterns that come up again and again:
- "I'd pay for it if..." reviews are direct pricing research.
- The same missing feature across several competitors is a niche worth testing.
- Complaints only from one country (language, payment methods, local content) can mean a local version is wanted.
- "Used to be great" reviews tell you which features users actually valued.
Run the same export for 3-5 competing apps and compare the themes side by side. That's an afternoon of work instead of weeks of guessing.
Doing it in code
The official apify-client package runs the same scraper from Python:
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("trendcraft/app-reviews-scraper").call(run_input={
"apps": ["389801252", "com.instagram.android"],
"countries": ["us", "gb"],
"maxReviewsPerApp": 500,
"sort": "newest",
})
reviews = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(len(reviews), "reviews")
Cost, and when you don't need this
Results are priced per review; the current price is on the Actor's Pricing tab. At the time of writing it is $0.25 per 1,000 reviews, so a 2,000-review study costs about fifty cents.
If you only need Google Play reviews and are comfortable with Python, the free google-play-scraper library works well. The Actor is useful when you want both stores in one format, several countries in one run, a scheduled daily export, or no code at all.
Questions or a missing field? Open an issue on the Actor's Issues tab.
This post was drafted with AI assistance; input names and output fields were checked against the Actor itself.
Top comments (7)
Mining the 1 and 2 star reviews of existing apps before building is cheap research, and putting both stores into one CSV with the same fields is what makes it usable. I would also look at the reviews that mention a workaround, since those show what people already pay for with their time. Do you read the complaints per app version or as one pile?
Good point on the workaround reviews, that's a great filter. The actor keeps an
appVersionfield for every review (both stores), so I usually do both: one pile to find the recurring themes, then group by version to see whether a complaint started after a specific release or got fixed. A sudden spike of 1-star reviews on one version is often the clearest signal.Grouping by version makes sense, mostly because a spike lines up with a release date. Do you also pull the developer replies, to see whether the complaints stop after a fix ships?
Ha, good one. Yes for Google Play, every review comes with replyText and replyDate, so you can actually see if the 1-stars calm down after the dev posts the classic "fixed in the next update". App Store is the annoying one: Apple's public feed doesn't include developer responses at all, so there I just watch how ratings move on the next appVersion. Not perfect, but it usually tells the story.
Out of curiosity, have you seen a fix actually change the tone of reviews? In my experience people often keep complaining for a week or two anyway 😅
That makes sense. A fix that is visible in the replies is a good proof point on its own, even if the tone takes a couple of weeks to shift. Do you see the tone change faster on Google Play, where the replies are visible, than on the App Store?
Honestly, I haven't measured that yet. That's a good test though: since the actor exports both stores with dates, you could compare the average rating in the 2–3 weeks after a reply on Google Play vs. the App Store. If I run it on a few apps, I'll share what I find. Thanks for the great questions!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.