Google Play App Search, Lookup & Reviews Scraper
Pricing
from $0.49 / 1,000 results
Google Play App Search, Lookup & Reviews Scraper
Search Google Play by keyword or look up apps directly by package ID, with ratings, installs, pricing, developer contact details, and optional user reviews across dozens of countries and languages.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Nimbryxo-studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Features
Share
Google Play App Intelligence Scraper - Details, Reviews & Safety Labels
Collect public Google Play data in one run: keyword search results, full app records, long review histories, developer catalogs, similar apps, permission lists, and data safety labels. Everything is read from public Play pages and RPC endpoints, so no Google account, cookie, or API key is needed.
Modes
| Mode | What it returns |
|---|---|
search | Apps matching a keyword, with search rank and an exact-match marker. Add full details, permissions, data safety, or reviews with the toggles. |
details | One full app record per package name or Play URL. |
reviews | One flat record per review, with author, rating, text, date, helpful votes, app version, and developer replies. |
developer | The app catalog for a numeric developer ID or a display name. |
similar | One record per seed app, with a similarApps array of related apps. |
permissions | One record per app with grouped and flat permission lists. |
dataSafety | One record per app with shared data, collected data, security practices, and the privacy policy URL. |
What you can collect
App records
- Identity:
id,packageName,name,developer,developerId,developerUrl,url,sourceUrl - Ratings:
rating,ratingCount,scoreText,reviewCount,histogram - Reach and pricing:
installs,minInstalls,maxInstalls,price,currency,priceText,free,offersIAP,IAPRange - Store metadata:
genre,genreId,categories,contentRating,version,updated,released,androidVersion,recentChanges,sizewhen Google publishes it - Creative and copy:
description,descriptionHTML,summary,icon,headerImage,screenshots,video - Developer contact:
developerEmail,developerWebsite,developerAddress,developerLegalName,developerLegalEmail,developerLegalAddress,developerLegalPhone,privacyPolicy - Search context:
searchQuery,rank,isExactMatch - Optional trust data:
permissions,permissionGroups,dataSafety - Optional related data:
similarApps, nestedreviews - Run metadata:
recordType,language,country,scrapedAt
Review records
id,reviewId,appId,appTitleauthor,userName,userImagerating,score,text,content,datehelpfulCount,thumbsUpCountversion,appVersion,criteriasdeveloperReplywith reply text and date;replyContentandrepliedAtare kept for existing integrationsreviewUrl,language,storeCountry,sort,recordType,scrapedAt
Permission records
permissions is a flat list of {permission, group, type} objects. permissionGroups keeps Google Play's grouping. Permission names are localised by language.
Data safety records
dataSafety contains sharedData, collectedData, securityPractices, and privacyPolicyUrl. Each shared or collected entry has type, data, optional, and purpose when Google provides them.
Input
| Field | Default | Notes |
|---|---|---|
mode | search | One of the seven modes above. |
searchQuery | calculator | Keyword for search mode. |
appIds | – | Package names or Play URLs. |
packageNames | – | Package names or Play URLs for details, reviews, similar, permissions, or data safety. |
startUrls | – | Full Play app URLs; the id parameter is extracted. |
developerId | – | Numeric developer ID or developer page URL. |
developerName | – | Display name such as Google LLC. |
country | us | Storefront for search results, pricing, and availability. |
language | en | Language for app pages and the review bucket. Google Play selects reviews by language, not country. |
maxItems | 100 | Hard row cap, 1–10,000. Search returns at most 250 apps per query. In similar mode one seed app is one row. |
maxReviewsPerApp | 100 | Review cap per app, 1–50,000. Requests use up to 4,500 reviews per page. |
reviewSort | newest | newest, rating, or helpfulness. |
includeDetails | false | Fetch the full app page for search and developer results, and include app metadata in permissions/dataSafety output. |
includePermissions | false | Add permissions to app records in search, details, developer, and similar modes. |
includeDataSafety | false | Add data safety labels to app records. |
proxyConfiguration | – | Optional. The actor works without a proxy. |
Use at least one of searchQuery, appIds, packageNames, startUrls, or a developer field, depending on the mode.
Examples
Search with full details and permissions:
{"mode": "search","searchQuery": "photo editor","country": "us","language": "en","maxItems": 10,"includeDetails": true,"includePermissions": true}
Deep reviews for two apps:
{"mode": "reviews","packageNames": ["com.whatsapp", "com.instagram.android"],"language": "en","maxReviewsPerApp": 5000,"reviewSort": "newest","maxItems": 10000}
Developer catalog:
{"mode": "developer","developerName": "Google LLC","country": "us","language": "en","maxItems": 200}
Data safety labels:
{"mode": "dataSafety","packageNames": ["com.whatsapp", "com.spotify.music"],"language": "en","includeDetails": true}
Output behaviour
- Records are omit-empty at every depth. A field Google Play does not publish for an app is left out, never set to
null,"",0, or[]. - Existing field names from earlier versions (
appId,title,score,ratings,lastUpdated,reviewId,content,thumbsUpCount,replyContent,repliedAt,appVersion) are still emitted beside the newer names so saved integrations keep working. - Old input keys are mapped in code:
searchTermstosearchQuery,maxResultstomaxItems,reviewCounttomaxReviewsPerApp, andincludeReviewsto nested reviews on app records. - A run that produces zero records fails with a clear status message instead of returning an empty dataset. If some apps fail and others succeed, the dataset is kept and the run ends with a warning summary.
RUN_SUMMARYin the key-value store records counts, caps, warnings, errors, and whether any request was blocked.
Limits and honest caps
- Search: most keywords return 15–50 apps. A minority expose a continuation token; the actor follows it up to 250 apps per query. To collect more, run several queries.
- Reviews: Google Play serves up to 4,500 reviews per page.
maxReviewsPerAppis capped at 50,000 and pagination stops when Google runs out of tokens or returns no new review IDs. - Similar apps: up to 150 related apps per seed. Similarity is broad; "similar" means related, not necessarily a direct competitor.
- Version history: Google Play no longer exposes a version-history page or working RPC. Only the latest
version,updated, andrecentChangesare returned, and they are absent when Google does not publish them. - App size: Google Play's web pages do not expose a download size for most apps.
sizeis emitted only when the source includes it. - Developer catalogs: pagination follows the continuation token. A very large publisher can still have more apps than the selected
maxItems. - Permissions and data safety: these are separate Play endpoints. If one app has no declaration, the record still includes its identity and omits the empty section with a warning.
FAQ
Do I need a Google account, cookie, or API key? No. All seven modes use public Play pages and RPCs that work without authentication.
Does country change reviews? No. country controls the storefront, pricing, search result set, and availability. Reviews are selected by language; this is why the actor keeps the two inputs separate.
Why is a package missing from a search run? Google Play's search covers a limited result set per keyword, and some terms return fewer than 20 apps. Try a broader keyword or add the package directly in packageNames.
What happens when Google blocks a request? The actor retries with bounded exponential backoff. If every request is blocked, the run fails loudly with a blocked-request message. A proxy can be supplied, but it is never required.
Can I mix apps and search in one run? Use details or search with includeDetails, or run separate tasks. Keeping modes separate makes row counts and output shapes predictable.
Is this affiliated with Google? No. This is an independent third-party actor that reads public Google Play pages.
Use it as an API (server mode)
Need one answer right away instead of a batch job? Send the input as an HTTP request and the results come back in the response. There's no run to start and poll.
curl -H "Authorization: Bearer $APIFY_TOKEN" \"https://vcknmnj5f5o6x56ho.apify.actor/?mode=search&searchQuery=calculator&maxItems=3"
Or POST the same input as JSON:
curl -X POST -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"mode": "search", "searchQuery": "calculator", "maxItems": 3}' \"https://vcknmnj5f5o6x56ho.apify.actor/"
- The fields are the same as in the input above. With GET, repeat a parameter once for each value in a list.
- You get back a JSON array with the same records a normal run saves. They're saved to the run's dataset too.
- Each request is capped at 100 results and 4 minutes. For bigger jobs, start a normal run.
- The request runs in your own Apify account at the Actor's normal price (a start fee plus a price per result). The server shuts down after a minute with no requests.
- The Server tab on this page lists every parameter and lets you try a request from your browser.