App Review AI Analyzer: Your App Store & Play Reviews
Pricing
Pay per event
App Review AI Analyzer: Your App Store & Play Reviews
Upload your own App Store and Google Play reviews (CSV or JSON) or connect the Google Play Developer API for your own Android apps, and get AI labels for bugs, pricing, billing, feature requests and churn, with trends by app version.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Reliable Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
App Review Analyzer with AI Labels for Your App Store and Google Play Reviews
This app review analyzer turns your own App Store and Google Play reviews into a clear list of what users complain about and ask for. Upload a reviews file (CSV or JSON) for any of your apps, or connect the official Google Play Developer API for Android apps you manage. Every review gets labels such as bug or crash, pricing complaint, subscription or billing issue, feature request, ads complaint and churn intent, plus a severity score. Every app also gets a summary with label counts, trends by app version, month and country, the most requested features and the most severe reviews.
The Actor does not scrape app stores. It only reads data you bring yourself, or data the official Google Play Developer API returns for your own apps with your own service account.
Who it's for
- Product managers who want to see which release broke something and what users keep asking for.
- App developers and indie studios who don't have time to read hundreds of reviews after every update.
- Growth and monetization teams watching for paywall, pricing and billing pain before it shows up in churn.
- Agencies and consultants analysing review exports that their clients share with them.
Where the reviews come from
| Source | What you provide | What you get |
|---|---|---|
| Reviews file | A CSV, JSON or JSON Lines file: upload it, give a direct link, pick a record in one of your Apify key-value stores, or paste the reviews as JSON | Every row with a rating and text, up to 10,000 per run |
| Google Play Developer API | Package name of your app plus the JSON key of a service account you invited in Play Console | Reviews created or edited in the last 7 days only (a Google limit) |
Getting older Google Play reviews: the Google Play Developer API only returns reviews from about the last week. For your full history, download the reviews export from Play Console (Download reports, Reviews) and upload that CSV here. The Actor reads Play Console's export format, including its UTF-16 encoding and column names, as is.
App Store reviews: there is no App Store API mode. Analyse your iPhone or iPad app's reviews from a file: copy your reviews out of App Store Connect (Ratings and Reviews) into a spreadsheet, or take an export from the review tool you already use, save it as CSV or JSON, and upload it. Apple has no one-click review export in App Store Connect, so a spreadsheet with the columns below is the simplest way.
File format
Column names are matched automatically and are not case sensitive. A row needs a rating (1 to 5) and text. The other columns are optional but make the trends more useful.
| Field | Accepted column names (examples) |
|---|---|
| rating | rating, star rating, stars, score |
| text | text, review text, review, body, content, comment |
| date | date, review submit date and time, created date, createdAt, timestamp (ISO dates, 10/31/2026, 31.10.2026, Oct 31, 2026 or Unix time) |
| version | version, app version name, appVersion |
| country | country, territory, storefront |
| title | title, review title |
| app | app, app name, package name, bundle id (one summary per app) |
| store | store, platform (ios, android, App Store, Google Play) |
| other | language, helpful votes, developer reply text |
Comma, semicolon, tab and pipe separated files work. Rows that cannot be used are skipped and counted in one error row that says why, for example "3 rows skipped (1 missing rating, 1 date not readable, 1 rating not a number from 1 to 5)".
What you get
| Field | What it is |
|---|---|
store, appId, appName | apple, google or import, and the app the review belongs to |
country, language | Country or territory and language, when the source provides them |
rating | Star rating, 1 to 5 |
title, text | Review title and review text, shortened to 500 characters by default |
date | When the review was posted or last edited (UTC) |
version | App version the review was written for |
helpfulVotes, developerReplied | Helpful votes and whether you replied, when the source provides them |
labels | AI labels the review clearly matches (probability 0.7 or higher) |
labelScores | Probability for each of the 12 labels, 0 to 1, so you can set your own cut off |
severity, severityLevel, severityConfidence | How serious the problem is: 0 means nothing is wrong, 1 means critical. Levels are none, minor, degraded, broken, critical |
The 12 labels are always the same, so results are comparable across apps and over time:
bug_crash, performance, pricing_complaint, subscription_billing, feature_request, ux_design, customer_support, ads_complaint, privacy_concern, praise, churn_intent, competitor_mentioned
A review can have several labels at once. "Love it but please add dark mode" is both praise and feature_request.
The app summary
After the reviews of each app, the Actor adds one row with itemType set to appSummary. It is also saved in the run's key-value store as SUMMARY-<store>-<appId>. It contains:
- Average rating and star distribution
labelCountsandlabelShare(share of AI labeled reviews with each label)trendByVersion,trendByMonthandtrendByCountry: review count, average rating, label counts and average severity per version, month and countrytopFeatureRequests: reviews labeled as feature requests, most helpful first, with date, version, rating and a short quotemostSevereReviews: the reviews with the highest severity, with date, version, rating and a short quote
All of these numbers are computed from the reviews themselves, so you can always trace a count back to the reviews behind it.
How to run it
With a file
- Export your reviews as CSV or JSON, for example the Play Console reviews export, App Store reviews copied from App Store Connect into a spreadsheet, or an export from your support tool.
- Upload it in Reviews file, or paste a direct link in Reviews file URL.
- Optional: set App name for the file if the file has no app column, and Only reviews since to skip older reviews.
- Start the run. Reviews show up in the Reviews tab, summaries are in the same dataset.
With the Google Play Developer API (your own Android apps only)
- In Google Cloud create a service account and a JSON key, then invite the service account's email in Play Console (Users and permissions) with access to your app.
- Paste the JSON key and add the package name, for example
com.example.app, in Your Google Play apps. - Start the run. The key is a secret input: it is encrypted by Apify, used only to call Google's API during your run, and never written to the output.
You can combine both modes in one run.
Example output
These examples come from a test run on a file of invented reviews for a fictional app.
{"itemType": "review","store": "import","appId": "DemoFit (fictional test app)","appName": "DemoFit (fictional test app)","rating": 1,"title": "Cancelling","text": "Cancelled my subscription today. Too many bugs lately, switching to another tracker.","date": "2026-10-23T00:00:00+00:00","version": "4.2.0","country": "gb","language": null,"helpfulVotes": 0,"developerReplied": null,"labels": ["bug_crash","subscription_billing","churn_intent"],"labelScores": {"bug_crash": 0.86,"performance": 0.07,"pricing_complaint": 0.05,"subscription_billing": 0.96,"feature_request": 0.07,"ux_design": 0.14,"customer_support": 0.02,"ads_complaint": 0.02,"privacy_concern": 0.06,"praise": 0.01,"churn_intent": 0.99,"competitor_mentioned": 0.11},"severity": 0.562,"severityLevel": "degraded","severityConfidence": 0.79}
A shortened summary row from the same run:
{"itemType": "appSummary","store": "import","appId": "DemoFit (fictional test app)","appName": "DemoFit (fictional test app)","source": "import","reviewsCollected": 50,"reviewsAiLabeled": 50,"avgRating": 3.24,"avgSeverity": 0.355,"labelCounts": {"praise": 22,"bug_crash": 10,"subscription_billing": 8,"feature_request": 7,"ux_design": 6,"performance": 4},"trendByVersion": [{"key": "4.2.0","reviews": 15,"avgRating": 2.67,"avgSeverity": 0.483},{"key": "4.1.3","reviews": 15,"avgRating": 3.33,"avgSeverity": 0.317}],"topFeatureRequests": [{"country": "us","rating": 4,"date": "2026-10-07T00:00:00+00:00","version": "4.1.3","quote": "Love it. Could you add swimming as a workout type?"}],"mostSevereReviews": [{"country": "de","rating": 1,"date": "2026-09-02T00:00:00+00:00","version": "4.0.2","quote": "All my data disappeared after changing phones. Backup did not work."}]}
How to use the app review analyzer via API
You can run the Actor in the Apify Console, or call it from your own code through the Apify API. The API tab of this Actor has ready-to-copy examples for the JavaScript and Python API clients, the Apify CLI, plain HTTP and the OpenAPI definition. To use it from an AI assistant or agent, connect the Apify MCP server and add this Actor as a tool.
Send reviews inline in the reviews field, or a file link in reviewsFileUrl, start a run, and read the results from the run's default dataset as JSON, CSV or Excel. You can also schedule runs in Apify, for example a weekly run with the official API mode and Only reviews since set to 7 days.
Pricing
You pay per result:
- Review: charged once for every review saved to your dataset.
- AI labeled review: charged once for every review that got its labels and severity score. Turn AI labels off and this charge disappears.
Error rows, skipped file rows, summary rows and duplicate reviews are never charged. The example reviews filled in on the input form are a free demo (marked demo: true). If you set a maximum cost for the run, the Actor stops cleanly when it is reached.
FAQ
Does it scrape the App Store or Google Play? No. Earlier versions read public store pages. That path has been removed. The Actor now only analyses reviews you upload, or reviews that the official Google Play Developer API returns for your own apps with your own service account. Links to app store, Apple or Google pages are refused as file URLs. Every address, including each redirect, is normalized and checked before anything is requested, so a link that redirects to such a page is stopped without a request to that site. Use a normal web address of your own file, for example from your cloud storage, or upload the file.
Can I analyse a competitor's reviews? Only if you have the right to use that data, for example a dataset you licensed. The Google Play API mode only works for apps your service account has access to.
Why does the Google Play API mode return so few reviews? Google's reply-to-reviews API only returns reviews created or edited in the last 7 days, and only reviews with text. For older reviews, upload the Play Console reviews export instead.
Can I connect my App Store Connect API key? No. For App Store apps the Actor works from a file only. Upload your reviews as CSV or JSON as described above.
Is using my Google Play service account with this Actor allowed? Google's API documentation describes using the reply-to-reviews API from your existing customer support tools, and the Google APIs Terms cover others acting on your behalf. The Actor uses your key only during your run, never writes it to the output or to any other storage, and uses the data for nothing else. Apify keeps the run input, with the key encrypted, for your account's data retention period, so delete the run if you want it gone sooner. Use a separate service account with access only to the apps you want to analyse, so you can remove it at any time.
What personal data does it return? None on purpose. Reviewer names, nicknames and store review IDs are not output and review text is shortened. Review text can still mention people, so treat the output with care. Privacy: the Actor runs on Apify, which processes the data as our processor. Review text is sent to an AI service provider (a sub-processor bound by a data processing agreement with standard contractual clauses) only to compute the labels and is not kept after the run. Results stay in your own Apify storage.
Why does a review have no labels at all?
Either none of the 12 labels clearly fits (short reviews like "ok" often end up here), or AI labels were turned off. Check labelScores to see how close each label came.
How accurate are the labels?
They are a fast first pass, not a human reading. The obvious cases (crashes, billing problems, praise, ads) are labeled reliably, and borderline reviews show up with middle probabilities in labelScores. Spot check a sample before you report numbers to others. Labels work best in English; other languages are labeled too, with a little more noise.
What happens if my file has a problem? You get an error row that explains it, for example an empty file, JSON that cannot be parsed, or a CSV without a rating column, and you are not charged for it.
Disclaimer
Not affiliated with, endorsed or sponsored by Apple or Google. App Store and App Store Connect are trademarks of Apple Inc. Google Play is a trademark of Google LLC.
About Reliable Tools
Reliable Tools builds focused Actors that do one job well and tell you exactly what you pay for. See all our Actors at apify.com/reliable_tools.