Google Play Scraper: App Details, Play Store Reviews & Search
Pricing
Pay per event
Google Play Scraper: App Details, Play Store Reviews & Search
Google Play scraper: app details, Play Store reviews, keyword search, developer apps and similar apps. Reviews filtered by stars, date, keyword and version. Installs, rating, price, developer email. No login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Data Gleaner
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
4
Monthly active users
6 hours ago
Last modified
Categories
Security
Limited permissionsShare
Google Play Scraper: App Data, Installs, Developer & Similar Apps
$0.30 per 1,000 apps ($0.0003 each), nothing else. Use it to research competitors, list every app of a developer, or track an app market: give it app IDs, a developer name or an app whose competitors you want, and get one clean row per Google Play app with installs, real install count, rating, star histogram, price, in-app purchases, ads, category, last update and the developer's public email, website and address.
Changed 2026-11-01. Google Play's robots.txt disallows
/store/searchand the reviews endpoint, so keyword search (searchQueries) and reviews (reviewAppIds) are discontinued and ignored. Data Gleaner follows each site's robots.txt. App details, developer apps, similar apps and sitemap discovery all work, and the competitor list you used to build from a keyword search now comes fromsimilarAppIds.
Try it now
The input form is filled with Spotify in App IDs and in Similar apps, with 10 apps per seed. Click Start: you get Spotify's record plus the 10 apps Google Play lists next to it, 11 rows for about US$0.0033. With an empty input ({}, as from the API) the Actor runs a smaller built-in example: Spotify plus 4 similar apps, 5 rows, US$0.0015.
The Spotify row, from our saved test page (shortened):
{"appId": "com.spotify.music","title": "Spotify: Music and Podcasts","developer": "Spotify AB","developerEmail": "support@spotify.com","developerWebsite": "https://www.spotify.com","developerAddress": "Regeringsgatan 19, 111 53 Stockholm, Sweden","installs": "1,000,000,000+","minInstalls": 1000000000,"realInstalls": 3157353324,"rating": 4.35,"ratingCount": 36465012,"histogram": {"1": 3714665, "2": 1063541, "3": 1312514, "4": 3099401, "5": 27274875},"price": 0,"free": true,"offersInAppPurchases": true,"containsAds": true,"genre": "Music & Audio","updated": "2026-10-07T06:27:03+00:00","version": null,"source": "appIds"}
The similar-apps rows from the same test (one line each, source: "similar", similarTo: "com.spotify.music", position 1 to 4):
| position | appId | title | developer | installs | rating |
|---|---|---|---|---|---|
| 1 | com.pinterest | 1,000,000,000+ | 4.25 | ||
| 2 | com.google.android.apps.youtube.music | YouTube Music | Google LLC | 5,000,000,000+ | 4.46 |
| 3 | com.snapchat.android | Snapchat | Snap Inc | 1,000,000,000+ | 4.19 |
| 4 | com.duolingo | Duolingo: Learn Languages | Duolingo | 500,000,000+ | 4.75 |
Live numbers change daily; these come from the pages saved in our tests. Export the dataset as CSV or Excel, or read it through the API.
What it costs, per result
| You get | Event | Price |
|---|---|---|
One app record (from appIds, developerIds, similarAppIds or the sitemap) | app | US$0.0003 ($0.30 per 1,000) |
| An app that does not exist, is private or is not in your country | none | free |
The developer email look-up (findDeveloperEmails) | billed by App Developer Email Finder on your account | US$0.0015 per app whose developer has a public email; nothing here |
No start fee, no compute or proxy charge. The run stops at your maximum total charge. The Pricing tab may still list a review event from before 2026-11-01; reviews are discontinued, no code path emits it and no run charges it.
Worked examples:
- 50 app IDs from your tracking sheet: 50 x $0.0003 = $0.015. Daily for 30 days: about $0.45.
- Competitors of 5 seed apps, 50 similar apps each, with details: 250 apps, $0.075.
- A developer's full portfolio (about 20 apps for a name): $0.006.
What it does
It reads the public Google Play pages a visitor sees, with plain HTTP (no browser, no login, no Google account), in any country and language Google Play serves.
- App details (
appIds): package names (com.spotify.music) or Play URLs, one full record each. - Similar apps (
similarAppIds): the apps Google Play lists as similar to each seed (up to about 50), each withsimilarToand itsposition. The quickest competitor list for an app or a niche. - Developer apps (
developerIds): everything a developer publishes, by the appId or app page URL of any one of its apps (com.todoist; the developer is found from that app's own page), its name exactly as shown on Google Play (Spotify AB), a numeric ID or a developer page URL. A name that is not exact (Doist Inc.instead ofDoist) returns a free notice row suggesting an appId. Records carrydeveloperQuery. - One row per app per run: an app that an earlier seed or mode already returned in the same run (for example a developer's own app that also appears in the similar-apps list, or the seed app itself) is not repeated and not charged twice, so a developer lookup after a similar-apps lookup can return fewer rows than
maxItems. The run's status message says how many listed apps were left out for that reason.maxItemsapplies to each seed or developer separately. - Sitemap discovery (
sitemapDiscovery): a random sample of the catalogue from the sitemaps Google Play publishes, filtered by package name (packagePrefixes: ["de."],packageContains: ["vpn"]). - Developer contacts:
developerEmail,developerWebsite,developerAddressanddeveloperPhonewhen the store page lists them (personal-looking emails are not returned, see Responsible use);findDeveloperEmailslooks further (see below).
Use cases
- Competitor and market research: seed your app or a category leader in
similarAppIds, keep the rows with highrealInstallsand lowrating, and you have the gaps. - App tracking: schedule
appIdsdaily and comparerating,ratingCount,version,updated,priceandcontainsAdsover time. - Lead lists of app developers:
developerIdsorsimilarAppIdsplusfindDeveloperEmailsgives publisher, email, website and address per app. - Catalogue sampling: sitemap discovery for apps in one namespace or with a word in the package name.
- AI agents: one tool call returns app facts as flat JSON.
Input
| Field | Meaning |
|---|---|
appIds | Details mode. Package names or Google Play URLs. Apps that do not exist in the chosen country are skipped and not charged. |
similarAppIds | Similar-apps mode. Package names or URLs; returns up to about 50 similar apps per seed. The seed itself is not repeated. |
developerIds | Developer mode. An appId or app page URL of any of the developer's apps (most reliable), a developer name exactly as shown on Google Play, a numeric developer ID or a developer page URL. An appId or a name lists about 20 apps and a numeric ID about 10. No match gives a free notice row. |
maxItems | Apps per developer or seed app, default 30 (the form prefills 10). |
includeDetails | Default on. One extra request per developer or similar-apps result adds rating count, histogram, version, update date, developer ID, website, address and phone, description and screenshots. Off gives a faster list from the cards only (title, developer, installs, rating, price, category, icon). Same price either way. |
findDeveloperEmails | Default off. Runs App Developer Email Finder on your account and adds developerEmails and developerEmailSource to each app record. |
sitemapDiscovery, packagePrefixes, packageContains, sitemapMaxApps, sitemapShards | Sitemap sampling, see "Discover apps in bulk". |
country, language | Store country (US, GB, DE, JP) and language (en, de, pt-BR). Country changes prices, availability and ratings. |
requestDelaySecs | Pacing between requests, default 0.5. |
searchQueries, reviewAppIds and the review filters | Discontinued 2026-11-01 and ignored (see the note at the top). |
Input names used by other Google Play Actors are also accepted: startUrls, appUrls, countryCode, languageCode, maxResults.
Details, competitors and a developer's portfolio in one run:
{"appIds": ["com.spotify.music", "org.isoron.uhabits"],"similarAppIds": ["org.isoron.uhabits"],"developerIds": ["Spotify AB"],"maxItems": 30,"country": "US","language": "en"}
Discover apps in bulk from Google Play's sitemaps
Set sitemapDiscovery to true to sample the app catalogue from the sitemaps Google Play publishes for crawlers. Each app found is fetched from its normal store page, so you get the full record. Filter by package name with packagePrefixes (for example de.) or packageContains (for example vpn, fitness). sitemapMaxApps (default 50, up to 1,000) and sitemapShards (default 30, up to 150) bound the run. The sitemaps carry no dates and no categories, and apps are mixed with books, so this is a random sample (about 40 apps per shard); a rare filter needs more shards and may return few or no apps. Shards that match nothing are not charged. Example: {"sitemapDiscovery": true, "packageContains": ["vpn"], "sitemapMaxApps": 50, "sitemapShards": 60}. Records have source: "sitemap".
Get the developer's email in the same run
Set findDeveloperEmails to true and, once the apps are collected, this Actor runs App Developer Email Finder on your own Apify account for those apps. Each app record then carries developerEmails (every public email found: the store listing, the trader declaration and the developer's website) and developerEmailSource. That Actor bills its own $0.0015 for each app whose developer has a public email; this Actor adds no charge. With the option on, app records are written at the end of the run, and if the lookup fails or runs out of time they are still returned without the extra fields.
{ "similarAppIds": ["org.isoron.uhabits"], "maxItems": 30, "findDeveloperEmails": true }
Output
One record per app. Every record has source (appIds, similar, developer or sitemap), country, language and scrapedAt. Similar-apps records add similarTo, developer records add developerQuery, and position is the rank within that list. Full field list of an app record:
{"appId": "org.isoron.uhabits","title": "Loop Habit Tracker","summary": "Create good habits and track their progress over time","description": "Loop helps you create and maintain good habits...","developer": "Ana Example","developerId": "7792440048329025379","developerUrl": "https://play.google.com/store/apps/developer?id=Ana+Example","developerWebsite": null,"developerEmail": "dev@example.org","developerAddress": "United States","developerPhone": null,"installs": "5,000,000+","minInstalls": 5000000,"realInstalls": 7892890,"rating": 4.72,"ratingCount": 63451,"reviewsCount": 3423,"histogram": {"1": 1860, "2": 881, "3": 1762, "4": 4126, "5": 54793},"price": 0,"currency": "USD","free": true,"offersInAppPurchases": false,"containsAds": false,"genre": "Productivity","genreId": "PRODUCTIVITY","released": "Feb 22, 2016","updated": "2025-09-14T22:56:06+00:00","version": "2.3.1","contentRating": "Everyone","recentChanges": "Loop 2.3.1: ...","url": "https://play.google.com/store/apps/details?id=org.isoron.uhabits","icon": "https://play-lh.googleusercontent.com/...","screenshots": ["https://play-lh.googleusercontent.com/..."],"privacyPolicyUrl": null,"source": "similar","similarTo": "com.spotify.music","position": 1,"inputUrl": null,"country": "US","language": "en","scrapedAt": "2026-10-12T08:00:00+00:00"}
Which fields are filled
- Always:
appId,title,developer,installs,minInstalls,price,currency,free,genre,contentRating,url,icon,source,scrapedAt.ratingis empty for apps without ratings yet. - With
includeDetailson (default) and in details mode:ratingCount,reviewsCount,histogram,developerId,developerUrl,developerAddress,developerPhone,released,updated,recentChanges,description,screenshots,offersInAppPurchases,containsAds. - Sometimes empty by nature:
versionis empty when the store page says "Varies with device" (Spotify and many large apps).developerWebsite,developerEmail,developerAddress,developerPhoneandprivacyPolicyUrlare empty when the developer did not list them.realInstallsis empty when the page does not carry it.
FAQ: the three things that go wrong most
My run with searchQueries or reviewAppIds returned nothing. Why? Both were discontinued on 2026-11-01 because Google Play's robots.txt disallows them, and this Actor follows robots.txt. A run with only those fields ends SUCCEEDED with no rows and the status message "Discontinued: keyword search and reviews are no longer offered", and charges nothing. For a keyword-style competitor list, put the leading app of that niche in similarAppIds (for habit tracker: org.isoron.uhabits) and you get the apps Google Play lists next to it; add developerIds for a rival's whole portfolio.
An app ID I gave returned no row. The app was removed, is private, or is not available in the store country you set (the default is US). It is skipped, not charged, and named in the log; the status message counts it as "apps not found". Try its own market (country: "DE") or check the package name in the app's Play URL (id=...).
Some fields are empty, or a developer lists fewer apps than I expected. version is empty for "Varies with device" apps, and contact fields are empty when the developer did not publish them; that is the store page, not a parsing gap. A developer page shows about 20 apps for a name and about 10 for a numeric ID, so pass the name exactly as in the developer field. If a field that the store page does show comes back empty, open an issue on the Issues tab and it will be fixed.
More questions
Is there an official Google Play API for this? The Google Play Developer API only covers your own apps. This Actor reads the public store pages, so it works for any app.
Which countries work? Any two-letter store country Google Play serves, with any language code.
Do I need a proxy? No. The Actor uses no proxy: every request goes from the run's own IP, and if the store starts refusing requests the run backs off, then stops and keeps what it has. A proxyConfiguration in old saved tasks is ignored.
Limits
- Similar-apps lists hold up to about 50 apps per seed and developer pages about 20 (name) or 10 (numeric ID). Use several seeds for wider coverage.
- Installs are buckets (
5,000,000+);minInstallsis the bucket as a number andrealInstallsthe exact count when the page carries it. - Prices and ratings depend on the country you set, and numbers change daily: schedule runs and compare
scrapedAt. - At very high volume Google may refuse requests. The Actor backs off, retries the same request and finishes with what it has.
Use it from the API, Python or JavaScript
curl -X POST "https://api.apify.com/v2/acts/datagleaner~google-play-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"similarAppIds": ["com.spotify.music"], "maxItems": 10}'
# pip install apify-clientimport osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("datagleaner/google-play-scraper").call(run_input={"similarAppIds": ["com.spotify.music"], "maxItems": 10})for app in client.dataset(run["defaultDatasetId"]).iterate_items():print(app["position"], app["title"], app["installs"], app["rating"], app.get("developerEmail"))
// npm install apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('datagleaner/google-play-scraper').call({ developerIds: ['Spotify AB'], maxItems: 10 });const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const app of items) console.log(app.title, app.installs, app.rating);
Use it from n8n, Make, Zapier or an AI agent
Actor ID: datagleaner/google-play-scraper. Minimal input:
{"similarAppIds": ["com.spotify.music"], "maxItems": 10}
-
n8n: the Apify node (
@apify/n8n-nodes-apify), Run an Actor and get dataset, Actordatagleaner/google-play-scraper, the input above. -
Make: the Apify app's Run an Actor, then Get Dataset Items.
-
Zapier: the Apify action Run Actor, then Fetch dataset items.
-
AI agents (MCP): connect to
https://mcp.apify.com?tools=datagleaner/google-play-scraper. In Claude Code:claude mcp add --transport http apify "https://mcp.apify.com?tools=datagleaner/google-play-scraper"Then run
/mcpto sign in to Apify and ask in plain words, for example: "List the 20 apps Google Play shows as similar to com.spotify.music, with installs, rating and the developer's email."
Related Data Gleaner Actors
- App Developer Email Finder: developer email, website and socials for Google Play, App Store, Steam and Chrome Web Store apps. Pass this Actor's dataset as its
datasetId.
Responsible use
This Actor reads publicly visible Google Play pages without logging in and follows Google Play's robots.txt. Use the data in line with Google Play's terms. App records are business data; if you combine developer contacts with other data about individuals, the data-protection obligations are yours.
Purpose limit. Use developer contacts only for your own lawful B2B or legitimate-interest purposes in the recipient's country. Do not resell bulk lists, and do not send cold outreach where the law or the recipient's objection forbids it. You are the controller of what you do with the data.
What is not returned. Personal-looking developer emails (free-mail such as gmail.com, or first.last@ style) are dropped from developerEmail and developerEmails, and when one is dropped the developer's developerAddress and developerPhone are blanked too, because an individual developer's contact details are personal data. The row then carries a privacyNotice. Role and company addresses (support@, info@, a company domain) stay.
Removal requests
If you are a developer listed on Google Play and do not want this Actor to return your contact details (email, address, phone, website or name), email datagleaner@gmail.com (Keencrest, the publisher; replies come from an AI agent, Crest, and the business is owner-operated) with your email address, domain or developer name. We add it to a blocklist (src/optout_dids.txt, loaded at the start of every run) within 30 days, usually much sooner, answer you, and keep a dated record of the request and our answer. Personal-looking addresses are not returned in the first place, and sites' advertising objections are honoured.
Feedback
If this Actor saved you time, a rating on its Store page helps others find it. Problems or requests: open an issue on the Issues tab.