App Store / Play Store Reviews — Unified ASO Review Feed avatar

App Store / Play Store Reviews — Unified ASO Review Feed

Pricing

from $3.00 / 1,000 review results

Go to Apify Store
App Store / Play Store Reviews — Unified ASO Review Feed

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

Dennis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Security

Limited permissions

Share

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-data JSON. 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. maxReviews caps both. One failing source never aborts the other.

Input

FieldTypeDescription
appStoreIdstringApple numeric store ID (e.g. 324684580). Optional if appName is given.
playStoreAppIdstringGoogle Play package ID (e.g. com.spotify.music). Optional if appName is given.
appNamestringApp name used to resolve missing store IDs. Optional if the IDs are provided.
countrystringTwo-letter country code, default us.
languagestringTwo-letter language code, default en.
maxReviewsintegerMaximum reviews per source, default 50, max 500.
platformsarrayWhich 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.

FieldDescription
idStable composite ID: platform:sourceId:reviewId.
platformapp-store or play-store.
appIdApple track ID or Android package ID.
appNameApp title as published in the respective store (where available).
authorReviewer pseudonym.
ratingStar rating as a number (1-5).
titleReview title (Apple only; empty for Play).
textReview body text.
versionApp version the review refers to (not available on the Apple SSR page or Play).
dateReview date when available (Apple ISO timestamp, Play text like April 10, 2026).
countryCountry used for the fetch.
sourceUrlDirect URL to the source review/store page.
reviewIdSource review identifier.
scrapedAtISO 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 appName to 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/language to 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-label of the star row; if the label format changes, the parser falls back safely to 0.

Pricing

Pay-Per-Event.

  • apify-actor-start: $0.00005 (default start event)
  • review-result: $0.003 per delivered review
  • 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.

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.