App Store Review Insights avatar

App Store Review Insights

Pricing

from $50.00 / 1,000 insights reports

Go to Apify Store
App Store Review Insights

App Store Review Insights

Turn iOS App Store reviews into insights: rating trends, app-version regression alerts, complaint themes (crashes, login, pricing, ads, bugs...) and the phrases customers repeat. Compare competitors. Official Apple review feed, no login.

Pricing

from $50.00 / 1,000 insights reports

Rating

0.0

(0)

Developer

Nick Na

Nick Na

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Turn iOS App Store reviews into answers. Paste one or more App Store links, pick countries, and get:

  • every written review as a clean, normalized row (rating, title, text, app version, date, helpful votes, theme tags), and
  • a ready-to-share insights report per app: rating trend, app-version regression alerts, the complaint themes that drive 1-2 star reviews, and the exact phrases customers keep repeating, plus a side-by-side competitor comparison.

Data comes from Apple's official public customer-review feed. No login, no cookies, no browser automation, no scraping of App Store web pages.

Who it is for

  • Product managers and mobile teams: catch a bad release fast. The regression detector flags a version whose share of 1-2 star reviews jumps compared with the previous version, and tells you which themes rose (for example "crashes 3% to 25%").
  • App marketers and ASO specialists: see what people praise in their own words ("easy to use", "sleep stories") and what blocks 5-star ratings ("free trial", "customer service").
  • Agencies and consultants tracking competitors: run your client and 2-5 competitors together, per country, and get a comparison showing which app over-indexes on ads, pricing, bugs or support complaints. Schedule it weekly and send the report link to the client.
  • Indie developers: a weekly health check of your app for a few cents.

What you get

OutputWhereWhat is in it
ReviewsDefault datasetOne row per review: appId, appName, country, reviewId, rating, ratingGroup, title, text, version, date, dateUtc, helpfulVotes, totalVotes, themes, sortOrder, appStoreUrl, fetchedAt
App insightsinsights datasetOne record per app: rating distribution, 1-2 star share, App Store rating for context, per-country breakdown, weekly and daily trend, recent-vs-previous trend per country, regressions, themes, top complaint and praise phrases (with an example quote each), keywords, notes and a plain-English summary
Version insightsversions datasetOne record per app version: reviews, average, 1-2 star share, change vs the previous version, z-score, regression or improvement flag, rising themes
Comparisoninsights dataset (recordType: comparison)When you enter 2+ apps: ranking, theme shares per app, themes each app over-indexes on
ReportKey-value store INSIGHTS.html (also INSIGHTS.md, INSIGHTS.json)A readable report with a public link, shown in the run's Output tab. Works in light and dark mode

Problems with individual inputs (an unknown storefront, an app with no reviews, a typo in a link) are listed as recordType: error records and in the report. They never stop the run.

How to use it

  1. Paste App Store links, numeric app IDs (571800810 or id571800810) or bundle IDs (com.calm.calmapp) into Apps.
  2. Pick one or more Countries. Each storefront has its own reviews.
  3. Optionally set Only reviews since (2026-09-01 or 30 days) and Max reviews per app and country.
  4. Click Start. A typical run with 3 apps in 2 countries (3,000 reviews) finishes in about a minute.
  5. Open the Report in the Output tab, or export the datasets as JSON, CSV or Excel, or connect them to Google Sheets, Slack, Make or Zapier with Apify integrations.

Tip: Apple's feed only exposes the most recent 500 reviews per app, country and sort order. For busy apps that can be just a few days. Create a schedule (for example weekly) to build a longer history and get alerted to regressions as they happen.

Input example

{
"apps": [
"https://apps.apple.com/us/app/calm/id571800810",
"https://apps.apple.com/us/app/headspace-sleep-meditation/id493145008"
],
"countries": ["us", "gb"],
"maxReviewsPerCountry": 500,
"sinceDate": "90 days",
"sortBy": "mostRecent",
"compareApps": true,
"dropReviewerNames": true,
"customThemes": { "dark mode": ["dark mode", "night mode"] }
}
FieldDefaultNotes
appsrequiredApp Store URLs, numeric IDs or bundle IDs
countries["us"]Any of the 177 App Store storefront codes. uk is accepted as gb
maxReviewsPerCountry5001-1000. Also caps your cost
sinceDatenoneYYYY-MM-DD or relative (30 days, 6 weeks, 3 months, 1 year)
sortBymostRecentmostRecent, mostHelpful, or both (deduplicated, up to ~1,000 per app and country)
compareAppstrueAdds the comparison when 2+ apps have reviews. No extra charge
dropReviewerNamestrueReviewer nicknames are not saved unless you turn this off. Profile links are never saved
includeAppDetailstrueOne call per app to Apple's public iTunes Lookup API for the app name, store rating and current version
customThemesnoneYour own themes, e.g. {"widgets": ["widget", "widgets"]}
regressionThresholdPct15Percentage-point rise in 1-2 star share that flags a version
regressionMinReviews10Minimum reviews a version needs to be compared
topPhrasesCount10Phrases per list

Output example: one review (illustrative)

{
"appId": "123456789",
"appName": "Example Notes",
"country": "us",
"reviewId": "14690000001",
"rating": 2,
"ratingGroup": "negative",
"title": "Sync broke after the update",
"text": "Since the last update my notes no longer sync between my iPhone and iPad, and it crashed twice today.",
"version": "5.12.1",
"date": "2026-10-22T04:45:30-07:00",
"dateUtc": "2026-10-22T11:45:30Z",
"helpfulVotes": 3,
"totalVotes": 4,
"themes": ["crash", "sync", "update"],
"sortOrder": "mostRecent",
"appStoreUrl": "https://apps.apple.com/us/app/id123456789",
"fetchedAt": "2026-10-23T22:00:48Z"
}

Output example: app insights (shortened)

Real numbers from a test run on 2026-10-23 (US + GB, 1,000 reviews). The app name is hidden here.

{
"recordType": "app",
"appName": "Meditation app B",
"reviewCount": 1000,
"avgRating": 2.29,
"lowStarShare": 63.8,
"storeRating": 4.84,
"topComplaintTheme": "subscription_price",
"regressions": [{
"version": "8.11.4", "comparedTo": "8.9.0", "lowStarShare": 93.5, "lowStarShareDelta": 39.0, "severity": "high",
"reason": "1-2 star share rose from 54.5% (v8.9.0, n=11) to 93.5% (n=31), +39.0 pts, z=2.98; rising themes: bugs / broken features 9.1%→19.4%"
}],
"topComplaintPhrases": [
{"phrase": "free trial", "reviews": 63, "share": 9.9},
{"phrase": "behind a paywall", "reviews": 16, "share": 2.5},
{"phrase": "refused to refund", "reviews": 11, "share": 1.7}
],
"topPraisePhrases": [
{"phrase": "changed my life", "reviews": 11, "share": 4.4},
{"phrase": "highly recommend", "reviews": 9, "share": 3.6}
],
"summary": [
"Average rating in this sample is 2.29★, with 63.8% of reviews at 1-2★ and 25.2% at 4-5★. That is 2.5★ below the overall App Store rating (4.84★, US storefront).",
"US: rating is trending down, from 2.55★ (n=22) in the previous 28 days to 1.65★ (n=20) in the last 28 days (-0.90).",
"Most common complaint theme: subscription / price, mentioned in 48.3% of 1-2★ reviews."
]
}

How the insights are computed

Everything is deterministic: no AI, no sampling, so the same reviews always give the same report and every number can be traced back to rows in the dataset.

  • Themes: keyword rules for crashes/freezes, login, subscription/price, ads, bugs, slow/performance, battery, sync/data loss, customer support and "since the update" complaints, in English plus common Spanish, German, French, Portuguese, Italian and Japanese terms. Add your own with customThemes.
  • Phrases: 2-3 word phrases counted once per review, kept only if they recur and are clearly more common in 1-2 star reviews than in 4-5 star reviews (or the reverse for praise). Brand names and filler words are skipped.
  • Regression detector: each version is compared with the closest earlier version that has enough reviews. It is flagged when the 1-2 star share rises by at least the threshold (default 15 points) and the rise is statistically meaningful (one-sided two-proportion z-test, about 95%). When an app ships many small patch releases, versions are grouped by minor release (8.34.0 + 8.34.1 = 8.34.x).
  • Trends: weekly and daily tables, and a per-country "last N days vs the N days before" comparison using the shortest window (7 to 91 days) with enough reviews.

Pricing

Pay per event. You only pay for results:

EventPrice
Review saved to the dataset$0.20 per 1,000 reviews ($0.0002 each)
Insights report per app$0.05 per app (covers all selected countries)
Actor startApify's standard $0.00005

Free: the competitor comparison, error records, apps with no reviews, and reports built from fewer than 10 reviews.

Examples: one app, one country, 500 reviews = $0.15. Five competitors in two countries, 5,000 reviews = $1.25. A weekly schedule for that = about $5 a month.

The Actor respects the maximum cost you set for a run. It finishes apps one at a time, always keeps enough budget for the report of the app it is working on, and skips the remaining apps instead of going over.

Limits

  • 500 reviews per app, country and sort order. This is Apple's limit (10 pages of 50). sortBy: both merges the most-recent and most-helpful windows for up to about 1,000.
  • Written reviews only. Star-only ratings are not in the feed, so the sample average usually sits below the App Store rating. The report shows both.
  • No developer responses (not included in Apple's feed).
  • iOS App Store only. Google Play is not supported yet.
  • Phrase extraction works for languages that separate words with spaces. Japanese, Chinese, Korean and Thai reviews still count in ratings, trends and themes.
  • Requests are paced to at most one per second to be polite to Apple's servers, so a run takes roughly 1 second per 50 reviews.

FAQ

Is this allowed? The Actor reads Apple's public customer-review RSS feed and the public iTunes Lookup API, which are unauthenticated endpoints Apple provides for RSS feeds and app lookups. It does not log in, does not scrape App Store web pages and does not bypass any protection. Reviewer nicknames are dropped by default and profile links are never stored. You are responsible for how you use the data; check the terms that apply to your use case.

Why does the average differ from the App Store rating? The App Store rating includes millions of star-only ratings. Written reviews skew more negative, which is exactly why they are useful for finding problems.

Why did I get fewer reviews than my limit? The app may have fewer written reviews in that country, the date filter may cut older ones, or Apple's 500-per-sort cap was reached. Each app record has byCountry and notes explaining the coverage.

Does it use AI? No. v1 is deterministic on purpose: reproducible, cheap and auditable.

How do I get alerts? Schedule the Actor and connect the insights dataset to Slack or email with Apify integrations, or check regressions in the app record.

Can I monitor many apps? Yes. Apps are processed one after another; 10 apps in 2 countries at 500 reviews each take about 3.5 minutes.

Changelog

See CHANGELOG.md.