App Store & Google Play Reviews Scraper avatar

App Store & Google Play Reviews Scraper

Pricing

from $0.10 / 1,000 reviews

Go to Apify Store
App Store & Google Play Reviews Scraper

App Store & Google Play Reviews Scraper

App Store and Google Play reviews in one run, same fields for both: rating, title, text, date, app version, likes, developer reply. Mix app links or IDs, many countries, newest or most relevant, date and star filters. 48/48 checked against store pages. $0.10 per 1,000 reviews.

Pricing

from $0.10 / 1,000 reviews

Rating

0.0

(0)

Developer

Brian Gastaldelli

Brian Gastaldelli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

App Store & Google Play Reviews Scraper — both stores, one format

Scrape app reviews from the Apple App Store and Google Play in one run, with the same fields for both stores: rating, title, text, date, app version, likes, developer reply. Paste store links or app ids (mixed), pick countries, and get every review you need for monitoring, research or AI analysis. No login, no browser, no proxy to set up.

Why this Actor

  • Two stores, one dataset. Put the iPhone and the Android version of an app in the same run and get one table, ready for a spreadsheet, a dashboard or an LLM.
  • Deep on Google Play. Up to 1,000 reviews per request: 10,000 WhatsApp reviews in about 10 seconds, all distinct.
  • Checked against the real store pages. 48 reviews shown on 9 Google Play and App Store pages (7 apps) compared field by field (text, stars, date, author, title, developer reply): 48 of 48 identical.
  • Built for monitoring. Reviews since reads newest first and stops at your date, so a daily run only pays for the new reviews. Filter by star rating to collect complaints only.
  • Reliable. Direct connection, automatic retries, and Apify Proxy only if a store ever blocks the run. Apple's review feed sometimes answers with an empty cached page: the Actor detects it and asks again, so you don't get "no reviews" for an app that has them.
  • Fair price: $0.10 per 1,000 reviews, for both stores. Filtered-out reviews and error rows are free.

Use cases

  • App developers and product teams: follow what users say after each release, per app version and per country.
  • Customer support: collect 1- and 2-star reviews every day, with the developer's reply (Google Play).
  • Competitor research: compare ratings and complaints of competing apps on iOS and Android.
  • AI and NLP: sentiment analysis, topic clustering, feature requests, training data in 50+ countries and languages.
  • Agencies and ASO tools: review monitoring for many client apps in one scheduled run.

Input

FieldDescription
AppsApp Store and Google Play apps, mixed, one per line: store links, Apple ids (310633997) or package names (com.whatsapp).
CountriesTwo-letter codes (us, gb, de, jp…). Every app is scraped in every country.
Language (Google Play)Empty = the main language of each country; or a code such as en, es, pt-BR.
SortNewest (default), Most relevant (the store page's order), Highest rating first (Google Play).
Max reviews per app and countryDefault 100; 0 = all available.
Reviews sinceOnly reviews from this date on (newest first, stops at the date).
Star ratingsKeep only these ratings, e.g. 1 and 2 stars.

Example:

{
"apps": [
"https://play.google.com/store/apps/details?id=com.spotify.music",
"https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"
],
"countries": ["us", "gb"],
"sort": "newest",
"maxReviewsPerApp": 500,
"ratings": ["1", "2"]
}

Output

One item per review, same fields for both stores (real examples):

{
"store": "google_play",
"appId": "com.spotify.music",
"country": "us",
"language": "en",
"appName": "Spotify: Music and Podcasts",
"developer": "Spotify AB",
"appRating": 4.35,
"appRatingCount": 36389831,
"reviewId": "2ead2b93-abd6-4680-b28a-b522b89dceea",
"userName": "Kayleigh Rhodes",
"rating": 2,
"title": null,
"text": "No widgets are working. I have to open the app to pause at any time. Very frustrating. If it's not one thing, it's another with this app.",
"date": "2025-07-29T13:09:58.697Z",
"appVersion": "9.0.64.608",
"thumbsUp": 272,
"developerReply": "Hey there! We understand your concern about the app. We'd love to get some more info about this. If you have the time, give our Customer Service a shout. ...",
"developerReplyDate": "2025-07-29T16:01:04.058Z",
"reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=2ead2b93-abd6-4680-b28a-b522b89dceea&hl=en&gl=us",
"position": 332
}
{
"store": "app_store",
"appId": "310633997",
"country": "us",
"appName": "WhatsApp Messenger",
"developer": "WhatsApp Inc.",
"appRating": 4.68,
"appRatingCount": 18676128,
"reviewId": "14599540909",
"userName": "hhhhmmmmmzzzzdddd",
"rating": 2,
"title": "WORST APP EVER",
"text": "I honestly don’t know wht people use this app instead of telegram. It is in one word TERRIBLE.",
"date": "2026-09-27T13:27:40.000Z",
"appVersion": "26.37.76",
"voteSum": 0,
"voteCount": 0,
"position": 3
}
FieldMeaning
storegoogle_play or app_store.
appId, appName, developer, appRating, appRatingCountThe app, its average rating and number of ratings in that store and country.
rating, title, text, dateThe review (title: App Store only). Dates in UTC.
appVersionApp version the review was written for.
thumbsUpGoogle Play "helpful" votes. voteSum / voteCount: App Store helpful votes.
developerReply, developerReplyDateThe developer's answer (Google Play).
userName, userImageReviewer name and picture (picture: Google Play).
source, position, scrapedAtWhat you entered, the review's rank in the run for that app and country, and when it was scraped.

Rows with a status are not reviews and are not charged:

StatusMeaning
not_foundThe app does not exist in that country's store.
no_resultsThe app has no written reviews, or none match your filters.
invalid_inputNot an App Store or Google Play app, or not a country code.
errorThe store kept failing (rare); reviews saved before the error are kept.

Tested (September 2026, on the Apify platform)

TestResult
Default input (WhatsApp, both stores, 20 each)40 reviews in about 2 seconds
Reviews shown on 9 store pages (7 apps) vs the Actor's output48 / 48 identical (Google Play 18, App Store 30)
Developer replies vs the Google Play page3 / 3 identical
DepthGoogle Play 10,000 / 10,000 distinct; App Store 500 / 500 (Apple's maximum)
Reviews since and Star ratings on 4 apps511 reviews, 0 outside the date or the ratings
9 countries (us, gb, de, jp, br, fr, it, ca, au)Reviews in each country's language, 0 empty countries
Wrong inputs (unknown app, other website, bad country)Clear free error rows, run succeeds

Honest limits

  • Apple shows at most 500 reviews per app, country and sort order (50 per page, 10 pages). This is Apple's limit for every tool that reads its public reviews; to get more, add countries or run both sorts (newest and most relevant).
  • App Store developer replies are not available in Apple's public review data; Google Play replies are included.
  • Google Play groups reviews by language, not by country: with the same language, us and gb return the same English reviews. Set a different language per run to get other markets.
  • Google Play's Most relevant and Highest rating first orders are the store's own.

Pricing

$0.10 per 1,000 reviews (review event, $0.0001 each), for both stores. Filtered-out reviews and status rows are free. Set a maximum charge in the run options and the Actor stops there.