App Store & Google Play Scraper avatar

App Store & Google Play Scraper

Pricing

from $4.00 / 1,000 app scrapes

Go to Apify Store
App Store & Google Play Scraper

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

Eimantas V

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.56
Nebula us 4.57 gb 4.22 de 3.62 in 4.39 spread 0.95
Spotify 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

GroupFields
Ratingsscore (this country), ratingCount, ratingHistogram (1★–5★ breakdown), reviewCount
Reachinstalls (Play's bucket), installsExact (the real number behind it)
Moneyprice, currency, formattedPrice, isFree, inAppPurchaseRange, containsAds
Releasesversion, released, updated, daysSinceUpdated, releaseNotes
Listingtitle, developer, developerId, category, contentRating, icon, screenshotCount
Apple extrasbundleId, 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 diligenceinstallsExact, rating trajectory and daysSinceUpdated say 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.

OptionDefaultNotes
countries["us"]One record per app per country, each billed
storesbothOnly affects search and bare ids
searchTermsMap a whole category
maxAppsPerSearch30Your billing guard on search
includeReviewsfalseGoogle Play only
maxReviewsPerApp200100 arrive per request
reviewRating15; filtering happens at the store
reviewsWithinDaysSee the caveat below
repliedOnlyfalseOnly reviews the developer answered
includeDescriptionsfalseOff 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.
  • version is 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_FOUND and 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 price across countries without converting.

Pricing

EventPriceWhen
Actor start$0.005Once per run
App scraped$0.004Per app listing profiled (one per app per country)
Review scraped$0.0002Per 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. A daysSinceUpdated that resets is a release; a score that drops is a release that went badly.
  • reviewRating: 1 is the cheapest early-warning system — you pay only for the complaints.
  • Group 1-star reviews by appVersion to find the exact build a regression shipped in.
  • Track ratingHistogram.oneStar over time, not score. 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 searchTerms once to discover a category, then feed the resulting appIds back as apps for cheap recurring monitoring.