Google Play Scraper — Details, Reviews & Search avatar

Google Play Scraper — Details, Reviews & Search

Pricing

Pay per usage

Go to Apify Store
Google Play Scraper — Details, Reviews & Search

Google Play Scraper — Details, Reviews & Search

Fast, reliable Google Play scraper: app details + deep-paginated customer reviews as structured JSON. Monitored daily. No login.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Martin Čech

Martin Čech

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Google Play Scraper — App Details, Reviews & Search (Always Fresh)

Scrape Google Play app details, customer reviews, ratings, ratings histogram, and keyword search results as clean structured JSON — no API key, no proxy setup, no monthly fee. Fast HTTP, pay-per-use.

Google Play Scraper example output — 27 structured fields incl. ratings histogram

Last verified working: 2026-06-01. Monitored by an automated daily canary. When Google changes its page structure, we patch fast and log it in the changelog — so your data pipeline doesn't silently break.


Why this Google Play scraper

Most Google Play scrapers go stale and break. You'll see the same complaints across the Store: "crashes on a dead app," "returns nothing," "only 30 results," "stopped working weeks ago." When the data feeding your dashboard or model silently dies, you find out from your boss, not your logs.

This one is built to stay working:

  • 🛡️ Doesn't crash on bad input. Each app is fetched in its own try/catch. A dead, removed, or 404 package is skipped and logged, never a run-killer — that's the exact failure mode that breaks the popular incumbent actor.
  • 🔄 Rate-limit resistant. The reviews engine detects Google's throttle/block responses (missing RPC marker) and retries with exponential backoff + jitter and datacenter IP rotation, instead of quietly returning zero rows.
  • 📦 Comprehensive details — 25+ fields including the full 1–5★ ratings histogram, exact rating, description, screenshots, genre, price, currency, content rating, and "contains ads" — not just title + rating.
  • 🔢 Deep, token-paginated reviews — up to 4,000 per app, de-duplicated, with developer replies and reply dates.
  • 🧱 Stable output schema (_schemaVersion on every record). If Google reshapes a positional array upstream, the affected field degrades to null — your job keeps running.
  • 🔬 A daily canary runs details + reviews against a live app and writes a pass/fail status. The "last verified working" date above is real, not decorative.

What data you get

Three modes, one actor:

ModeWhat it returns
detailsFull app metadata for each package name you supply.
reviewsPaginated customer reviews for each package name (with developer replies).
searchSearches the Play Store by keyword, then returns full details for every matching app (tagged with the search term).

details / search output fields:

FieldTypeDescription
appIdstringPackage name, e.g. com.spotify.music.
titlestringApp name.
developerstringDeveloper / publisher name.
developerWebsitestringDeveloper site, if listed.
summarystringShort tagline.
descriptionstringFull store description.
ratingnumberExact average rating (e.g. 4.33).
ratingCountnumberTotal number of ratings.
ratingHistogramobject{1,2,3,4,5} star counts.
installsstringInstall bucket, e.g. 1,000,000,000+.
price / free / currencynumber / bool / stringPrice, free flag, currency code.
genre / genreIdstringCategory name + ID.
contentRatingstringe.g. Teen, Everyone.
containsAdsbooleanWhether the app contains ads.
updatedstringLast-updated timestamp (ISO).
icon / headerImage / screenshots[]string / arrayMedia URLs.
urlstringCanonical Play Store URL.
_searchTermstring(search mode only) the keyword that surfaced this app.

reviews output fields: reviewId, userName, userImage, rating, body, thumbsUp, date, appVersion, developerResponse, developerResponseDate, reviewUrl, plus appId and country. Sort by newest, mostHelpful, or rating.

Every record also carries _type, _schemaVersion, _source, and _scrapedAt.

Use cases

  • App Store Optimization (ASO) & competitor analysis — track ratings, install buckets, descriptions, and the ratings histogram across rival apps over time. The kind of "Google Play app data API" coverage ASO tools sell, at pay-per-use cost.
  • Review monitoring & support triage — pull new Google Play reviews (and your developer replies) on a schedule, route negative ones to Slack, and watch sentiment per app version.
  • Sentiment / ML training datasets — collect clean review text + ratings + appVersion at scale for fine-tuning or classification. No HTML parsing on your side.
  • Market & category research — run search mode on keywords like "budget tracker" or "habit app" to map a niche: who ranks, their ratings, pricing, and whether they're ad-supported.

Input

FieldTypeNotes
modestringdetails, reviews, or search. Default details.
appIdsstring[]Package names, e.g. com.spotify.music (the id= part of the URL). For details + reviews.
searchTermsstring[]Keywords to search the Play Store. For search mode.
maxSearchResultsintApps returned per keyword, 1–100. Default 30.
countrystringTwo-letter storefront code (us, gb, de, …). Default us.
langstringTwo-letter language code (en, de, es, …). Default en.
maxReviewsPerAppintReviews cap per app, 1–4000. Default 200.
reviewsSortstringnewest, mostHelpful, or rating. Default newest.

Example — details

{ "mode": "details", "appIds": ["com.spotify.music", "com.whatsapp"], "country": "us" }

Example — reviews

{ "mode": "reviews", "appIds": ["com.spotify.music"], "maxReviewsPerApp": 1000, "reviewsSort": "newest" }
{ "mode": "search", "searchTerms": ["habit tracker", "budget app"], "maxSearchResults": 20, "country": "us" }

Output sample

A single details record (abridged):

{
"_type": "app_details",
"_schemaVersion": "1.0",
"_source": "play",
"appId": "com.spotify.music",
"country": "us",
"title": "Spotify: Music and Podcasts",
"developer": "Spotify AB",
"rating": 4.33,
"ratingCount": 35677435,
"ratingHistogram": { "1": 3695081, "2": 1079953, "3": 1332269, "4": 3058122, "5": 26511993 },
"installs": "1,000,000,000+",
"free": true,
"currency": "USD",
"genre": "Music & Audio",
"contentRating": "Teen",
"containsAds": true,
"updated": "2026-05-26T14:23:49.000Z",
"icon": "https://play-lh.googleusercontent.com/...",
"screenshots": ["https://play-lh.googleusercontent.com/..."],
"url": "https://play.google.com/store/apps/details?id=com.spotify.music",
"_scrapedAt": "2026-06-01T08:20:00.000Z"
}

A single reviews record:

{
"_type": "review",
"appId": "com.spotify.music",
"reviewId": "7e1815f2-36d1-4187-a936-12f969747892",
"userName": "Catherine Hempel",
"rating": 5,
"body": "The paid version is excellent but very expensive...",
"thumbsUp": 14,
"date": "2026-04-21T11:35:57.000Z",
"appVersion": "9.1.40.1486",
"developerResponse": null,
"reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=7e1815f2-..."
}

Pricing

Pay-per-event — no subscription, no platform rental. You're charged only for data actually returned:

EventPrice (USD)
App details fetched (per app)$0.002
Review fetched (per review)$0.0001

search mode charges the per-app details event for each matching app it returns.

How much do 100 results cost?

  • 100 app details → 100 × $0.002 = $0.20.
  • 100 reviews (one popular app) → 100 × $0.0001 = $0.01.
  • A 1,000-review pull → 1,000 × $0.0001 = $0.10.
  • A search run returning 20 apps for a keyword → 20 × $0.002 = $0.04.

So a competitor-tracking job covering 50 apps' details plus 200 reviews each costs roughly 50 × $0.002 + 50 × 200 × $0.0001 = $0.10 + $1.00 = $1.10 per run.

FAQ

Is scraping Google Play legal? This actor collects public store data — app listings and publicly visible reviews — with no login and no personal account access. Public-data scraping is broadly permitted, but you are responsible for how you use the output. Use it responsibly and in line with applicable terms and laws; don't republish personal data.

Do I need an API key? No. Google Play has no official public data API for this. You provide package names or search terms and get JSON back — no key, no OAuth, no proxy account to manage.

Should I pass a URL or a package name? Use the package name — the id= part of the app URL. For https://play.google.com/store/apps/details?id=com.spotify.music, the appId is com.spotify.music.

Why are there fewer reviews than the rating count? Google's displayed number is total ratings; only a fraction of users write a review. This actor returns the written reviews, which is why a 35M-rating app yields far fewer review rows.

How many reviews can I get per app? Up to 4,000 via maxReviewsPerApp, paginated and de-duplicated. Set the sort with reviewsSort (newest, mostHelpful, rating).

Which countries and languages are supported? Any — set country (e.g. us, gb, de) and lang (e.g. en, de, es). Ratings, descriptions, and reviews are returned for that storefront.

Can I search Google Play by keyword? Yes — use search mode with searchTerms. It returns full details for each matching app, tagged with the _searchTerm that surfaced it, capped by maxSearchResults (1–100).

Does it return the ratings histogram? Yes — details includes ratingHistogram with per-star (1–5) counts, plus the exact average rating and total ratingCount.

What happens if an app is removed or doesn't exist? It's skipped and logged, and the run continues. One bad package never kills the whole job.

How often is it updated and maintained? A daily automated canary verifies details and reviews against a live app. When Google changes its page structure, we patch quickly and record it in the changelog below — that's the whole point of FreshActors.

Other FreshActors tools

FreshActors actorWhat it scrapes
App Store ScraperApple App Store — app details, search, reviews
Google Play ScraperGoogle Play — app details + reviews
Shopify App Store ScraperShopify App Store — app details, reviews, discovery
Redfin ScraperRedfin — US real-estate listings
Greenhouse & Lever Jobs ScraperGreenhouse + Lever — normalized job postings

Reliability

Staying fresh is the product. An automated daily canary runs real details and reviews requests against a live app and records a pass/fail status; the "Last verified working" date at the top reflects that check. Every output record carries a _schemaVersion, and parsers access Google's positional data defensively, so an upstream reshape degrades one field to null rather than crashing your run. Fixes are shipped fast and recorded in the changelog. Found a problem? Open an issue on the Issues tab — it's answered quickly.

Legal note. This actor scrapes public Google Play pages only: app listings and publicly visible reviews. No login, no personal account data, no circumvention of access controls. You are responsible for complying with applicable terms and laws and for how you use and store the data, including any personal data contained in reviews.