App Store + Google Play Reviews Scraper avatar

App Store + Google Play Reviews Scraper

Pricing

from $0.25 / 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: rating, title, text, date, app version, reviewer, thumbs-up, developer replies, plus a free app summary row. App URLs, IDs or search terms; star, date and reply filters. Pay only for reviews returned.

Pricing

from $0.25 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Mogul Tools

Mogul Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

App Store + Google Play Reviews Scraper (Ratings, Replies, Versions)

Get app reviews from both the Apple App Store and Google Play in one run. Each review comes with its star rating, title, text, date, app version, reviewer, helpful votes and, on Google Play, the developer's reply. Paste app URLs, IDs or package names, or just search by name. Filter by stars, date or "has developer reply" and pull from many countries at once. You only pay for reviews returned. Summary rows, failed inputs and filtered-out reviews are free.

Use cases

  • Competitor research: see what users love or hate about rival apps on both platforms.
  • Product and QA: catch crash and bug complaints by app version, or pull every 1–2★ review since your last release.
  • Support and reputation: track how fast and how often developers reply (Google Play).
  • AI and sentiment analysis: clean, deduplicated review text in many languages, ready for LLMs and BI tools.
  • ASO: compare ratings, histograms and installs across apps and countries.

Input

FieldDefaultNotes
apps–One per line. https://apps.apple.com/us/app/.../id324684580, 324684580, id324684580, https://play.google.com/store/apps/details?id=com.spotify.music or com.spotify.music. Both stores can go in one list.
searchTerms–e.g. habit tracker. The top searchResultsPerTerm (3) apps per store are scraped. searchStores picks both, App Store only or Google Play only.
countries["us"]App Store reviews are per country, and each country is its own feed. Google Play uses the first country as the storefront.
languageenGoogle Play review language (de, ja, pt-BR...).
sortnewestnewest or mostRelevant. Use newest together with a date filter, because paging stops early.
starsalle.g. ["1","2"]. Runs server-side on Google Play.
sinceDate–2026-01-01 or 30 days, 6 months...
maxReviewsPerApp5000 = no limit.
onlyWithReplyfalseOnly reviews the developer answered (Google Play).
appleUseBothSortstrueMerges Apple's "recent" and "helpful" feeds for up to about 1,000 reviews per country.
includeAppSummarytrueOne free summary row per app.
includeFailedRowstrueOne free row per input that returned no reviews, with the reason.
maxChargedReviews0 (no limit)Hard stop on the number of charged reviews.
maxConcurrency / requestDelayMs3 / 400Polite pacing per store, with automatic backoff on 429 or 503.

Example:

{ "apps": ["324684580", "com.spotify.music"], "countries": ["us", "gb"], "stars": ["1", "2"], "sinceDate": "30 days", "maxReviewsPerApp": 1000 }

Output (one row per review, abridged)

{
"rowType": "review",
"status": "OK",
"store": "googlePlay",
"appId": "com.spotify.music",
"appName": "Spotify: Music and Podcasts",
"country": "us",
"language": "en",
"reviewId": "31dd5f9b…",
"rating": 2,
"text": "I don't know what you guys did in the last update, but now when I listen to any …",
"date": "2026-09-18T06:24:22.532Z",
"appVersion": "9.1.82.2160",
"reviewerName": "Jane D.",
"thumbsUp": 406,
"hasReply": true,
"replyText": "Hi! For more information, visit support.spotify.com and sear…",
"replyDate": "2026-09-18T15:50:44.632Z",
"replyAuthor": "Spotify AB",
"reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=31dd5f9b-bd5f-4e2f-9465-71f707e14285",
"charged": true
}

App Store rows also include title, voteSum and voteCount. Every row has reviewerId, reviewerUrl or reviewerAvatar when the store provides them, plus appUrl, inputUrl and scrapedAt.

Free app summary row (rowType: "app"): name, developer, average rating, rating count, review count, star histogram, installs (Google Play), price, genre, current version, release and update dates, developer website and email (Google Play), and store URL.

Free error rows (rowType: "error"): INVALID_INPUT, NOT_FOUND, NO_REVIEWS, NO_MATCHES (your filters removed everything), REPLIES_NOT_AVAILABLE (App Store with onlyWithReply), BLOCKED and RATE_LIMITED.

The RUN_SUMMARY key-value record holds totals per store, duplicates skipped and failed inputs by reason.

Pricing (pay per event)

One review event per unique review returned. Nothing else is charged.

TierPer reviewPer 1,000 reviews
FREE$0.0004$0.40
BRONZE$0.00035$0.35
SILVER$0.0003$0.30
GOLD$0.00025$0.25

The run stops cleanly when it reaches your max total charge or maxChargedReviews. It's fast: about 1,000 reviews take a few seconds at the default 256 MB.

Limitations

  • App Store: Apple's public review feed returns at most 10 pages × 50 = 500 reviews per country per sort. With both sorts merged that's about 1,000 unique reviews per country, and adding countries gets more. Apple's feed has no developer replies and no review language. The rating histogram is Google Play only.
  • Google Play: reviews are grouped by language more than by country. Very large pulls (100k+) work but take minutes.
  • Reviews are deduplicated within a run. Reviews that were deleted or edited after scraping won't match the live page.
  • Only public data is collected, with no login. Use it in line with the stores' terms and applicable privacy law.