google-play-scraper 
Node.js module to scrape application data from the Google Play store.
⚠️ I don't use or actively maintain this project anymore, other than reviewing community provided PRs. Expect the parser to break when Google Play's layout changes.
Related projects
- app-store-scraper: a scraper with a similar interface for the iTunes app store.
- aso: an App Store Optimization module built on top of this library.
- google-play-api: a RESTful API to consume the data produced by this library.
Installation
npm install google-play-scraper
Usage
Available methods:
- app: Retrieves the full detail of an application.
- list: Retrieves a list of applications from one of the collections at Google Play.
- search: Retrieves a list of apps that results of searching by the given term.
- developer: Returns the list of applications by the given developer name.
- suggest: Given a string returns up to five suggestion to complete a search query term.
- reviews: Retrieves a page of reviews for a specific application.
- similar: Returns a list of similar apps to the one specified.
- permissions: Returns the list of permissions an app has access to.
- datasafety: Returns the data safety information of an app.
- categories: Retrieve a full list of categories present from dropdown menu on Google Play.
app
Retrieves the full detail of an application. Options:
appId: the Google Play id of the application (the?id=parameter on the url).lang(optional, defaults to'en'): the two letter language code in which to fetch the app page.country(optional, defaults to'us'): the two letter country code used to retrieve the applications. Needed when the app is available only in some countries.
Example:
import gplay from "google-play-scraper";
gplay.app({appId: 'com.google.android.apps.translate'})
.then(console.log, console.log);
Results:
{
title: 'Google Translate',
description: 'Translate between 103 languages by typing\r\n...' ,
descriptionHTML: 'Translate between 103 languages by typing<br>...',
summary: 'The world is closer than ever with over 100 languages',
installs: '500,000,000+',
minInstalls: 500000000,
maxInstalls: 898626813,
score: 4.482483,
scoreText: '4.5',
ratings: 6811669,
reviews: 1614618,
histogram: { '1': 370042, '2': 145558, '3': 375720, '4': 856865, '5': 5063481 },
price: 0,
free: true,
currency: 'USD',
priceText: 'Free',
offersIAP: false,
IAPRange: undefined,
androidVersion: 'VARY',
androidVersionText: 'Varies with device',
androidMaxVersion: 'VARY',
developer: 'Google LLC',
developerId: '5700313618786177705',
developerEmail: '[email protected]',
developerWebsite: 'http://support.google.com/translate',
developerAddress: '1600 Amphitheatre Parkway, Mountain View 94043',
developerLegalName: undefined,
developerLegalEmail: undefined,
developerLegalAddress: undefined,
developerLegalPhoneNumber: undefined,
privacyPolicy: 'http://www.google.com/policies/privacy/',
developerInternalID: '5700313618786177705',
genre: 'Tools',
genreId: 'TOOLS',
categories: [
{ name: 'Tools', id: 'TOOLS' },
{ name: 'Another category without id', id: null }
],
icon: 'https://lh3.googleusercontent.com/ZrNeuKthBirZN7rrXPN1JmUbaG8ICy3kZSHt-WgSnREsJzo2txzCzjIoChlevMIQEA',
headerImage: 'https://lh3.googleusercontent.com/e4Sfy0cOmqpike76V6N6n-tDVbtbmt6MxbnbkKBZ_7hPHZRfsCeZhMBZK8eFDoDa1Vf-',
screenshots: [
'https://lh3.googleusercontent.com/dar060xShkqnJjWC2j_EazWBpLo28X4IUWCYXZgS2iXes7W99LkpnrvIak6vz88xFQ',
'https://lh3.googleusercontent.com/VnzidUTSWK_yhpNK0uqTSfpVgow5CsZOnBdN3hIpTxODdlZg1VH1K4fEiCrdUQEZCV0',
],
video: undefined,
videoImage: undefined,
previewVideo: undefined,
contentRating: 'Everyone',
contentRatingDescription: undefined,
adSupported: false,
released: undefined,
updated: 1576868577000,
version: 'Varies with device',
recentChanges: 'Improved offline translations with upgraded language downloads',
comments: [],
preregister: false,
earlyAccessEnabled: false,
isAvailableInPlayPass: false,
editorsChoice: true,
features: [
{
title: 'Uses Google Play Games',
description: 'For automatic sign-in, leaderboards, achievements, and more.'
},
{
title: 'Achievements',
description: 'Grants you achievements for completing goals and skill-based challenges.'
}
],
appId: 'com.google.android.apps.translate',
url: 'https://play.google.com/store/apps/details?id=com.google.android.apps.translate&hl=en&gl=us',
isAvailableInPlayPass: false
}
list
Retrieve a list of applications from one of the collections at Google Play. Options:
collection(optional, defaults tocollection.TOP_FREE): the Google Play collection that will be retrieved. Available options can bee found here.category(optional, defaults to no category): the app category to filter by. Available options can bee found here.age(optional, defaults to no age filter): the age range to filter the apps (only for FAMILY and its subcategories). Available options areage.FIVE_UNDER,age.SIX_EIGHT,age.NINE_UP.num(optional, defaults to 500): the amount of apps to retrieve.lang(optional, defaults to'en'): the two letter language code used to retrieve the applications.country(optional, defaults to'us'): the two letter country code used to retrieve the applications.fullDetail(optional, defaults tofalse): iftrue, an extra request will be made for every resulting app to fetch its full detail.
Example:
import gplay from "google-play-scraper";
gplay.list({
category: gplay.category.GAME_ACTION,
collection: gplay.collection.TOP_FREE,
num: 2
})
.then(console.log, console.log);
Results:
[ { url: 'https://play.google.com/store/apps/details?id=com.playappking.busrush',
appId: 'com.playappking.busrush',
summary: 'Bus Rush is an amazing running game for Android! Start running now!',
developer: 'Play App King',
developerId: '6375024885749937863',
title: 'Bus Rush',
icon: 'https://lh3.googleusercontent.com/R6hmyJ6ls6wskk5hHFoW02yEyJpSG36il4JBkVf-Aojb1q4ZJ9nrGsx6lwsRtnTqfA=w340',
score: 3.9,
scoreText: '3.9',
priceText: 'Free',
free: false },
{ url: 'https://play.google.com/store/apps/details?id=com.yodo1.crossyroad',
appId: 'com.yodo1.crossyroad',
title: 'Crossy Road',
summary: 'Embark on an action arcade, endless runner journey!',
developer: 'Yodo1 Games',
developerId: 'Yodo1+Games',
icon: 'https://lh3.googleusercontent.com/doHqbSPNekdR694M-4rAu9P2B3V6ivff76fqItheZGJiN4NBw6TrxhIxCEpqgO3jKVg=w340',
score: 4.5,
scoreText: '4.5',
priceText: 'Free',
free: false } ]
search
Retrieves a list of apps that results of searching by the given term. Options:
term: the term to search by.num(optional, defaults to 20, max is 250): the amount of apps to retrieve.lang(optional, defaults to'en'): the two letter language code used to retrieve the applications.country(optional, defaults to'us'): the two letter country code used to retrieve the applications.fullDetail(optional, defaults tofalse): iftrue, an extra request will be made for every resulting app to fetch its full detail.price(optional, defaults toall): allows to control if the results apps are free, paid or both.all: Free and paidfree: Free apps onlypaid: Paid apps only
Example:
import gplay from "google-play-scraper";
gplay.search({
term: "panda",
num: 2
}).then(console.log, console.log);
Results:
[ { url: 'https://play.google.com/store/apps/details?id=com.snailgameusa.tp',
appId: 'com.snailgameusa.tp',
summary: 'An exciting action adventure RPG of Panda proportions!',
title: 'Taichi Panda',
developer: 'Snail Games USA',
developerId: 'Snail+Games+USA+Inc',
icon: 'https://lh3.googleusercontent.com/g8RMjpRk9yetsui4g5lxnioAFwtgoKUJDBnb2knJMrOaLOtHrwU1qYkb-PadbL0Zmg=w340',
score: 4.1,
scoreText: '4.1',
priceText: 'Free',
free: true },
{ url: 'https://play.google.com/sto