App Store & Google Play Reviews Scraper avatar

App Store & Google Play Reviews Scraper

Pricing

from $0.15 / 1,000 review scrapeds

Go to Apify Store
App Store & Google Play Reviews Scraper

App Store & Google Play Reviews Scraper

Scrape App Store and Google Play reviews in one run. Unified schema, pagination, date filter, CSV/JSON export. $0.15 per 1,000 reviews.

Pricing

from $0.15 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

evanatlasx

evanatlasx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

Scrape public user reviews from the Apple App Store and Google Play in one run, with one unified output format. Built for app-review monitoring, competitor research, sentiment analysis and product feedback mining.

Why this scraper

  • Real pagination on both stores. Google Play reviews are fetched page by page with continuation tokens, so you can collect thousands of reviews per app. On the App Store we combine the "most recent" and "most helpful" public feeds to go past the usual 500-review limit (up to ~1,000 per app and country).
  • One schema for both stores. Every review has the same fields, so you can merge iOS and Android feedback without any post-processing.
  • No duplicates. Reviews are deduplicated by store + review id.
  • Date filter. Use sinceDate to get only fresh reviews, perfect for daily or weekly monitoring.
  • Robust. Network errors are retried with exponential backoff, requests are rate-limited politely, and invalid apps are logged and skipped instead of failing the whole run.
  • No login, no cookies, no API keys. Only public data is collected.

Input

FieldTypeDefaultDescription
storeboth | appstore | googleplaybothWhich store(s) to scrape.
appsarray of strings–App Store ids (310633997), Google Play package names (com.whatsapp), iOS bundle ids (with store: appstore) or store URLs.
countrystringusTwo-letter storefront country code.
languagestringenTwo-letter language code.
maxReviewsinteger500Maximum reviews per app.
sortnewest | relevant | ratingnewestFetch order.
sinceDateISO date–Only return reviews posted on or after this date.

How apps entries are routed:

  • https://apps.apple.com/us/app/whatsapp-messenger/id310633997 → App Store (country taken from the URL)
  • https://play.google.com/store/apps/details?id=com.whatsapp&gl=us → Google Play (country taken from gl)
  • 310633997 → App Store
  • com.whatsapp → Google Play (or an iOS bundle id lookup when store is appstore)

Example input

{
"store": "both",
"apps": ["310633997", "com.whatsapp", "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"],
"country": "us",
"language": "en",
"maxReviews": 1000,
"sort": "newest",
"sinceDate": "2025-01-01"
}

Output

Each review is saved as one dataset item:

{
"store": "googleplay",
"appId": "com.spotify.music",
"reviewId": "3501ac36-26ef-4534-93fd-40813dc76e4c",
"userName": "Mike T.",
"rating": 5,
"title": null,
"text": "The best music app you can use...",
"date": "2026-09-08T16:47:12.008Z",
"appVersion": "9.1.78.2218",
"developerReply": null,
"developerReplyDate": null,
"thumbsUp": 2,
"country": "us",
"lang": "en",
"url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=3501ac36-26ef-4534-93fd-40813dc76e4c"
}
FieldNotes
storeappstore or googleplay
appIdNumeric App Store id or Google Play package name
reviewIdStore review id (unique per store)
rating1–5 stars
titleReview title (App Store only; null on Google Play)
dateISO 8601 timestamp
appVersionApp version the review was written for, when available
developerReply, developerReplyDateDeveloper response (Google Play; not exposed by the public App Store feed)
thumbsUpHelpful votes
urlLink to the review (Google Play) or the app's reviews page (App Store)

A run summary (reviews per app, timing and any skipped apps with the reason) is stored in the default key-value store under RUN_SUMMARY.

Pricing

This Actor is prepared for pay-per-event pricing: you are charged per review saved to the dataset (review-scraped event). Runs that return no reviews are not charged.

Performance

Typical speed measured on popular apps (US storefront):

  • Google Play: ~1,000 reviews in about 10 seconds
  • App Store: ~1,000 reviews in 30–45 seconds

Limitations

  • App Store volume: Apple's public review feed returns at most 500 reviews per sort order. This Actor merges two sort orders, giving up to about 1,000 unique reviews per app and country. For more, run the Actor for several countries.
  • App Store sinceDate: for very popular apps that get more than 500 reviews per month, older reviews in the date window may be out of reach.
  • App Store sort: rating: Apple's feed has no rating order, so the Actor collects the available reviews and sorts them by rating itself.
  • App Store developer replies are not available in the public feed (developerReply is always null).
  • Google Play language: Google Play returns reviews written in the requested language, so the same app can return different reviews for different language values.
  • Only publicly visible reviews are collected. Stores can change their public endpoints at any time.

FAQ

What happens with an invalid app id? The app is skipped, an error is logged with the reason (e.g. "App Store app 999999999999 was not found in storefront us"), and the remaining apps are still scraped. No empty records are saved.

Do I need an Apple or Google account? No. The Actor only uses public, unauthenticated pages and feeds.