Node.js module to scrape application data from the iTunes/Mac App Store. The goal is to provide an interface as close as possible to the google-play-scraper module.
npm install app-store-scraper
Available methods:
- app: Retrieves the full detail of an application.
- list: Retrieves a list of applications from one of the collections at iTunes.
- search: Retrieves a list of apps that results of searching by the given term.
- suggest: Given a string returns up to 50 suggestions to complete a search query term.
- similar: Returns the list of "customers also bought" apps shown in the app's detail page.
Retrieves the full detail of an application. Options:
id: the iTunes "trackId" of the app, for example553834731for Candy Crush Saga. Either this or theappIdshould be provided.appId: the iTunes "bundleId" of the app, for examplecom.midasplayer.apps.candycrushsagafor Candy Crush Saga. Either this or theidshould be provided.
Example:
var store = require('app-store-scraper');
store.app({id: 553834731}).then(console.log).catch(console.log);Results:
{ id: 553834731,
appId: 'com.midasplayer.apps.candycrushsaga',
title: 'Candy Crush Saga',
url: 'https://itunes.apple.com/us/app/candy-crush-saga/id553834731?mt=8&uo=4',
description: 'Candy Crush Saga, from the makers of Candy Crush ...',
icon: 'http://is5.mzstatic.com/image/thumb/Purple30/v4/7a/e4/a9/7ae4a9a9-ff68-cbe4-eed6-fe0a246e625d/source/512x512bb.jpg',
genres: [ 'Games', 'Entertainment', 'Puzzle', 'Arcade' ],
genreIds: [ '6014', '6016', '7012', '7003' ],
primaryGenre: 'Games',
primaryGenreId: 6014,
contentRating: '4+',
languages: [ 'EN', 'JA' ],
size: '73974859',
requiredOsVersion: '5.1.1',
released: '2012-11-14T14:41:32Z',
updated: '2016-05-31T06:39:52Z',
version: '1.76.1',
price: 0,
currency: 'USD',
free: true,
developerId: 526656015,
developer: 'King',
developerUrl: 'https://itunes.apple.com/us/developer/king/id526656015?uo=4',
developerWebsite: undefined,
score: 4,
reviews: 818816,
currentVersionScore: 4.5,
currentVersionReviews: 1323,
screenshots:
[ 'http://a3.mzstatic.com/us/r30/Purple49/v4/7a/8a/a0/7a8aa0ec-976d-801f-0bd9-7b753fdaf93c/screen1136x1136.jpeg',
... ],
ipadScreenshots:
[ 'http://a1.mzstatic.com/us/r30/Purple49/v4/db/45/cf/db45cff9-bdb6-0832-157f-ac3f14565aef/screen480x480.jpeg',
... ],
appletvScreenshots: [],
supportedDevices:
[ 'iPhone-3GS',
'iPadWifi',
... ] }Retrieves a list of applications from one of the collections at iTunes. Options:
collection: the collection to look up. Defaults tocollection.TOP_FREE_IOS, available options can be found here.category: the application category to filter for. Defaults to no category, available options can be found herecountry: the two letter country code to get the list from. Defaults tous.num: the amount of elements to retrieve. Defaults to50, maximum allowed is200.
Example:
var store = require('app-store-scraper');
store.list({
collection: store.collection.TOP_FREE_IPAD,
category: store.category.GAMES_ACTION,
num: 2
})
.then(console.log)
.catch(console.log);Returns:
[ { id: '1091944550',
appId: 'com.hypah.io.slither',
title: 'slither.io',
icon: 'http://is4.mzstatic.com/image/thumb/Purple30/v4/68/d7/4d/68d74df4-f4e7-d4a4-a8ea-dbab686e5554/mzl.ujmngosn.png/100x100bb-85.png',
url: 'https://itunes.apple.com/us/app/slither.io/id1091944550?mt=8&uo=2',
price: 0,
currency: 'USD',
free: true,
description: 'Play against other people online! ...',
developer: 'Steve Howse',
developerUrl: 'https://itunes.apple.com/us/developer/steve-howse/id867992583?mt=8&uo=2',
developerId: '867992583',
genre: 'Games',
genreId: '6014',
released: '2016-03-25T10:01:46-07:00' },
{ id: '1046846443',
appId: 'com.ubisoft.hungrysharkworld',
title: 'Hungry Shark World',
icon: 'http://is5.mzstatic.com/image/thumb/Purple60/v4/08/1a/8d/081a8d06-b4d5-528b-fa8e-f53646b6f797/mzl.ehtjvlft.png/100x100bb-85.png',
url: 'https://itunes.apple.com/us/app/hungry-shark-world/id1046846443?mt=8&uo=2',
price: 0,
currency: 'USD',
free: true,
description: 'The stunning sequel to Hungry ...',
developer: 'Ubisoft',
developerUrl: 'https://itunes.apple.com/us/developer/ubisoft/id317644720?mt=8&uo=2',
developerId: '317644720',
genre: 'Games',
genreId: '6014',
released: '2016-05-04T09:43:06-07:00' } ]Retrieves a list of apps that results of searching by the given term. Options:
term: the term to search for (required).device: the device to filter for. Defaults tosearch.ALL, available options aresearch.ALL,search.MAC,search.IOS.num: the amount of elements to retrieve. Defaults to50, maximum allowed is200.
Example:
var store = require('app-store-scraper');
store.search({
term: 'panda',
num: 2,
device: store.search.IOS
})
.then(console.log)
.catch(console.log);Results:
[
{ id: 903990394,
appId: 'com.pandarg.pxmobileapp',
title: 'Panda Express Chinese Kitchen',
(...)
},
{
id: 700970012,
appId: 'com.sgn.pandapop',
title: 'Panda Pop',
(...)
}
]Given a string returns up to 50 suggestions to complete a search query term.
A priority index is also returned which goes from 0 for terms with low traffic
to 10000 for the most searched terms.
Example:
var store = require('app-store-scraper');
store.suggest('panda').then(console.log).catch(console.log);Results:
[
{ term: 'panda pop', priority: '7557' },
{ term: 'panda pop free', priority: '5796' },
{ term: 'panda', priority: '5512' },
{ term: 'panda express', priority: '5174' },
{ term: 'panda games', priority: '4773' },
{ term: 'panda pop 2', priority: '4695' },
...
]Returns the list of "customers also bought" apps shown in the app's detail page. Options:
id: the iTunes "trackId" of the app, for example553834731for Candy Crush Saga. Either this or theappIdshould be provided.appId: the iTunes "bundleId" of the app, for examplecom.midasplayer.apps.candycrushsagafor Candy Crush Saga. Either this or theidshould be provided.
Example:
var store = require('app-store-scraper');
store.similar({id: 553834731}).then(console.log).catch(console.log);Results:
[
{
id: 632285588,
appId: 'com.nerdyoctopus.dots',
title: 'Dots: A Game About Connecting',
(...)
},
{
id: 727296976,
appId: 'com.sgn.cookiejam',
title: 'Cookie Jam',
(...)
}
(...)
]