App Store & Google Play Reviews Scraper - Both Stores, One Run
Pricing
$0.30 / 1,000 review scrapeds
App Store & Google Play Reviews Scraper - Both Stores, One Run
Scrape App Store AND Google Play reviews in ONE run - the only Actor covering both stores together, so you can compare iOS vs Android feedback without merging two exports. Free insights report: complaint keywords, rating trends by version. $0.30 per 1,000 reviews.
Pricing
$0.30 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Gezgin Data
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Scrape App Store and Google Play reviews in a single run. Every other review scraper covers one store at a time, so comparing iOS against Android means running two tools and merging the exports yourself. This one pulls both, normalises them into identical fields, and puts them side by side.
Scrape several countries in one run too: list us, jp, br, de and every app is pulled in
every market, each in its local language, with a country-by-country comparison in the report.
On top of the raw reviews you get a built-in insights report at no extra cost — no LLM, no API key: rating trends by app version, top complaint and praise keywords (works across languages, including Japanese, Chinese, Korean, Spanish and Portuguese), feature-request signals, developer reply rates, suspicious spike detection, and a cross-app comparison. $0.30 per 1,000 reviews, and it runs on the free Apify plan.
中文用户: 页面下方有完整的中文说明(适合出海开发者)。
App review insights report: complaint analysis, version trends, and cross-app comparison
The built-in insights report turns raw reviews into answers: a complaint and praise keyword analysis, rating trends by app version, feature-request signals, suspicious-spike detection, and a side-by-side cross-app comparison when you scrape more than one app.
What it does
- Scrapes reviews from Google Play and/or the Apple App Store (pure HTTP — no browser, free-plan compatible), in one or many countries.
- Normalises both sources into a unified schema (same fields for both stores).
- Computes insights (pure Python analytics):
- Rating distribution (1–5 stars)
- Rating trend by month
- Rating by app version — the killer developer insight: which release tanked or improved the score
- Top complaint keywords from 1–2★ reviews
- Top praise keywords from 4–5★ reviews
- Feature-request signal detection in 12 languages ("please add", "fehlt", "por favor adicionem", "追加してほしい", "希望", etc.)
- Developer reply rate (Google Play): share of reviews answered, share of 1–2★ reviews answered, median reply time — benchmark your support against competitors
- Country comparison (multi-country runs): the same app's rating, reply rate and top complaint per market, weakest market first
- Suspicious spike months (possible fake/incentivised burst of reviews)
- Cross-app comparison table (when scraping multiple apps)
- Writes the insights as JSON (
INSIGHTSKVS key) and as a clean HTML report (REPORTKVS key).
Use cases
- ASO (App Store Optimisation): understand what users love and hate to improve your store listing.
- Competitive analysis: compare your app's sentiment against competitors across both stores.
- Release quality monitoring: see exactly which version caused a rating drop.
- Feature roadmap: surface the most-requested features from user reviews.
- Review moderation / support: identify complaint clusters to address in the next release.
Input
| Field | Type | Default | Description |
|---|---|---|---|
googlePlayAppIds | string[] | ["com.whatsapp"] | Package names or Play Store URLs |
appleAppIds | string[] | [] | Numeric Apple IDs or App Store URLs |
countries | string[] | ["us"] | Store country codes — every app is scraped in every country |
country | string | "us" | Single country, used only when countries is empty (legacy) |
language | string | "" | Leave empty for each country's main language (jp → ja, br → pt); set e.g. "en" to force one language |
maxReviewsPerApp | integer | 200 | Max reviews per app (Apple caps at ~500 via RSS) |
generateInsights | boolean | true | Generate the insights report |
maxRunTimeSecs | integer | 3000 | Internal run deadline |
At least one of googlePlayAppIds or appleAppIds must be non-empty.
Example input (JSON)
{"googlePlayAppIds": ["com.whatsapp", "com.spotify.music"],"appleAppIds": ["310633997"],"countries": ["us", "jp", "br"],"maxReviewsPerApp": 200,"generateInsights": true}
Output
Dataset — unified review records
Each record has the same fields regardless of the source store:
{"source": "googlePlay","appId": "com.whatsapp","appName": "WhatsApp Messenger","reviewId": "gp:AbcDef123...","userName": "JohnDoe","rating": 5,"title": null,"text": "Works perfectly, love the encryption.","appVersion": "2.24.10.73","thumbsUp": 12,"date": "2024-05-03T14:22:00+00:00","replyContent": null,"replyDate": null,"country": "us","language": "en"}
Note:
titleis null for Google Play (no review titles).thumbsUpis null for Apple App Store.replyContent/replyDateare null for Apple (not available in the public RSS feed).
KVS: INSIGHTS (JSON)
{"apps": {"googlePlay:com.whatsapp": {"appName": "WhatsApp Messenger","averageRating": 4.21,"storeAverageRating": 4.4,"storeRatingCount": 185000000,"ratingDistribution": { "5": {"count": 31, "pct": 62.0}, ... },"ratingByVersion": {"2.24.10.73": {"reviewCount": 18, "avgRating": 4.50},"2.24.9.81": {"reviewCount": 12, "avgRating": 3.25}},"topComplaintTerms": [{"term": "crashes", "count": 8}, ...],"topPraiseTerms": [{"term": "easy use", "count": 14}, ...],"featureRequestSignals": {"count": 6, "snippets": ["please add voice messages..."]},"suspiciousSpikeMonths": [],...}},"comparison": [{"appName": "WhatsApp Messenger", "store": "googlePlay", "averageRating": 4.21, ...}]}
KVS: REPORT (HTML)
A standalone HTML page with colour-coded rating cards, star distribution bars, version rating table, keyword pills, feature request snippets, trend table, and comparison table. Open directly in a browser or embed in a dashboard.
Google Play field mapping
| google-play-scraper field | Actor field |
|---|---|
title (app metadata) | appName |
score (app metadata) | storeAverageRating |
ratings | storeRatingCount |
version | currentVersion (metadata) |
reviewId | reviewId |
userName | userName |
content | text |
score (review) | rating |
thumbsUpCount | thumbsUp |
reviewCreatedVersion | appVersion |
at (datetime) | date (ISO 8601) |
replyContent | replyContent |
repliedAt | replyDate (ISO 8601) |
Apple App Store field mapping
| iTunes endpoint / field | Actor field |
|---|---|
Lookup trackName | appName |
Lookup averageUserRating | storeAverageRating |
Lookup userRatingCount | storeRatingCount |
Lookup version | currentVersion (metadata) |
RSS id.label | reviewId |
RSS author.name.label | userName |
RSS title.label | title |
RSS content.label | text |
RSS im:rating.label | rating |
RSS im:version.label | appVersion |
RSS updated.label | date |
| n/a | thumbsUp = null |
| n/a | replyContent = null |
Pricing
Pay per review scraped ($0.0003/review = $0.30 per 1,000), no per-run start fee. The insights report is always included free. Cheaper than most App Store review scrapers — and the only one that also returns a built-in analysis report. A run with 200 Google Play reviews + 200 Apple reviews = $0.12 total.
Limitations
- Apple App Store RSS caps at ~500 reviews per app (10 pages × 50).
- Apple RSS does not provide developer replies or thumbs-up counts.
- Reviews are fetched in "most recent" order; historical bulk export is not supported by the public endpoints.
- Language/country filter on Apple applies to the store region; Apple RSS returns mixed languages.
- Developer reply rates are Google Play only — Apple does not publish replies in its public feed.
- Keyword analysis for Chinese and Japanese uses character pairs rather than a full dictionary, so a few split-word fragments can appear. Thai reviews are scraped, but Thai keyword results are unreliable (no spaces between words).
- In multi-country runs the
INSIGHTSkeys include the country (googlePlay:com.whatsapp:jp); single-country runs keep the plaingooglePlay:com.whatsappformat.
Technical notes
- Pure HTTP — no browser, no Playwright. Runs on Apify free plan (512 MB memory is sufficient).
google-play-scraperPyPI package handles Google Play pagination and anti-bot headers.- Apple App Store uses the public iTunes RSS feed + lookup API (no authentication).
- Insights computed in pure Python (no LLM, no paid API).
中文说明
一次运行,同时抓取 App Store 和 Google Play、多个国家/地区的用户评论。 两个商店的评论会被整理成相同的字段,可以直接对比 iOS 和 Android 用户的反馈,也可以对比不同市场。适合出海开发者、产品经理和 ASO 团队。
为什么用它:
- 按条计费,无需订阅:每 1,000 条评论 0.30 美元,没有月费,也没有每次运行的启动费。偶尔分析一次竞品,也只需为实际抓取的评论付费。
- 原始数据,自由使用:结果可导出为 JSON、CSV 或 Excel,也可以通过 Apify API 接入你自己的数据流程或 AI 分析。
- 多市场一次搞定:在
countries中填入us、jp、br等多个国家代码,每个 App 会在每个市场分别抓取,并自动使用当地语言。报告会按国家对比评分、开发者回复率和主要差评点,评分最低的市场排在最前。 - 自带分析报告(免费):按版本统计评分(看出是哪个版本拉低了评分)、差评和好评高频词(支持日语、韩语、中文、西班牙语、葡萄牙语等多种语言)、功能需求信号、开发者回复率(Google Play)、异常评论激增检测,以及多款 App 的横向对比。
- 云端运行:无需 API 密钥,无需浏览器,也不用自己配置海外网络环境或代理。Apify 免费套餐即可运行。
适用场景:
- 新版本上线后,监控海外用户的口碑变化
- 对比海外竞品在两个商店的评价
- 从差评中找出崩溃、付费、广告等核心痛点
- 为下一个版本的功能规划收集用户需求
使用方法:
- 在
googlePlayAppIds中填入包名(如com.whatsapp)或 Google Play 链接 - 在
appleAppIds中填入数字 ID(如310633997)或 App Store 链接 - 在
countries中填入要覆盖的市场(如us、jp、br),每行一个。language留空即可按国家自动选择语言 - 运行结束后,在 Dataset 中查看评论,在 Key-value store 的
REPORT中查看 HTML 报告
需要注意:
- App Store 公开接口每个 App、每个国家最多返回约 500 条最新评论。
- 开发者回复率仅适用于 Google Play(App Store 的公开接口不提供开发者回复)。
- 中文和日语的关键词按双字词统计,偶尔会出现被拆开的词语片段。
有问题或功能建议?欢迎在 Issues 页面留言,中英文均可。