App Store & Google Play Scraper
Pricing
from $4.00 / 1,000 app scrapes
App Store & Google Play Scraper
Scrape app metadata and reviews from the Apple App Store and Google Play. Ratings and prices per country, exact install counts, star histograms, versions and release notes, plus Play reviews with developer replies. Same app, every storefront, one run.
Pricing
from $4.00 / 1,000 app scrapes
Rating
0.0
(0)
Developer
Eimantas V
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
App metadata and reviews from both mobile stores, in one run. Ratings per country, the exact install count behind Google's rounded bucket, pricing, release cadence, and Google Play reviews with developer replies.
Pokémon GO us 3.60 gb 3.74 de 3.50 in 4.06 spread 0.56Nebula us 4.57 gb 4.22 de 3.62 in 4.39 spread 0.95Spotify us 4.34 gb 4.26 de 4.18 in 4.16
Those are the same apps on the same day. A single-country rating tells you almost nothing about how an app is received — this Actor gets every storefront in one pass.
No API keys, no browser. 16 listings and 1,200 reviews in 1.4 seconds.
What you get
Per app, per storefront
| Group | Fields |
|---|---|
| Ratings | score (this country), ratingCount, ratingHistogram (1★–5★ breakdown), reviewCount |
| Reach | installs (Play's bucket), installsExact (the real number behind it) |
| Money | price, currency, formattedPrice, isFree, inAppPurchaseRange, containsAds |
| Releases | version, released, updated, daysSinceUpdated, releaseNotes |
| Listing | title, developer, developerId, category, contentRating, icon, screenshotCount |
| Apple extras | bundleId, fileSizeBytes, minOsVersion, supportedLanguages, advisories |
Per review (Google Play) — rating, text, author, date, thumbsUp, appVersion, developerReply, developerReplyDate.
appVersion is the one that turns reviews into an engineering signal: it tells you which build the complaints are about.
Who this is for
- Competitor tracking — run daily, diff on
appId+country. Rating moves, version bumps, price changes and install growth all fall out of the diff. - ASO and market research — search a category and get every app's rating, installs, category and update cadence in one dataset.
- Voice of customer — pull 1-star reviews for a competitor, group by
appVersion, and read what broke. - Localisation priorities — a 0.5-star gap between storefronts usually means a translation, pricing or support problem in that market, not a product problem.
- Due diligence —
installsExact, rating trajectory anddaysSinceUpdatedsay more about an app's health than a pitch deck.
Input
{"apps": ["com.spotify.music", "1459969523"],"countries": ["us", "gb", "de", "jp"],"includeReviews": true,"maxReviewsPerApp": 500,"reviewRating": 1}
Identifiers can be a package name, a numeric App Store id, or a URL from either store. A URL that names a storefront (/de/app/…, &gl=IN) overrides the country list for that app.
| Option | Default | Notes |
|---|---|---|
countries | ["us"] | One record per app per country, each billed |
stores | both | Only affects search and bare ids |
searchTerms | — | Map a whole category |
maxAppsPerSearch | 30 | Your billing guard on search |
includeReviews | false | Google Play only |
maxReviewsPerApp | 200 | 100 arrive per request |
reviewRating | — | 1–5; filtering happens at the store |
reviewsWithinDays | — | See the caveat below |
repliedOnly | false | Only reviews the developer answered |
includeDescriptions | false | Off keeps the dataset far smaller |
Four things worth knowing
Each of these produced visibly wrong numbers before it was handled, and each was found by running against live stores.
No App Store reviews, and no pretending otherwise. Apple retired the public customer-reviews RSS feed — it now answers 200 OK with zero entries on every page — and the replacement API needs a bearer token that is no longer served to anonymous clients. Both were checked directly, along with the client-rendered ?see-all=reviews page. Reviews in this Actor are Google Play only. App Store metadata is complete and comes from Apple's own official endpoint.
Google Play does not return reviews in date order. One 100-review page was measured spanning 2024-08-28 to 2026-08-09, interleaved — 44 descending steps against 55 ascending. The obvious optimisation, stopping at the first review older than your window, silently truncates a recent-reviews query on its first page. This Actor pages past old reviews instead, and sorts the output newest-first itself. The cost is real: a 30-day window took 7 requests where an unfiltered pull took 3.
On Google Play, score is per-country but ratingCount is global. Pokémon GO reports 3.50 in Germany and 4.06 in India off the same 15,373,739 ratings. They are not a matched pair, so don't compute a weighted average across countries from them. Apple reports both per storefront.
Google sometimes rounds ratingCount. Spotify came back as exactly 36,104,000 on one request and 36,103,769 on another. ratingHistogram is not rounded — its five buckets summed to 36,103,978 against that rounded total. If you need a precise figure, or you want to know whether a 3.5 is lukewarm or polarised, use the histogram rather than the total.
Titles are localised. Nebula is "Nebula: Spiritual Guidance" in the US and "Nebula: Raum für Spirituelle Beratung" in Germany. Join storefronts on appId, never on title.
Output
{"store": "google", "appId": "com.spotify.music", "country": "de","title": "Spotify: Music and Podcasts", "developer": "Spotify AB","score": 4.18, "ratingCount": 36103782, "reviewCount": 1847743,"installs": "1,000,000,000+", "installsExact": 3084933551,"isFree": true, "inAppPurchaseRange": "$6.99 - $203.88 per item", "containsAds": true,"updated": "2026-08-11T…", "daysSinceUpdated": 1, "contentRating": "Teen","recordType": "app"}
Three ready-made dataset views: Apps, Rating by country and Reviews. Set flattenOutput: true for CSV.
Honest limits
- No App Store reviews. Explained above.
versionis often null on Google Play. Listings that ship a different build per device publish no version at all; Apple always reports one.- An app missing from a storefront returns
NOT_FOUNDand is not charged. Apps are routinely published to some countries and not others. - Install counts are Google Play only. Apple publishes none, and any figure claiming otherwise is modelled, not measured.
- Review coverage is a window, not an archive. Play serves a few thousand recent reviews per app, not the full history.
- Prices are in each storefront's currency — that is the point of the country list, but it means don't compare
priceacross countries without converting.
Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.005 | Once per run |
| App scraped | $0.004 | Per app listing profiled (one per app per country) |
| Review scraped | $0.0002 | Per review returned, after filters |
$4.00 per 1,000 app listings and $0.20 per 1,000 reviews. Tracking 20 competitor apps across 10 storefronts daily costs about $0.85 a day. Listings that fail or don't exist in a storefront are never charged.
Tips
- Schedule daily and diff on
appId+country. AdaysSinceUpdatedthat resets is a release; ascorethat drops is a release that went badly. reviewRating: 1is the cheapest early-warning system — you pay only for the complaints.- Group 1-star reviews by
appVersionto find the exact build a regression shipped in. - Track
ratingHistogram.oneStarover time, notscore. An average moves slowly once an app has millions of ratings; the 1-star bucket moves the day something breaks. - Watch the spread across storefronts, not the average. A wide spread points at a specific market; a uniform drop points at the product.
- Use
searchTermsonce to discover a category, then feed the resultingappIds back asappsfor cheap recurring monitoring.