Google Play Scraper - Rankings, Reviews & App Details avatar

Google Play Scraper - Rankings, Reviews & App Details

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Google Play Scraper - Rankings, Reviews & App Details

Google Play Scraper - Rankings, Reviews & App Details

Google Play scraper & API: export top-chart rankings by category & country, app reviews & ratings, full app details and ASO keyword search. Android app market intelligence, review analysis and competitor tracking — fast, no login. Pairs with an Apple App Store scraper.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

47

Total users

8

Monthly active users

5 days ago

Last modified

Share

Google Play Scraper 📱 — Rankings, Reviews, App Details & Keyword Search

Scrape Google Play data as clean, structured JSON — top-chart rankings by category and country, fully-paginated app reviews, complete app details, and keyword search. This Google Play scraper turns the Play Store into a structured dataset: pull the Top Free / Top Paid / Top Grossing charts for any of 50+ markets, extract every public review for an app, grab full app metadata (installs, ratings, histogram, full description, pricing, developer contact) and run keyword searches for ASO — no login, no coding, no headless browser.

Export to JSON, CSV, Excel, or API.

🧭 Built for ASO specialists, app marketers, product managers, competitive-intelligence analysts, investors, and data/AI teams who need reliable, localized Google Play data at scale.


📋 Table of contents


🔎 Why scrape Google Play?

Google Play is the largest app marketplace on earth — millions of apps, billions of installs, and a live stream of reviews and ranking movements. That data is gold for app store optimization (ASO), competitive research, and product decisions: which apps are climbing the charts, how a competitor is rated, what users complain about, how a title is positioned in its description, and how it all differs market by market.

The problem is that Google Play has no public API for most of this. The data lives in server-rendered JSON and an internal RPC, rankings are paginated and localized, and reviews sit behind a cursor-based endpoint that returns a few at a time. Collecting it by hand — opening pages, scrolling reviews, copying installs and ratings per country — is slow, error-prone, and impossible to keep fresh daily.

This Google Play scraper does it for you: it adds Apify proxy rotation and bounded concurrency on top of a battle-tested parsing core, and fully paginates reviews with no artificial cap — the single thing most Play scrapers get wrong. You get clean, typed records ready for a dashboard, a database, or an AI pipeline.

Common reasons people scrape Google Play:

  • 📈 Track top-chart rankings daily per category and country (a low-cost Sensor Tower / data.ai alternative).
  • 💬 Analyze reviews at scale for sentiment, bug reports, and feature requests — yours and your competitors'.
  • 🔑 Run ASO keyword research — see which apps rank for a term and read their full descriptions and metadata.
  • 🏢 Benchmark competitors on installs, ratings, monetization (IAP, price), and content rating.
  • 💼 Build market-intelligence feeds for investment, M&A, and category research.
  • 🤖 Create training datasets for review-sentiment models and app-ranking analytics.
  • 🌍 Compare markets — the same app's rank, price, and reviews across 50+ countries.

✨ What this Google Play scraper does

One actor, four modes — pick what you need and run:

  • ✅ 🏆 Rankings mode — the Top Free / Top Paid / Top Grossing charts for any category and country, each app tagged with its rank position (up to ~660 apps per chart). A Sensor-Tower-style market-intelligence feed: any category × any country × any chart.
  • ✅ 💬 Reviews mode — every public review for an app, fully paginated (sort by newest / rating / helpfulness), with rating, review text, date, thumbs-up count, app version, and the developer's reply.
  • ✅ 📋 App details mode — complete app metadata: rating, ratings & reviews counts, the 1–5 star histogram, installs, price and IAP, the full app description, developer name/email/website, category, content rating, version, release/update dates, screenshots and more.
  • ✅ 🔎 Search mode — apps for a keyword (ideal for ASO and keyword-rank tracking), each enriched with full details.

Plus:

  • ✅ Automatic pagination that collects large, de-duplicated result sets — hundreds of ranked apps, or thousands of reviews across multiple apps.
  • ✅ Rich captured fields grouped by record type (named in the Output section): identity (appId, title, url), marketing/ASO (summary, description, descriptionHTML), ratings (score, ratings, reviews, histogram), popularity (installs, minInstalls, maxInstalls), monetization (price, free, currency, offersIAP, IAPRange, adSupported), developer/contact (developer, developerId, developerEmail, developerWebsite, developerAddress), and classification (genre, categories, contentRating, version, released, updated).
  • ✅ Localization — every result respects country (gl) and language (hl); 50+ countries and 30+ languages are pre-listed in the input.
  • ✅ Speed & reliability — API-first (no browser), pooled keep-alive proxy connections with rotating exit IPs, bounded concurrency, per-item error isolation, and a time-budget guard that saves partial results instead of timing out.
  • ✅ Export to JSON, CSV, Excel, XML, or HTML, or pull straight from the Apify API.

Only features the code actually implements are claimed above.


🎯 Use cases

  • 📈 ASO & app marketing — monitor chart rankings and keyword positions daily; mine full app descriptions and metadata to tune your own listing.
  • 💬 Review mining / product teams — pull the complete review stream for your app and rivals to surface bugs, feature requests, and sentiment trends.
  • 🏢 Competitive intelligence — compare installs, ratings, histograms, pricing, and IAP strategy across a category.
  • 💼 Investment & M&A research — see who's climbing the Top Grossing charts in a market before anyone else.
  • 🌍 Localization & market entry — compare a title's rank, price, and reviews across 50+ countries to plan a launch.
  • 🔌 Lead generation — collect developer email, website, and address for apps in a niche or category.
  • 🤖 Data & AI — build app datasets and review-sentiment corpora for models and dashboards.
  • 📊 Agencies & reporting — schedule recurring runs and feed Google Sheets, BigQuery, or a BI tool via the API.

📥 Input

Configure everything from the Apify Console form — or pass a JSON input via the API. All fields are optional; an empty run returns a useful, diverse sample so you can see the shape instantly.

FieldTypeDescription
modestringWhat to scrape: rankings, reviews, appDetails, or search. Default rankings.
collectionstringRankings chart: TOP_FREE, TOP_PAID, or GROSSING. Default TOP_FREE.
categorystringRankings category, e.g. APPLICATION (all apps), GAME (all games), SOCIAL, FINANCE, PHOTOGRAPHY, GAME_ACTION. Default APPLICATION.
searchTermsarrayKeywords for Keyword search mode, e.g. ["photo editor", "budget"].
appIdsarrayApp package names (e.g. com.whatsapp) or full Play Store URLs — for reviews and appDetails modes.
maxReviewsPerAppintegerReviews to pull per app (fully paginated; Google serves up to ~4,500 per app). Default 200.
reviewsSortstringReview order: NEWEST, RATING, or HELPFULNESS. Default NEWEST.
countrystringMarket / gl code — 50+ supported, e.g. us, gb, de, tr, in, br, jp. Default us.
languagestringLanguage / hl code for titles, descriptions, reviews — 30+ supported. Default en.
fullDetailbooleanEnrich each ranked/found app with complete details (installs, histogram, full description, version…). Default true. Turn off for a faster, lighter rank-only list.
maxItemsintegerCap total records (apps or reviews). 0 = no limit. Default 0.
proxyConfigurationobjectProxy settings. Default Apify Proxy is fine; RESIDENTIAL helps on very large review pulls.
maxConcurrencyintegerMax apps processed in parallel. Default 12 (max 20).

Input examples

1) Top free apps in the US

{
"mode": "rankings",
"collection": "TOP_FREE",
"category": "APPLICATION",
"country": "us",
"maxItems": 200
}

2) Top grossing games in Germany

{
"mode": "rankings",
"collection": "GROSSING",
"category": "GAME",
"country": "de"
}

3) All reviews for two apps, newest first

{
"mode": "reviews",
"appIds": ["com.whatsapp", "com.spotify.music"],
"maxReviewsPerApp": 1000,
"reviewsSort": "NEWEST",
"country": "us"
}

4) Full app details

{
"mode": "appDetails",
"appIds": ["com.instagram.android"]
}

5) Keyword search (ASO)

{
"mode": "search",
"searchTerms": ["photo editor", "budget tracker"],
"country": "us"
}

📤 Output

Every record is a flat JSON object. A recordType field tells you what it is: rankedApp (rankings mode), app (search / app-details), or review (reviews mode). Results stream to the dataset as they're scraped and can be exported to JSON, CSV, Excel, XML, or HTML, or read via the Apify API.

App / ranked-app record (full metadata when fullDetail is on):

{
"recordType": "rankedApp",
"rank": 1,
"collection": "TOP_FREE",
"rankCategory": "APPLICATION",
"country": "us",
"appId": "com.duolingo",
"title": "Duolingo: Language Lessons",
"url": "https://play.google.com/store/apps/details?id=com.duolingo",
"summary": "Learn English, Spanish, French and more — free!",
"description": "Learn a new language, chess, math & more with the world's most downloaded education app! ...",
"developer": "Duolingo",
"developerId": "Duolingo",
"developerEmail": "support@duolingo.com",
"developerWebsite": "https://www.duolingo.com",
"score": 4.6,
"ratings": 29500000,
"reviews": 1200000,
"histogram": { "1": 900000, "2": 300000, "3": 700000, "4": 2500000, "5": 25100000 },
"installs": "500,000,000+",
"minInstalls": 500000000,
"maxInstalls": 812345678,
"price": 0,
"free": true,
"currency": "USD",
"available": true,
"offersIAP": true,
"IAPRange": "$6.99 - $159.99 per item",
"adSupported": true,
"isAvailableInPlayPass": false,
"genre": "Education",
"genreId": "EDUCATION",
"categories": [{ "name": "Education", "id": "EDUCATION" }],
"contentRating": "Everyone",
"version": "VARY",
"released": "Nov 13, 2012",
"updated": 1719446400000,
"icon": "https://play-lh.googleusercontent.com/...",
"screenshots": ["https://play-lh.googleusercontent.com/...", "..."],
"privacyPolicy": "https://www.duolingo.com/privacy",
"editorsChoice": true,
"scrapedAt": "2026-10-25T10:22:00.000Z"
}

Review record:

{
"recordType": "review",
"appId": "com.whatsapp",
"reviewId": "gp:AOqpTOH...",
"userName": "Jane D.",
"score": 5,
"title": null,
"text": "Works great, love the new updates!",
"date": "2026-06-01T10:22:00.000Z",
"thumbsUp": 14,
"version": "2.26.5",
"replyText": null,
"replyDate": null,
"criterias": [],
"url": "https://play.google.com/store/apps/details?id=com.whatsapp&reviewId=gp:AOqpTOH...",
"country": "us",
"scrapedAt": "2026-10-25T10:22:00.000Z"
}

Field reference

App fields (recordType: "app" / "rankedApp"):

FieldDescription
recordTypeapp or rankedApp.
rank / collection / rankCategoryChart position and chart/category (rankings mode only).
appIdPlay package name, e.g. com.whatsapp.
title / url / iconApp name, Play Store URL, icon image.
summaryShort tagline.
description / descriptionHTMLFull app description text and HTML — present when fullDetail is on.
developer / developerId / developerEmail / developerWebsite / developerAddressDeveloper name, ID, and contact details (email/website/address present when available).
score / scoreText / ratings / reviewsAverage rating, display string, total ratings count, total reviews count.
histogram1–5 star rating breakdown.
installs / minInstalls / maxInstallsInstall band and numeric bounds.
price / originalPrice / discountEndDate / free / currency / priceTextPricing; originalPrice/discountEndDate present only during a discount.
available / offersIAP / IAPRange / isAvailableInPlayPass / adSupportedAvailability, in-app purchases, Play Pass, ads.
genre / genreId / categoriesCategory classification.
contentRating / contentRatingDescriptionAge rating and its descriptors.
androidVersion / version / released / updated / recentChangesAndroid requirement, current version, release and last-update timestamps, changelog.
headerImage / screenshots / video / videoImageMedia assets.
privacyPolicy / editorsChoice / country / scrapedAtPrivacy policy URL, Editors' Choice flag, market, scrape timestamp.

Review fields (recordType: "review"):

FieldDescription
appId / reviewIdApp package and unique review ID.
userName / userImageReviewer display name and avatar.
score / title / text / dateRating (1–5), optional title, body, timestamp.
thumbsUp / versionHelpful votes and the app version reviewed.
replyText / replyDateDeveloper reply, when present.
criteriasPer-feature sub-ratings, when present.
url / country / scrapedAtDeep link, market, scrape timestamp.

Fields marked "present when available / when fullDetail is on" populate only for records that carry them — e.g. description, developerEmail, and the histogram come from the full app-details fetch, while originalPrice appears only during a discount. This is normal Google Play data variability, not a gap.


🔁 Pagination & scale

  • Rankings are fetched as a single localized list per chart/category and returned with their rank — up to ~660 apps per chart, each enriched in parallel.
  • Reviews are fully paginated: the actor walks Google's cursor (nextPaginationToken) page by page per app, with no artificial cap, until it reaches your maxReviewsPerApp or Google's per-app ceiling (~4,500). Across several appIds this easily yields thousands of de-duplicated reviews.
  • Search pulls results per keyword, then enriches each with full details.

You control scale with maxItems (total record cap; 0 = unlimited), maxReviewsPerApp, and maxConcurrency. A built-in time-budget guard stops gracefully just before the run would hit its timeout, so you always keep the records collected so far rather than losing them to a TIMED-OUT run.


⚙️ How to use

  1. Open the actor on the Apify Console and click Try for free / Start.
  2. Choose a mode:
    • Rankings → pick a chart (Top Free / Paid / Grossing), category, and country.
    • Reviews / App details → paste App IDs (e.g. com.whatsapp) or Play URLs.
    • Search → add search terms.
  3. Set country and language, and optionally Max items / Max reviews per app.
  4. Click Save & Start, then download results as JSON, CSV, or Excel.
  5. Automate it: run on a schedule for daily rankings, call it from the Apify API, or wire the dataset into Make, Zapier, Google Sheets, or a webhook.

💡 Tips

  • 🏆 Schedule rankings daily per category/country to track chart movement over time — the dated scrapedAt makes trend building easy.
  • 🌍 Iterate countries (loop country) to build a global picture of a chart or an app's pricing.
  • 💬 Set maxReviewsPerApp high for full review history; reviews are fully paginated to Google's ceiling.
  • 📝 Keep fullDetail on when you need the full description, install counts, histogram, or developer contact; turn it off for a fast rank-only list.
  • ⚡ For very large review pulls, keep maxConcurrency moderate and consider RESIDENTIAL proxy to reduce rate-limiting.
  • 🔗 Reviews accept Play URLs, so you can paste links straight from the store instead of package names.

❓ FAQ

Is scraping Google Play legal? Scraping publicly available Google Play data (rankings, public reviews, app listings) is generally permissible, and this scraper only accesses public pages — no login or private data. You are responsible for complying with Google's terms and applicable laws (including privacy/GDPR when handling reviewer data).

Do I need a Google Play API key or login? No. There is no official public Google Play API for this data, and this actor needs no key and no login — it reads the same public data the Play website serves.

How many results can I get, and how fast? Rankings return up to ~660 apps per chart; reviews are uncapped up to ~4,500 per app and scale into the thousands across multiple apps. Thanks to pooled keep-alive proxy connections and bounded concurrency, a 100-app enrich finishes in seconds to a couple of minutes depending on fullDetail and maxConcurrency.

Do I need proxies? Apify Proxy is enabled by default and is sufficient for most jobs. For very large review pulls, switching to RESIDENTIAL reduces rate-limiting. The actor rotates exit IPs across a pool automatically.

What export formats are supported? JSON, CSV, Excel, XML, and HTML table, plus RSS — and you can pull results programmatically from the Apify API or push them to integrations.

Is there an API? Yes — every Apify actor is callable via REST API. Start a run, poll it, and fetch the dataset as JSON/CSV. See the API tab on the actor page.

How fresh is the data? It's scraped live on each run — rankings, reviews, and details reflect Google Play at run time. Each record includes a scrapedAt timestamp. Schedule the actor to keep a dataset continuously up to date.

Can I filter by category and country? Yes. Rankings support a category (all apps/games or a specific niche, including game subcategories) and any of 50+ country markets, plus 30+ language options. Reviews, details, and prices are all localized.

Can I get the full app description and the ratings histogram? Yes — with fullDetail on (the default), app records include the full description/descriptionHTML and the 1–5 star histogram, along with installs and developer contact.

Why are some fields empty? Fields like developerEmail, developerAddress, video, originalPrice, or criterias only exist for apps/reviews that actually have them. Empty values reflect what Google Play exposes for that record, not a scraping error.



▶️ Ready to pull Google Play data? Pick a mode, set your country, and click Start — structured rankings, reviews, and app details export to JSON, CSV, Excel, or API in minutes.