App Store / Play Store Reviews — Unified ASO Review Feed
Pricing
from $3.00 / 1,000 review results
App Store / Play Store Reviews — Unified ASO Review Feed
Fetch Apple App Store and Google Play reviews for a given app ID or name, normalized to one flat schema per review. No API keys needed.
Pricing
from $3.00 / 1,000 review results
Rating
0.0
(0)
Developer
Dennis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Security
Limited permissionsShare
Fetch Apple App Store and Google Play reviews for a given app (by app name or store ID) and get them normalized into one flat schema per review. Ideal for ASO monitoring, sentiment comparison, and feeding review intelligence into AI agents.
When should an AI agent use this?
- "Get Apple and Google reviews for Spotify in one dataset."
- "Compare sentiment for my iOS and Android apps side-by-side."
- "Pull the newest surfaced reviews (rating + text) for Apple app ID 324684580."
- "Monitor Play Store reviews by package ID com.spotify.music."
- "Fetch French reviews for an app to check local feedback."
- "Feed a review-watchdog or LLM trend analysis with fresh cross-store data."
What this Actor does
This actor combines both major app stores into a single, predictable JSON feed:
- Apple App Store — reads the public product page and extracts the reviews
Apple server-renders into its
serialized-server-dataJSON. No tokens and no login; the same data a visitor sees. - Google Play — reads the public, non-authenticated app details page and extracts the visible review cards. No login and no API key required.
- Normalized output — both sources are flattened into the same record shape, so you never have to write merge logic yourself.
- App-name resolution — if you know the app's name but not its store IDs, the actor resolves the Apple track ID and the Android package ID for you. Explicit store IDs always win when you provide them.
- Resilience — Apple returns the reviews surfaced on the product page for the
requested storefront, newest first, up to
maxReviews; Play reads the visible review cards on the details page.maxReviewscaps both. One failing source never aborts the other.
Input
| Field | Type | Description |
|---|---|---|
appStoreId | string | Apple numeric store ID (e.g. 324684580). Optional if appName is given. |
playStoreAppId | string | Google Play package ID (e.g. com.spotify.music). Optional if appName is given. |
appName | string | App name used to resolve missing store IDs. Optional if the IDs are provided. |
country | string | Two-letter country code, default us. |
language | string | Two-letter language code, default en. |
maxReviews | integer | Maximum reviews per source, default 50, max 500. |
platforms | array | Which sources to run. Default ["app-store", "play-store"]; allowed values app-store and play-store. |
At least one of appStoreId, playStoreAppId, or appName must be provided.
Example inputs
{"appName": "Spotify","maxReviews": 25}
{"appStoreId": "324684580","platforms": ["app-store"],"maxReviews": 10}
{"playStoreAppId": "com.spotify.music","platforms": ["play-store"],"maxReviews": 10}
Output
A flat JSON object per review. Same fields for both platforms.
| Field | Description |
|---|---|
id | Stable composite ID: platform:sourceId:reviewId. |
platform | app-store or play-store. |
appId | Apple track ID or Android package ID. |
appName | App title as published in the respective store (where available). |
author | Reviewer pseudonym. |
rating | Star rating as a number (1-5). |
title | Review title (Apple only; empty for Play). |
text | Review body text. |
version | App version the review refers to (not available on the Apple SSR page or Play). |
date | Review date when available (Apple ISO timestamp, Play text like April 10, 2026). |
country | Country used for the fetch. |
sourceUrl | Direct URL to the source review/store page. |
reviewId | Source review identifier. |
scrapedAt | ISO timestamp when the actor fetched the record. |
{"id": "app-store:324684580:11994640656","platform": "app-store","appId": "324684580","appName": "Spotify: Music and Podcasts","author": "l.lacx","rating": 5,"title": "Favorite app ever","text": "I personally love this app...","date": "2024-11-26T17:10:59.000Z","country": "us","sourceUrl": "https://apps.apple.com/us/app/id324684580","reviewId": "11994640656","scrapedAt": "2026-10-23T06:40:00Z"}
Use cases
- Unified ASO monitoring — track both stores from one scheduled run.
- Cross-platform sentiment comparison — join rating and text on the same
appNameto compare iOS vs Android perception. - Review dataset for AI agents — a clean per-review feed that fits easily in an LLM context window.
- Feedback triage pipelines — pass recent reviews (text, version, date, rating) into issue trackers or dashboards.
- Localization checks — set
country/languageto pull storefront-specific feedback.
Limitations
- Google Play's public page only renders a handful of review cards server-side;
the actor returns those visible reviews (capped by
maxReviews). Full Play pagination is not part of this MVP. - Apple's product page server-renders only the reviews it chooses to surface
(typically 8 per storefront), not the full review history. There is no public
pagination and no "all reviews" endpoint without App Store Connect credentials.
The actor sorts those surfaced reviews newest first and caps them at
maxReviews; the app version is not included in this data. - Play ratings are read from the
aria-labelof the star row; if the label format changes, the parser falls back safely to0.
Pricing
Pay-Per-Event.
apify-actor-start: $0.00005 (default start event)review-result: $0.003 per delivered review
Legal
- Apple: the actor reads the public, non-authenticated App Store product page (the same HTML a visitor loads) and parses the server-rendered review JSON. No login, no App Store Connect credentials and no consent wall bypass.
- Google Play: the actor reads the public, non-authenticated app details page (the same HTML a visitor loads). No login, no consent wall bypass.
- Only pseudonymous reviewer names are collected. No email addresses, device identifiers, or other personal data are fetched or stored.
FAQ
Q: Can I use an app name instead of IDs?
A: Yes. appName resolves the Apple track ID via the iTunes Search API and
the Android package ID via a Play Store search. IDs, when provided, are always
used directly.
Q: What happens if one source has no reviews or is empty?
A: That source yields no records and the run continues with the other one.
The exit status stays successful.
Q: Can I run only one store?
A: Yes, set platforms to ["app-store"] or ["play-store"].
Q: Are there any API keys?
A: No. Both sources are public endpoints.
Related Actors
This actor is the only portfolio actor that combines Apple and Google Play
reviews in one normalized dataset. For other application-level data, see the
portfolio overview in PORTFOLIO_STATUS.md.
Keywords
app store reviews, play store reviews, aso, sentiment, review monitoring, apple reviews, google play reviews, unified feed, app feedback, ASO review scraper, app ratings.
Changelog
0.1.3
- Apple source replaced: the customer-reviews RSS endpoint silently returns an
empty feed since May 2026, so the actor now reads the reviews Apple
server-renders on the public product page (
serialized-server-data). - Apple returns the surfaced reviews for the requested storefront, sorted newest first; the app version is no longer available for Apple reviews.
0.1.0
- Initial release: Apple App Store RSS + Google Play details page, app-name
resolution,
maxReviews,platforms, normalized output schema, pay-per-event pricing (review-result), dataset view, icon, tests.