App Store & Google Play Reviews & ASO Scraper avatar

App Store & Google Play Reviews & ASO Scraper

Pricing

Pay per event

Go to Apify Store
App Store & Google Play Reviews & ASO Scraper

App Store & Google Play Reviews & ASO Scraper

Scrape Apple App Store and Google Play customer reviews and app/ASO intelligence in bulk by app ID, store URL, bundle/package ID, or keyword search. Multi-country, full pagination, rating histograms, version breakdowns, sentiment and keyword signals. Public store endpoints only. Pay per result.

Pricing

Pay per event

Rating

0.0

(0)

Developer

naoki anzai

naoki anzai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Build Apple App Store and Google Play review intelligence and ASO snapshots in bulk — by app ID, store URL, bundle/package ID, or keyword search. Multi-country review samples are turned into rating histograms, version breakdowns, sentiment, and keyword signals. Uses public store endpoints only (no login, no cookies, no scraping tricks). Every row is tagged with its platform (app_store or google_play). You pay only per result delivered.

Great for ASO teams, app marketers, product managers, and competitive/market research.

What you get

For each app and storefront you can get:

  • Every recent customer review (up to ~500 per storefront): rating, title, text, author, app version, helpful votes, date.
  • An app profile / ASO snapshot: name, developer, price, genres, content rating, current version + release dates, official average rating and total rating count, plus computed signals from the review sample:
    • Rating histogram (1–5 stars)
    • Sentiment breakdown (positive / neutral / negative share)
    • Versions seen in recent reviews
    • Top keywords customers actually use

Inputs

Provide any combination of sources:

FieldDescription
appIdsApple numeric track IDs, e.g. 1232780281
appUrlsApp Store URLs, e.g. https://apps.apple.com/us/app/notion/id1232780281
bundleIdsApple bundle identifiers, e.g. com.notion.notion
searchTermsKeywords to discover App Store apps (ASO / competitor discovery)
playAppIdsGoogle Play package names, e.g. com.spotify.music
playUrlsGoogle Play URLs, e.g. https://play.google.com/store/apps/details?id=com.spotify.music
countriesStorefront codes, e.g. ["us","gb","jp"]
languageLanguage code for Google Play requests, e.g. en
maxReviewPagesPages of reviews per app per storefront (Apple ~50/page, Google Play ~100/page)
reviewSortmostRecent or mostHelpful
minRatingKeep only reviews ≥ this rating (0 = all)
includeReviews / includeAppProfileToggle each output type
emitUnchanged / baselineStableKeysFor recurring monitoring, set emitUnchanged: false and pass stable keys from the previous run to emit and charge only new rows

Example: same app on both stores

{
"appIds": ["1232780281"],
"playAppIds": ["notion.id"],
"countries": ["us"],
"maxReviewPages": 5
}

Example: reviews for specific apps, two countries

{
"appIds": ["1232780281"],
"countries": ["us", "gb"],
"maxReviewPages": 10,
"reviewSort": "mostRecent"
}

Example: discover competitors by keyword and snapshot them

{
"searchTerms": ["habit tracker", "budget app"],
"maxAppsPerTerm": 10,
"countries": ["us"],
"includeReviews": true,
"includeAppProfile": true
}

Example: recurring no-change-safe run

{
"appIds": ["1232780281"],
"countries": ["us"],
"maxReviewPages": 1,
"includeReviews": true,
"includeAppProfile": true,
"emitUnchanged": false,
"baselineStableKeys": [
"appprofile:app_store:us:1232780281",
"appreview:app_store:us:1232780281:1001"
],
"dryRun": false
}

Output

Each dataset item is either an app_review or an app_profile row.

Review row (charged as app-review):

{
"rowType": "app_review",
"appId": "1438388363",
"appName": "Habit Tracker",
"country": "us",
"reviewId": "14143606963",
"author": "Chelsea123",
"rating": 5,
"title": "Love it",
"content": "Keeps me consistent every day...",
"appVersion": "2.14.11",
"voteSum": 3,
"voteCount": 4,
"updated": "2026-06-03T08:58:57-07:00",
"sourceUrl": "https://apps.apple.com/us/app/id1438388363"
}

App profile row (charged as app-profile):

{
"rowType": "app_profile",
"appId": "1438388363",
"appName": "Habit Tracker",
"country": "us",
"primaryGenre": "Productivity",
"version": "2.14.12",
"averageUserRating": 4.79,
"userRatingCount": 141798,
"ratingHistogram": { "1": 13, "2": 1, "3": 8, "4": 15, "5": 63 },
"sentiment": { "positive": 78, "neutral": 8, "negative": 14, "positiveShare": 0.78 },
"versionsSeen": [{ "version": "2.14.12", "count": 40 }],
"topKeywords": [{ "word": "habits", "count": 24 }, { "word": "love", "count": 23 }]
}

Pricing — pay for raw rows or ASO snapshots

EventPriceWhen
app-review$0.003per customer review delivered when you need raw review text
app-profile$0.05per app per storefront — the ASO intelligence snapshot

app-review is the commodity row. The differentiated output is app-profile: official rating + total ratings, rating histogram, sentiment breakdown, top keywords, and versions seen, in one row. Turn it off (includeAppProfile: false) if you only want raw reviews; keep it on for ASO, product, and competitive research workflows.

How billing works (fair by design):

  • app-review is charged per review delivered. An app that returns no reviews produces no review charges — it's reported as a run warning only.
  • app-profile is charged once per app per storefront, when the app's official profile is successfully retrieved. The profile carries value even with no recent reviews (official rating, total ratings, version, genre), so it is charged whenever you enable it and the app is found. If the app's metadata can't be retrieved, no profile is emitted or charged. Set includeAppProfile: false to never incur this event.
  • Recurring monitoring can avoid repeat charges: set emitUnchanged: false and provide baselineStableKeys from a previous run. Matching rows are skipped, produce 0 dataset rows, and generate 0 charges.

Use cases

  • ASO reports — track keywords, ratings, and review themes for your app and competitors across storefronts.
  • Product — surface bugs, churn drivers, and feature requests from recent reviews by version.
  • Market & competitive research — snapshot a whole category by keyword and compare rating histograms and sentiment.
  • Review monitoring / alerting — schedule recurring runs and feed new low-star reviews into your tools.

FAQ

  • Does it need an account or API key? No. It uses Apple's public iTunes Search/Lookup/Customer-Reviews-RSS endpoints and Google Play's public store endpoints.
  • How many reviews per app? Apple exposes the most recent ~500 per storefront (10 pages × 50). Google Play is paginated via maxReviewPages (~100/page). Scrape more countries to widen coverage.
  • Which countries? Any storefront via its two-letter code (us, gb, jp, de, ...).
  • Both stores? Yes — provide Apple sources (appIds/appUrls/bundleIds/searchTerms) and/or Google Play sources (playAppIds/playUrls). Each row carries a platform field.

Compliance

Only public, non-authenticated Apple endpoints are used. Output is for research and analytics. Do not use review data to identify, target, or contact individual reviewers, or to generate or post fake reviews. See docs/source-compliance.md.