Google Play App Details — Data Safety, What's New & Installs
Pricing
from $1.60 / 1,000 apps
Google Play App Details — Data Safety, What's New & Installs
Google Play app details: data safety (shared and collected data types), permissions, what's new, version, installs, rating histogram, in-app purchase range and similar apps. Run it again for new releases, rating growth and data safety changes. Package names or URLs, any Play country. No login.
Pricing
from $1.60 / 1,000 apps
Rating
0.0
(0)
Developer
Northbell
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Give it package names or Google Play links and get one clean row per app and country: the data safety lists (what data the app collects and shares, by category), permissions, what's new, version, install bracket, the rating with its 1-to-5-star counts, price, whether it contains ads, the in-app purchase price range, and similar apps for competitor discovery. $2 per 1,000 apps, no login, no API key.
Run it again — or put it on a daily schedule — and every row also tells you what changed since the last run: a new release, how many ratings were added, and any change in the data safety lists. Google Play only shows today's page; this keeps the memory.
What you get
| Field | What it is |
|---|---|
name, appId, url, country, language | the app, as listed in that country and language (appId is the package name, e.g. com.duolingo) |
developer, developerId, developerUrl | who publishes it, and the link to the developer's Play page (no email, phone or address) |
category, categoryId, summary | the category as Google Play shows it in your language (Education) and the language-independent one (EDUCATION), and the one-line description |
rating, ratingCount | the average rating with its decimals (4.732137), not the rounded 4.7 on screen, and how many ratings |
ratingHistogram | number of ratings per star: {"1": 1026344, "2": 369347, "3": 1132573, "4": 5794678, "5": 41229703} |
installs, installsMin, installsEstimate | the download bracket (500M+), its number (500000000), and the more precise number Google puts in the page data (981024551) |
price, priceText, currency, isFree | the price in that country (0 for a free app), the price as Google writes it ($6.99, paid apps only), and its currency |
containsAds, hasInAppPurchases, inAppPurchaseRange | whether Google Play shows the "Contains ads" label, whether the app has in-app purchases, and their range as written on the page ($0.99 - $239.99 per item) |
contentRating | the age rating as Google writes it for that country and language (Everyone, Everyone 10+) |
version, updatedAt, releasedAt | the current version, when it was last updated (ISO time) and when the app was first released |
whatsNew | the developer's "What's new" text, line breaks kept |
minAndroid, minSdk | the lowest Android version (8.0) and its API level (26) |
chartPosition, chartName | the position when Google shows a "#1 top free education" style badge |
dataSafety | {collectsData, sharesData, collectedData[], sharedData[], securityPractices[]} — the data categories the developer declared (Personal info, Location, Device or other IDs…) and the security practices (Data is encrypted in transit) |
permissions | [{group, permissions[]}] — for example {"group": "Camera", "permissions": ["take pictures and videos"]} |
similarApps, moreByDeveloper | [{appId, name}] — apps Google Play suggests next to this one, and the developer's other apps |
newVersionSinceLastRun, previousVersion, previousUpdatedAt, previousObservedAt | whether there is a new release since your previous run, and what it was before (null on the first run) |
ratingCountChange | ratings added since the previous run |
dataSafetyChanged, dataSafetyChanges | true/false, and a list such as +collected: Location or -shared: App activity (null on the first run) |
type, input, observedAt | app or error, the text you gave for this app, and when it was read |
Use it for
- Privacy and compliance review — which apps collect or share location, contacts or financial info, and when that changes
- Competitor watch — schedule it daily for a set of rival apps and get alerted to a new release, a growing rating count or a changed data safety label
- Market research — installs, ratings, price, ads and in-app purchase range for any app, in any country, side by side
- Finding competitors —
similarAppsandmoreByDevelopergive you the neighbours of any app, ready to feed back in as new inputs
Input
{ "apps": ["com.duolingo", "https://play.google.com/store/apps/details?id=org.mozilla.firefox"], "countries": ["us", "jp"], "language": "en" }
What changed is remembered per app, country and language in a named key-value store in your Apify account, so the second run of the same Actor already shows changes. Schedule it (Apify → Schedules) for a daily log.
Pricing
$2 per 1,000 apps (one app in one country is one app), plus $0.01 per run. Error rows (apps that do not exist or are not available in a country) are free. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing.
Notes
- Public data only: what anyone sees on the app's page at play.google.com without signing in. The developer's email address, phone number and postal address are on that page, but this Actor does not read or return them. Emails and phone numbers are also removed from
whatsNewandsummary. No reviews or reviewer names are returned — see the rating tracker below. versionis only filled for apps that publish a version. Many big apps (Duolingo, WhatsApp, Telegram) ship "Varies with device", and then Google Play shows no version:versionisnull. For themnewVersionSinceLastRuncompares theupdatedAttime instead. For apps with a version, it compares the version text.minAndroidandminSdkare filled whenever Google Play shows "Requires Android" (Roblox shows8.0without a version) and arenullfor most "Varies with device" apps.installsis a bracket:500M+means at least 500 million downloads.installsEstimateis a more precise number embedded in the page data and not shown on the page; Google does not say how it is calculated, so treat it as an estimate.dataSafetyis the developer's own declaration, listed by category (not the individual data types or purposes), sorted alphabetically.sharedDatais empty when the developer says no data is shared,collectedDatawhen none is collected;collectsDataandsharesDatasay the same as true/false. The lists do not depend on the country, so they are read once per app and run.dataSafetyisnullwhen Google Play shows no data safety section or the page could not be read; the rest of the row is still returned, anddataSafetyChangedstaysnullrather than reporting a change.- Text comes back in the
languageyou choose (categories, data safety labels, permission names, what's new). The same language has to be used between runs to compare data safety lists, so the memory is kept per app, country and language. The age rating, the price and the chart badge are also written for that country and language. - Apps nobody has rated yet (small or new apps) have
rating,ratingCount,ratingHistogramandratingCountChangeasnull. The five star counts can differ by a few ratings fromratingCount. ratingandratingHistogramare Google's figures for the country you ask for (Spotify: 4.47 in Japan, 4.18 in Germany).ratingCountis the app's total across countries and is the same, or within a few ratings, in every country, soratingCountChangeis a worldwide number too.releasedAtisnullfor a few apps where the page shows no release date (Google Maps, for one).priceTextis only filled for paid apps.containsAdsisfalsewhen the page shows no "Contains ads" label.inAppPurchaseRangeisnullwhen the app has no in-app purchases.chartPositionandchartNameare only filled when Google shows the chart badge, mostly the top apps of a category.permissionslists what the page shows under app permissions, grouped as Google groups them. It isnullwhen the page has no permission section.similarAppsandmoreByDeveloperare what Google Play shows (a handful each) and are empty when it shows nothing.moreByDeveloperis often empty for developers with one app.- A country code Google Play does not have (
zz) stops the run with an input error before anything is read;ukis treated asgb. An app that is not published in a country gives a free error row for that country. Use countries where Google Play operates: for a few without a Play store (cn,ir,cu) Google still answers, but with a generic page (prices in USD, no in-app purchase range), andkpandsygive an error row. - Google's pages are large, so a run takes about a second per app and country, plus one more for each app's data safety page.
To search Google Play and track rank for keywords, see Google Play Scraper. For the reviews of an app and why a rating moved, use the Google Play Rating Tracker. For the same on the Apple App Store, see App Store App Details.
For AI agents
{"apps": ["com.duolingo"], "countries": ["us"]} returns one row with the rating histogram, installs, the data safety lists, permissions and what's new. Rows have type: app or error. Call it again with the same input to get newVersionSinceLastRun, ratingCountChange and dataSafetyChanged.