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

Scrape reviews and app stats from Google Play and the App Store in one run. Many apps and countries, developer replies, and an incremental mode that only returns new reviews on scheduled runs.

Pricing

from $0.10 / 1,000 reviews

Rating

0.0

(0)

Developer

Team Tickory

Team Tickory

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Share

Reviews and app statistics from both stores in one run: any number of apps, any number of countries, developer replies where the store exposes them, and an incremental mode that returns only the reviews that are new since the previous run. Schedule it daily and you have a review monitor for support, ASO or sentiment pipelines without re-paying for reviews you already have.

No proxies, no logins: both stores are read through their public endpoints.

What you get

Two record types in the same dataset, told apart by type.

review

FieldNotes
storeapp_store or google_play
appId, country, languagelanguage is set for Google Play only
reviewId, rating, title, text, author, datetitle is App Store only; date is ISO 8601
versionApp version the review was written for
helpfulVotesThumbs-up / helpful count
developerReply{text, date} for Google Play; null on the App Store, whose public feed does not expose replies
urlLink to the review

app (one per app and country, optional): title, developer, rating, rating count, review count, installs (Google Play), price, genre, version, release and update dates, release notes, content rating, icon, store URL.

Tasks that fail are written as type: "error" records with the reason, never dropped silently.

Input

FieldDefaultNotes
appsrequiredApp Store / Google Play URLs, Apple numeric ids, Android package names. Mix freely.
countries["us"]One fetch per app and country.
languages["en"]Google Play review languages. Ignored for the App Store.
sortrecentrecent or helpful.
maxReviewsPerApp5000 = all available.
onlyNewReviewsfalseIncremental mode (see below).
stateStoreNameapp-reviews-monitor-stateWhere incremental state lives.
sinceDatenoneStop once reviews older than this date are reached.
minRating, maxRating1, 5Keep only reviews in this star range, e.g. 1–2 for complaints.
includeAppDetailstrueAdd the app snapshot record.
concurrency4Parallel app/country tasks.

Incremental mode

With onlyNewReviews: true the actor remembers, per app and country, the newest review ids and date it has delivered, in the named key-value store. The next run pages newest-first and stops as soon as it reaches a review it has already delivered. Only new reviews are written and charged. The first run delivers the newest maxReviewsPerApp reviews and seeds the state.

Use different stateStoreName values for independent monitors (for example per client).

Pricing

Pay per event. You pay only for what is written to the dataset.

EventPrice
Review$0.0001 ($0.10 per 1,000)
App snapshot$0.001

Limits, stated honestly

  • App Store: at most 500 reviews per app and country. Apple's public feed serves 10 pages of 50. That is Apple's limit, not a setting.
  • App Store feeds can be empty for some app and country combinations even when the app has reviews. The actor reports these in its status message instead of failing.
  • App Store developer replies are not in the public feed and are returned as null.
  • Google Play exposes reviews per language, not per country: the same English reviews are shown in every country. The actor therefore fetches Google Play reviews once per app and language (with country set to the first country in your list) and uses countries only for the per-country app snapshot. Pass several languages to cover a multilingual user base.
  • Review counts shown in the stores include ratings without text; only reviews with text are retrievable.

Example

{
"apps": ["https://apps.apple.com/us/app/youtube/id544007664", "com.whatsapp"],
"countries": ["us", "gb", "de"],
"languages": ["en", "de"],
"onlyNewReviews": true,
"maxReviewsPerApp": 200
}

Changelog

  • 0.1: first release.
  • 0.1.6: fix runs failing on dataset schema validation (app snapshot rating is a decimal).
  • 0.1.7: App Store pages that come back empty in Apple's JSON feed are retried from the XML feed of the same page.