Google Play Scraper — Details, Reviews & Search avatar

Google Play Scraper — Details, Reviews & Search

Pricing

from $2.00 / 1,000 app details fetcheds

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

from $2.00 / 1,000 app details fetcheds

Rating

0.0

(0)

Developer

Freshactors

Freshactors

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days 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-12. 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. Reviews are returned newest-first.

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 (reviews are returned newest-first — the only order Google's public reviews API supports).

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-..."
}

Use with AI agents (MCP)

This scraper is callable as a tool by AI agents via the Apify MCP server — so assistants like Claude, Cursor, and VS Code can run it and use the structured results mid-conversation, with no glue code.

Simplest path: in a recent Claude Desktop, add the hosted server https://mcp.apify.com under Settings → Connectors and authorize with OAuth. For any config-file client:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

Then ask in plain language, e.g. "Fetch the Google Play details and ratings histogram for Spotify (com.spotify.music), plus its latest reviews." — the agent calls freshactors/google-play-scraper with the right input and reads back the JSON. Full setup: Apify MCP docs.

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. Reviews are returned newest-first (the only order Google's public reviews API supports).

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
Microsoft Store ScraperMicrosoft Store — app details, rating windows, search, reviews
VS Code Marketplace ScraperVS Code extensions — install/trending stats, search, 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
Workable Jobs ScraperWorkable — normalized job postings, full descriptions
SmartRecruiters Jobs ScraperSmartRecruiters — normalized job postings, full descriptions
Recruitee Jobs ScraperRecruitee — normalized job postings + salary
Teamtailor Jobs ScraperTeamtailor — normalized job postings, full descriptions
Personio Jobs ScraperPersonio — normalized job postings, departments + seniority

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 below. Found a problem? Open an issue on the Issues tab — it's answered quickly.

Changelog

  • 2026-06-10 — First-run polish: the one-click default example now fetches three popular apps (Spotify, WhatsApp, Instagram) instead of one, so your first run shows the full 27-field output across multiple apps. Still ~3 seconds and under a cent.
  • 2026-06-06Fixed deep review pagination: reviews were silently capped at ~40 per app regardless of maxReviewsPerApp (the pagination token was placed in the wrong slot of the request, so page 2 came back empty). Token-paginated reviews up to 4,000/app now work as documented. Also made reviewsSort honest: Google's public reviews API only supports newest order, so mostHelpful/rating (which silently returned nothing) were removed.
  • 2026-06-04 — Reviews: developerResponseDate now populated for developer replies (was always null — corrected an off-by-one in the reply tuple index). Details/search: de-duplicated repeated screenshots URLs. Added reply-mapping + screenshot tests.
  • 2026-06-01 — v1.0 launch. App details, customer reviews (deep pagination), and keyword search. Throttle-aware reviews engine, defensive positional parsing, daily canary monitoring.

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.