42matters 中文文档教程
node-42matters
Table of Contents
Overview
用 Node.js 编写的用于 42 件事的简单 API 模块。 麻省理工学院许可证。
Quick Start
Installation
npm install 42matters
Usage
var M42 = require('42matters');
var GooglePlayStoreAPI = M42.GooglePlayStoreAPI;
var AppleStoreAPI = M42.AppleStoreAPI;
注意:类方法同时支持 Promise/A+ 和 回调 以方便使用。 这里的示例将使用承诺,但可以随意使用回调。
Google Play Store API
Class variables
内部 API 属性和引用可在 GooglePlayStoreAPI 类中访问。
类提供以下静态变量:
- endpoints: Object, API endpoints.
- countries: Object, mapping between country codes and their names (e.g 'en' -> 'English').
- languages: Object, mapping between language codes and their names (e.g 'zh-cn' -> 'Chinese Simplified').
- categories: Object, mapping between categories and their names (e.g. 'NEWSANDMAGAZINES' -> 'News & Magazines').
- charts: Object, mapping between charts and their description (e.g. 'topgrossing' -> 'Top Grossing Apps').
下面的示例打印 Google Play Store API 的可用国家代码。
> console.log(GooglePlayStoreAPI.countries);
{
"US": "United States",
"AR": "Argentina",
"AU": "Australia",
"AT": "Austria",
"BE": "Belgium",
"BR": "Brazil",
"BG": "Bulgaria",
"CA": "Canada",
"CL": "Chile",
"CN": "China",
"CO": "Colombia",
"HR": "Croatia",
"CZ": "Czech Republic",
"DK": "Denmark",
"EG": "Egypt",
"EE": "Estonia",
"FI": "Finland",
"FR": "France",
"DE": "Germany",
"GR": "Greece",
"HK": "Hong Kong",
"HU": "Hungary",
"IN": "India",
"ID": "Indonesia",
"IL": "Israel",
"IT": "Italy",
"JP": "Japan",
"LV": "Latvia",
"LT": "Lithuania",
"MY": "Malaysia",
"MX": "Mexico",
"NL": "Netherlands",
"NZ": "New Zealand",
"NO": "Norway",
"PE": "Peru",
"PH": "Phillipines",
"PL": "Poland",
"PT": "Portugal",
"RO": "Romania",
"RU": "Russian Federation",
"SA": "Saudi Arabia",
"RS": "Serbia",
"SG": "Singapore",
"SK": "Slovakia",
"ZA": "South Africa",
"KR": "South Korea",
"ES": "Spain",
"SE": "Sweden",
"CH": "Switzerland",
"TW": "Taiwan",
"TH": "Thailand",
"TR": "Turkey",
"UA": "Ukraine",
"AE": "United Arab Emirates",
"GB": "United Kingdom",
"VN": "Vietnam"
}
Constructor
var playStore = new GooglePlayStoreAPI({
accessToken: '42MATTERS_ACCESS_TOKEN' // mandatory
debug: true|false, // optional, default is false.
useCache: true|false // optional, default is false.
});
Lookup API
查找与指定包名称匹配的 Android 应用程序并返回完整的应用程序详细信息。 请在此处查看完整的 API 文档。
// Using a promise
playStore.lookup('com.facebook.orca')
.then(function (res) {
console.log(res);
});
{
package_name: 'com.facebook.orca',
title: 'Messenger',
description: 'Instantly reach the people in your life—for free. Messenger is just like texting, but you don\'t have to pay for every message (it works with your data plan). Not just for Facebook friends: Message people in your phone book and just enter a phone number to add a new contact.\n\nGroup chats: Create groups for the people you message most. Name them, set group photos and keep them all in one place.\n\nPhotos and videos: Shoot videos and snap selfies or other photos right from the app and send them with one tap.\n\nChat heads: Keep the conversation going while you use other apps. \n\nFree calls: Talk as long as you want, even with people in other countries. (Calls are free over Wi-Fi. Otherwise, standard data charges apply.)\n\nEven more ways to message: \nBring your conversations to life with stickers. \nPreview your gallery photos and videos without leaving the conversation--then choose the perfect ones to send.\nRecord voice messages when you have more to say.\n\nExtra features:\nKnow when people have seen your messages.\nForward messages or photos to people who weren\'t in the conversation.\nSearch for people and groups to quickly get back to them.\nTurn on location to let people know when you\'re nearby.\nSee who\'s available on Messenger and who\'s active on Facebook. \nCreate shortcuts to get to any conversation right from your home screen.\nTurn off notifications when you\'re working, sleeping or just need a break.\nStay logged in so you never miss a message.\n\n\n\n\n\n\n\n\n\n\n\n\n\n',
short_desc: 'Messenger — a faster way to message.',
rating: 3.8945906162262,
category: 'Communication',
cat_int: 5,
cat_type: 0,
cat_key: 'COMMUNICATION',
price: '',
price_numeric: 0,
iap: false,
iap_min: 0,
iap_max: 0,
downloads: '1,000,000,000 - 5,000,000,000',
downloads_min: 1000000000,
downloads_max: 5000000000,
version: 'Varies with device',
content_rating: 'Everyone',
market_update: '2016-02-22T00:00:00+00:00',
screenshots: [
'https://lh5.ggpht.com/S3udjKLR0045VRTGmKSCRq6n_-JVM084xH36SYUmjRnc8zZ2Gcq8eL7bixe-cscP_A=h310',
'https://lh4.ggpht.com/Idi8NCyRZHGQ8V1h64dGqD-N7PGym27FghdYtRqCY1H5HP5wRZwjISS8RB2XXnwh6Q=h310',
'https://lh6.ggpht.com/reXX4Sm0tmG5vu534eddDzgBW8R3s3ysmVCpMuXphHSDXct92G8vRpJQis7ZgCHe0Q=h310',
'https://lh5.ggpht.com/2FjQK1nkRoihPnafEG3KxuO5UkRDjZKfHUPcZgtz1jgB-zpKg9tduPEuX2jjK23WpwKv=h310',
'https://lh5.ggpht.com/dH_Znb__NjJkyQ0_HW4TPniO3pnfXqhVF9xQ2r06bj_z0PGXIKIIxw0GlvDmKWYUDw=h310',
'https://lh6.ggpht.com/qvqDEwA-q0qKrXMfMTaI6GYymqI1sdmS00QYoEYNn_fR2Eh2hIsHKs-D_9c1q9EV5m7N=h310',
'https://lh3.googleusercontent.com/Aw9Yc9dOrD4sMMLHmlUizVwcAwUhJntcUPc68Fl_UpVozZmLRQmIu0iFHrvMv1IiXzQ=h310'],
lang: 'en',
i18n_lang: [
'de',
'hi',
'no',
'ru',
'fi',
'pt',
'hr',
'fr',
'zh-cn',
'hu',
'sk',
'id',
'sv',
'ko',
'zh-tw',
'pt-br',
'ms',
'el',
'it',
'es',
'cs',
'vi',
'th',
'ja',
'pl',
'da',
'nl',
'tr'],
price_i18n_countries: [],
website: 'http://www.facebook.com/apps/application.php?id%3D256002347743983',
created: '2011-12-19T08:31:50+00:00',
version_code: 14709108,
developer: 'Facebook',
number_ratings: 23552539,
icon: 'https://lh5.ggpht.com/0VYAvZLR9YhosF-thqm8xl8EWsCfrEY_uk2og2f59K8IOx5TfPsXjFVwxaHVnUbuEjc=w300',
icon_72: 'https://lh5.ggpht.com/0VYAvZLR9YhosF-thqm8xl8EWsCfrEY_uk2og2f59K8IOx5TfPsXjFVwxaHVnUbuEjc=w72',
promo_video: '',
market_url: 'https://play.google.com/store/apps/details?id=com.facebook.orca&referrer=utm_source%3D42matters.com%26utm_medium%3Dapi',
deep_link: 'http://playboard.me/android/apps/com.facebook.orca'
}
// Alternatively, we can use a callback
playStore.lookup('com.facebook.orca', function(err, res) {
// do something with res
});
lookup
接收以下参数:
- pname - mandatory, package name (e.g. 'com.facebook.orca').
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional. callback function.
Search API
查找与给定全文查询匹配的 Android 应用。 搜索是针对安卓应用程序的 42matters 索引完成的,并根据 42matters 的算法进行排名, 与其他商店(如 Google Play 商店)的订单不符。 请在此处查看完整的 API 文档。
playStore.search('arcade games')
.then(function (res) {
console.log(res);
});
search
接收以下参数:
- query - mandatory, query string for the search (e.g. 'arcade games').
- include_desc - optional. whether or not to include description. default is true.
- limit - optional. limit response items (1-50).
- page - optional. page number (1 - max pages).
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional. callback function.
Advanced Query API
使用多个过滤器运行高级查询,并对 android 应用程序的所有可用应用程序参数进行排序。 非常适合 Google Play Store™ 的数据分析和市场洞察。 请在此处查看完整的 API 文档。
// Query 10 most popular apps in google play store
playStore.query({
"query": {
"name": "Most Popular Apps",
"platform": "android",
"query_params": {
"sort": "number_ratings",
"from": 0,
"num": 10,
"sort_order": "desc"
}
}
})
.then(function (queryResult) {
// ..
});
query
接收以下参数:
- query - mandatory. Query object. You can design your query JSON here.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- limit - optional. limit response items (1-100).
- page - optional. page number (1 - max pages).
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional.
Availability API
检查 Android 应用程序在哪些国家/地区可用。
playStore.available('com.facebook.orca')
.then(function(res) {
console.log(res);
});
{
DE: true,
NO: true,
RS: true,
RU: true,
BE: true,
FI: true,
TW: true,
HK: true,
PT: true,
BG: true,
JP: true,
DK: true,
HR: true,
FR: true,
NZ: true,
UA: true,
HU: true,
SA: true,
BR: true,
SE: true,
SG: true,
SK: true,
GB: true,
ID: true,
US: true,
CA: true,
EG: true,
IL: true,
AE: true,
IN: true,
CH: true,
KR: true,
ZA: true,
CL: true,
IT: true,
GR: true,
ES: true,
AR: true,
AT: true,
AU: true,
TH: true,
CZ: true,
VN: true,
PH: true,
PL: true,
RO: true,
NL: true,
TR: true,
MX: true,
MY: true,
LT: true,
PY: true,
LV: true,
EE: true,
UY: true,
CO: true,
PE: true,
CN: false
}
available
接收以下参数:
- pname - mandatory. Package name (e.g. 'com.facebook.orca').
- countries - optional, array of language codes. (e.g ['en']). Output will consist of these countries only.
- callback - optional.
Top Google Play Charts API
检索 Google Play 上特定日期和国家/地区的热门应用排行榜。 列表有多达 55 个国家/地区的 540 个应用程序,每天总共有 6944 个列表。 在此处查看更多详细信息。
// Google top charts
playStore.getTopGoogleChart('topgrossing')
.then(function (chart) {
chart = chart.appList;
// .. chart processing
});
getTopGoogleChart
接收以下参数:
- chart - mandatory. chart name [topsellingfree|topsellingpaid|topgrossing|topsellingnewfree|topsellingnewpaid].
- country - optional. country code (e.g 'US'). default is 'US'.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- limit - optional. limit response items (1-100).
- page - optional. page number (1 - max pages).
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional.
Apple Store API
Constructor
var appleStore = new AppleStoreAPI({
accessToken: "42MATTERS_ACCESS_TOKEN", // mandatory, 42matters access token
debug: true|false, // optional. default is false.
useCache: true|false // optional. default is false.
});
Lookup API
返回与给定 iOS 应用轨道 ID 匹配的 iPhone 和 iPad 应用程序。 请在此处查看完整的 API 文档。
appleStore.lookup(343200656)
.then(function(res) {
console.log(res);
});
{
artistId: 298910979,
artistName: 'Rovio Entertainment Ltd',
artistViewUrl: 'http://itunes.apple.com/artist/rovio-entertainment-ltd/id298910979?uo=5',
artworkUrl100: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/175x175bb-85.jpg',
artworkUrl512: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/512x512bb-85.jpg',
artworkUrl60: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/100x100bb-85.jpg',
averageUserRating: 4.5,
averageUserRatingForCurrentVersion: 4,
bundleId: 'com.clickgamer.AngryBirds',
contentAdvisoryRating: '4+',
currency: 'USD',
description: 'Use the unique powers of the Angry Birds to destroy the greedy pigs\' defenses!
\n\nThe survival of the Angry Birds is at stake. Dish out revenge on the greedy pigs who stole their eggs. Use the unique powers of each bird to destroy the pigs’ defenses. Angry Birds features challenging physics-based gameplay and hours of replay value. Each level requires logic, skill and force to solve.
\n\nIf you get stuck in the game, you can purchase the Mighty Eagle! Mighty Eagle is a one-time in-app purchase in Angry Birds that gives unlimited use. This phenomenal creature will soar from the skies to wreak havoc and smash the pesky pigs into oblivion. There’s just one catch: you can only use the aid of Mighty Eagle to pass a level once per hour. Mighty Eagle also includes all new gameplay goals and achievements!
\n\nIn addition to the Mighty Eagle, Angry Birds now has power-ups! Boost your birds’ abilities and three-star levels to unlock secret content! Angry Birds now has the following amazing power-ups: Sling Scope for laser targeting, King Sling for maximum flinging power, Super Seeds to supersize your birds, and Birdquake to shake pigs’ defenses to the ground!
\n\nHAVING TROUBLE? Head over to https://support.rovio.com where you can browse FAQs or submit a request to our support flock!\n\n#1 IPHONE PAID APP in US, UK, Canada, Italy, Germany, Russia, Sweden, Denmark, Finland, Singapore, Poland, France, Netherlands, Malta, Greece, Austria, Australia, Turkey, UAE, Saudi Arabia, Israel, Belgium, Norway, Hungary, Malaysia, Luxembourg, Portugal, Czech Republic, Spain, Ireland, Romania, New Zealand, Latvia, Lithuania, Estonia, Nicaragua, Kazakhstan, Argentina, Bulgaria, Slovakia, Slovenia, Mauritius, Chile, Hong Kong, Pakistan, Taiwan, Colombia, Indonesia, Thailand, India, Kenya, Macedonia, Croatia, Macau, Paraguay, Peru, Armenia, Philippines, Vietnam, Jordan and Kuwait.
\n\n#1 IPHONE PAID GAME in more countries than we can count!\n\nTerms of Use: http://www.rovio.com/eula
\nPrivacy Policy: http://www.rovio.com/privacy
\n\nThis application may require internet connectivity and subsequent data transfer charges may apply.\n\n\nImportant Message for Parents\n\nThis game may include:\n- Direct links to social networking websites that are intended for an audience over the age of 13.\n- Direct links to the internet that can take players away from the game with the potential to browse any web page.\n- Advertising of Rovio products and also products from select partners.\n- The option to make in-app purchases. The bill payer should always be consulted beforehand.',
features: [ 'gameCenter' ],
fileSizeBytes: '71674372',
fileSizeBytesNumeric: 71674372,
formattedPrice: '0.99 USD',
genreIds: [ '6014', '6016', '7001', '7003' ],
genres: [ 'Games', 'Entertainment', 'Action', 'Arcade' ],
ipad: false,
ipadScreenshotUrls: [],
iphone: true,
isGameCenterEnabled: true,
isVppDeviceBasedLicensingEnabled: true,
languageCodesISO2A: [ 'EN', 'FR', 'DE', 'IT', 'JA', 'PT', 'RU', 'ZH', 'ES', 'ZH' ],
minimumOsVersion: '6.0',
price: 0.99,
primaryGenreId: 6014,
primaryGenreName: 'Games',
releaseDate: '2009-12-11T00:00:00+00:00',
releaseNotes: 'The #1 App of all time turns 6!\nJoin the celebration in 15 all-new levels in the BirdDay episode!',
screenshotUrls: [
'http://a3.mzstatic.com/us/r30/Purple5/v4/bc/9f/44/bc9f4453-7031-d39f-1ba2-c64ac3662c93/screen480x480.jpeg',
'http://a1.mzstatic.com/us/r30/Purple69/v4/e9/d3/f6/e9d3f6f8-ac9e-2218-e069-9f5fac99daee/screen480x480.jpeg',
'http://a3.mzstatic.com/us/r30/Purple7/v4/7e/d5/8b/7ed58b94-dfbf-366a-f3f6-5a8f65e2fa94/screen480x480.jpeg',
'http://a3.mzstatic.com/us/r30/Purple5/v4/76/7a/f4/767af4a2-9471-ac84-f428-c1e0494d99d1/screen480x480.jpeg'
],
sellerName: 'Rovio Entertainment Ltd',
sellerUrl: 'http://www.angrybirds.com/',
supportedDevices: [
'iPhone-3GS',
'iPhone4',
'iPodTouchFourthGen',
'iPad2Wifi',
'iPad23G',
'iPhone4S',
'iPadThirdGen',
'iPadThirdGen4G',
'iPhone5',
'iPodTouchFifthGen',
'iPadFourthGen',
'iPadFourthGen4G',
'iPadMini',
'iPadMini4G',
'iPhone5c',
'iPhone5s',
'iPhone6',
'iPhone6Plus',
'iPodTouchSixthGen'
],
trackCensoredName: 'Angry Birds',
trackContentRating: '4+',
trackId: 343200656,
trackViewUrl: 'http://itunes.apple.com/app/angry-birds/id343200656?uo=5&at=10l9yE',
userRatingCount: 822935,
userRatingCountForCurrentVersion: 802,
version: '6.0.1'
}
lookup
接收以下参数:
- id - mandatory, apple store ID (e.g. 343200656). number format.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['artistId', 'artistName']). Default is all.
- callback - optional. callback function.
Search API
返回匹配给定全文搜索查询的 iPhone 和 iPad 应用程序。 搜索结果根据42matters算法排名,与Apple App Store的顺序不匹配。
appleStore.search("angry birds")
.then(function(res) {
console.log(res);
});
{
"results": [{
artistId: 298910979,
artistName: 'Rovio Entertainment Ltd',
artistViewUrl: 'http://itunes.apple.com/artist/rovio-entertainment-ltd/id298910979?uo=5',
artworkUrl100: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/175x175bb-85.jpg',
artworkUrl512: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/512x512bb-85.jpg',
artworkUrl60: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/100x100bb-85.jpg',
averageUserRating: 4.5,
averageUserRatingForCurrentVersion: 4,
bundleId: 'com.clickgamer.AngryBirds',
contentAdvisoryRating: '4+',
currency: 'USD',
description: 'Use the unique powers of the Angry Birds to destroy the greedy pigs\' defenses!
\n\nThe survival of the Angry Birds is at stake. Dish out revenge on the greedy pigs who stole their eggs. Use the unique powers of each bird to destroy the pigs’ defenses. Angry Birds features challenging physics-based gameplay and hours of replay value. Each level requires logic, skill and force to solve.
\n\nIf you get stuck in the game, you can purchase the Mighty Eagle! Mighty Eagle is a one-time in-app purchase in Angry Birds that gives unlimited use. This phenomenal creature will soar from the skies to wreak havoc and smash the pesky pigs into oblivion. There’s just one catch: you can only use the aid of Mighty Eagle to pass a level once per hour. Mighty Eagle also includes all new gameplay goals and achievements!
\n\nIn addition to the Mighty Eagle, Angry Birds now has power-ups! Boost your birds’ abilities and three-star levels to unlock secret content! Angry Birds now has the following amazing power-ups: Sling Scope for laser targeting, King Sling for maximum flinging power, Super Seeds to supersize your birds, and Birdquake to shake pigs’ defenses to the ground!
\n\nHAVING TROUBLE? Head over to https://support.rovio.com where you can browse FAQs or submit a request to our support flock!\n\n#1 IPHONE PAID APP in US, UK, Canada, Italy, Germany, Russia, Sweden, Denmark, Finland, Singapore, Poland, France, Netherlands, Malta, Greece, Austria, Australia, Turkey, UAE, Saudi Arabia, Israel, Belgium, Norway, Hungary, Malaysia, Luxembourg, Portugal, Czech Republic, Spain, Ireland, Romania, New Zealand, Latvia, Lithuania, Estonia, Nicaragua, Kazakhstan, Argentina, Bulgaria, Slovakia, Slovenia, Mauritius, Chile, Hong Kong, Pakistan, Taiwan, Colombia, Indonesia, Thailand, India, Kenya, Macedonia, Croatia, Macau, Paraguay, Peru, Armenia, Philippines, Vietnam, Jordan and Kuwait.
\n\n#1 IPHONE PAID GAME in more countries than we can count!\n\nTerms of Use: http://www.rovio.com/eula
\nPrivacy Policy: http://www.rovio.com/privacy
\n\nThis application may require internet connectivity and subsequent data transfer charges may apply.\n\n\nImportant Message for Parents\n\nThis game may include:\n- Direct links to social networking websites that are intended for an audience over the age of 13.\n- Direct links to the internet that can take players away from the game with the potential to browse any web page.\n- Advertising of Rovio products and also products from select partners.\n- The option to make in-app purchases. The bill payer should always be consulted beforehand.',
features: [Object],
fileSizeBytes: '71674372',
fileSizeBytesNumeric: 71674372,
formattedPrice: '0.99 USD',
genreIds: [Object],
genres: [Object],
ipad: false,
ipadScreenshotUrls: [],
iphone: true,
isGameCenterEnabled: true,
isVppDeviceBasedLicensingEnabled: true,
languageCodesISO2A: [Object],
minimumOsVersion: '6.0',
price: 0.99,
primaryGenreId: 6014,
primaryGenreName: 'Games',
releaseDate: '2009-12-11T00:00:00+00:00',
releaseNotes: 'The #1 App of all time turns 6!\nJoin the celebration in 15 all-new levels in the BirdDay episode!',
screenshotUrls: [Object],
sellerName: 'Rovio Entertainment Ltd',
sellerUrl: 'http://www.angrybirds.com/',
supportedDevices: [Object],
trackCensoredName: 'Angry Birds',
trackContentRating: '4+',
trackId: 343200656,
trackViewUrl: 'http://itunes.apple.com/app/angry-birds/id343200656?uo=5&at=10l9yE',
userRatingCount: 822935,
userRatingCountForCurrentVersion: 802,
version: '6.0.1'
}]
}
search
接收以下参数:
- query - mandatory, query string for the search (e.g. 'angry birds').
- include_desc - optional. whether or not to include description. default is true.
- limit - optional. limit response items (1-50).
- page - optional. page number (1 - max pages).
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['artistId']). Default is all.
- callback - optional. callback function.
Advanced Query API
使用多个过滤器运行高级查询并对所有可用的应用程序参数进行排序 iPhone 和 iPad 应用程序。 非常适合 Apple App Store™ 的数据分析和市场洞察。 请在此处查看完整的 API 文档。
// Get the top 10 most rated apps on Apple App Store
appleStore.query({
"query": {
"name": "Most Popular Apps",
"platform": "ios",
"query_params": {
"from": 0,
"num": 100,
"sort": "userRatingCount",
"sort_order": "desc"
}
}
})
.then(function (res) {
// do something with query result
});
query
接收以下参数:
- query - mandatory. Query object. You can design your query JSON here.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- limit - optional. limit response items (1-100).
- page - optional. page number (1 - max pages).
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional.
node-42matters
Table of Contents
Overview
Simple API module for 42matters written in Node.js. MIT LICENSE.
Quick Start
Installation
npm install 42matters
Usage
var M42 = require('42matters');
var GooglePlayStoreAPI = M42.GooglePlayStoreAPI;
var AppleStoreAPI = M42.AppleStoreAPI;
NOTICE: Class methods support both Promise/A+ and callbacks for convenience. Examples here will use promises, but feel free to use callbacks.
Google Play Store API
Class variables
Internal API properties and references are accessible within the GooglePlayStoreAPI class.
Class provides the following static variables:
- endpoints: Object, API endpoints.
- countries: Object, mapping between country codes and their names (e.g 'en' -> 'English').
- languages: Object, mapping between language codes and their names (e.g 'zh-cn' -> 'Chinese Simplified').
- categories: Object, mapping between categories and their names (e.g. 'NEWSANDMAGAZINES' -> 'News & Magazines').
- charts: Object, mapping between charts and their description (e.g. 'topgrossing' -> 'Top Grossing Apps').
Example below prints the available country codes for Google Play Store API.
> console.log(GooglePlayStoreAPI.countries);
{
"US": "United States",
"AR": "Argentina",
"AU": "Australia",
"AT": "Austria",
"BE": "Belgium",
"BR": "Brazil",
"BG": "Bulgaria",
"CA": "Canada",
"CL": "Chile",
"CN": "China",
"CO": "Colombia",
"HR": "Croatia",
"CZ": "Czech Republic",
"DK": "Denmark",
"EG": "Egypt",
"EE": "Estonia",
"FI": "Finland",
"FR": "France",
"DE": "Germany",
"GR": "Greece",
"HK": "Hong Kong",
"HU": "Hungary",
"IN": "India",
"ID": "Indonesia",
"IL": "Israel",
"IT": "Italy",
"JP": "Japan",
"LV": "Latvia",
"LT": "Lithuania",
"MY": "Malaysia",
"MX": "Mexico",
"NL": "Netherlands",
"NZ": "New Zealand",
"NO": "Norway",
"PE": "Peru",
"PH": "Phillipines",
"PL": "Poland",
"PT": "Portugal",
"RO": "Romania",
"RU": "Russian Federation",
"SA": "Saudi Arabia",
"RS": "Serbia",
"SG": "Singapore",
"SK": "Slovakia",
"ZA": "South Africa",
"KR": "South Korea",
"ES": "Spain",
"SE": "Sweden",
"CH": "Switzerland",
"TW": "Taiwan",
"TH": "Thailand",
"TR": "Turkey",
"UA": "Ukraine",
"AE": "United Arab Emirates",
"GB": "United Kingdom",
"VN": "Vietnam"
}
Constructor
var playStore = new GooglePlayStoreAPI({
accessToken: '42MATTERS_ACCESS_TOKEN' // mandatory
debug: true|false, // optional, default is false.
useCache: true|false // optional, default is false.
});
Lookup API
Find an android app that matches the specified package name and return full app details. See full API documentation here.
// Using a promise
playStore.lookup('com.facebook.orca')
.then(function (res) {
console.log(res);
});
{
package_name: 'com.facebook.orca',
title: 'Messenger',
description: 'Instantly reach the people in your life—for free. Messenger is just like texting, but you don\'t have to pay for every message (it works with your data plan). Not just for Facebook friends: Message people in your phone book and just enter a phone number to add a new contact.\n\nGroup chats: Create groups for the people you message most. Name them, set group photos and keep them all in one place.\n\nPhotos and videos: Shoot videos and snap selfies or other photos right from the app and send them with one tap.\n\nChat heads: Keep the conversation going while you use other apps. \n\nFree calls: Talk as long as you want, even with people in other countries. (Calls are free over Wi-Fi. Otherwise, standard data charges apply.)\n\nEven more ways to message: \nBring your conversations to life with stickers. \nPreview your gallery photos and videos without leaving the conversation--then choose the perfect ones to send.\nRecord voice messages when you have more to say.\n\nExtra features:\nKnow when people have seen your messages.\nForward messages or photos to people who weren\'t in the conversation.\nSearch for people and groups to quickly get back to them.\nTurn on location to let people know when you\'re nearby.\nSee who\'s available on Messenger and who\'s active on Facebook. \nCreate shortcuts to get to any conversation right from your home screen.\nTurn off notifications when you\'re working, sleeping or just need a break.\nStay logged in so you never miss a message.\n\n\n\n\n\n\n\n\n\n\n\n\n\n',
short_desc: 'Messenger — a faster way to message.',
rating: 3.8945906162262,
category: 'Communication',
cat_int: 5,
cat_type: 0,
cat_key: 'COMMUNICATION',
price: '',
price_numeric: 0,
iap: false,
iap_min: 0,
iap_max: 0,
downloads: '1,000,000,000 - 5,000,000,000',
downloads_min: 1000000000,
downloads_max: 5000000000,
version: 'Varies with device',
content_rating: 'Everyone',
market_update: '2016-02-22T00:00:00+00:00',
screenshots: [
'https://lh5.ggpht.com/S3udjKLR0045VRTGmKSCRq6n_-JVM084xH36SYUmjRnc8zZ2Gcq8eL7bixe-cscP_A=h310',
'https://lh4.ggpht.com/Idi8NCyRZHGQ8V1h64dGqD-N7PGym27FghdYtRqCY1H5HP5wRZwjISS8RB2XXnwh6Q=h310',
'https://lh6.ggpht.com/reXX4Sm0tmG5vu534eddDzgBW8R3s3ysmVCpMuXphHSDXct92G8vRpJQis7ZgCHe0Q=h310',
'https://lh5.ggpht.com/2FjQK1nkRoihPnafEG3KxuO5UkRDjZKfHUPcZgtz1jgB-zpKg9tduPEuX2jjK23WpwKv=h310',
'https://lh5.ggpht.com/dH_Znb__NjJkyQ0_HW4TPniO3pnfXqhVF9xQ2r06bj_z0PGXIKIIxw0GlvDmKWYUDw=h310',
'https://lh6.ggpht.com/qvqDEwA-q0qKrXMfMTaI6GYymqI1sdmS00QYoEYNn_fR2Eh2hIsHKs-D_9c1q9EV5m7N=h310',
'https://lh3.googleusercontent.com/Aw9Yc9dOrD4sMMLHmlUizVwcAwUhJntcUPc68Fl_UpVozZmLRQmIu0iFHrvMv1IiXzQ=h310'],
lang: 'en',
i18n_lang: [
'de',
'hi',
'no',
'ru',
'fi',
'pt',
'hr',
'fr',
'zh-cn',
'hu',
'sk',
'id',
'sv',
'ko',
'zh-tw',
'pt-br',
'ms',
'el',
'it',
'es',
'cs',
'vi',
'th',
'ja',
'pl',
'da',
'nl',
'tr'],
price_i18n_countries: [],
website: 'http://www.facebook.com/apps/application.php?id%3D256002347743983',
created: '2011-12-19T08:31:50+00:00',
version_code: 14709108,
developer: 'Facebook',
number_ratings: 23552539,
icon: 'https://lh5.ggpht.com/0VYAvZLR9YhosF-thqm8xl8EWsCfrEY_uk2og2f59K8IOx5TfPsXjFVwxaHVnUbuEjc=w300',
icon_72: 'https://lh5.ggpht.com/0VYAvZLR9YhosF-thqm8xl8EWsCfrEY_uk2og2f59K8IOx5TfPsXjFVwxaHVnUbuEjc=w72',
promo_video: '',
market_url: 'https://play.google.com/store/apps/details?id=com.facebook.orca&referrer=utm_source%3D42matters.com%26utm_medium%3Dapi',
deep_link: 'http://playboard.me/android/apps/com.facebook.orca'
}
// Alternatively, we can use a callback
playStore.lookup('com.facebook.orca', function(err, res) {
// do something with res
});
lookup
receives the following arguments:
- pname - mandatory, package name (e.g. 'com.facebook.orca').
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional. callback function.
Search API
Find Android apps that match a given full text query. Searches are done against 42matters index of android apps and are ranked based on 42matters' algorithms, which do not match the order on other stores such as Google Play Store. See full API documentation here.
playStore.search('arcade games')
.then(function (res) {
console.log(res);
});
search
receives the following arguments:
- query - mandatory, query string for the search (e.g. 'arcade games').
- include_desc - optional. whether or not to include description. default is true.
- limit - optional. limit response items (1-50).
- page - optional. page number (1 - max pages).
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional. callback function.
Advanced Query API
Run an advanced query with multiple filters and sorting for all available app parameters for android app. Ideal for data analysis and market insights of the Google Play Store™. See full API documentation here.
// Query 10 most popular apps in google play store
playStore.query({
"query": {
"name": "Most Popular Apps",
"platform": "android",
"query_params": {
"sort": "number_ratings",
"from": 0,
"num": 10,
"sort_order": "desc"
}
}
})
.then(function (queryResult) {
// ..
});
query
receives the following arguments:
- query - mandatory. Query object. You can design your query JSON here.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- limit - optional. limit response items (1-100).
- page - optional. page number (1 - max pages).
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional.
Availability API
Check in which countries an android app is available.
playStore.available('com.facebook.orca')
.then(function(res) {
console.log(res);
});
{
DE: true,
NO: true,
RS: true,
RU: true,
BE: true,
FI: true,
TW: true,
HK: true,
PT: true,
BG: true,
JP: true,
DK: true,
HR: true,
FR: true,
NZ: true,
UA: true,
HU: true,
SA: true,
BR: true,
SE: true,
SG: true,
SK: true,
GB: true,
ID: true,
US: true,
CA: true,
EG: true,
IL: true,
AE: true,
IN: true,
CH: true,
KR: true,
ZA: true,
CL: true,
IT: true,
GR: true,
ES: true,
AR: true,
AT: true,
AU: true,
TH: true,
CZ: true,
VN: true,
PH: true,
PL: true,
RO: true,
NL: true,
TR: true,
MX: true,
MY: true,
LT: true,
PY: true,
LV: true,
EE: true,
UY: true,
CO: true,
PE: true,
CN: false
}
available
receives the following arguments:
- pname - mandatory. Package name (e.g. 'com.facebook.orca').
- countries - optional, array of language codes. (e.g ['en']). Output will consist of these countries only.
- callback - optional.
Top Google Play Charts API
Retrieve the top app charts on Google Play for a specific date and country. Lists have up to 540 apps for 55 countries for a total of 6944 lists daily. See more details here.
// Google top charts
playStore.getTopGoogleChart('topgrossing')
.then(function (chart) {
chart = chart.appList;
// .. chart processing
});
getTopGoogleChart
receives the following arguments:
- chart - mandatory. chart name [topsellingfree|topsellingpaid|topgrossing|topsellingnewfree|topsellingnewpaid].
- country - optional. country code (e.g 'US'). default is 'US'.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- limit - optional. limit response items (1-100).
- page - optional. page number (1 - max pages).
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional.
Apple Store API
Constructor
var appleStore = new AppleStoreAPI({
accessToken: "42MATTERS_ACCESS_TOKEN", // mandatory, 42matters access token
debug: true|false, // optional. default is false.
useCache: true|false // optional. default is false.
});
Lookup API
Returns iPhone and iPad applications that match a given iOS app track ID. See full API documentation here.
appleStore.lookup(343200656)
.then(function(res) {
console.log(res);
});
{
artistId: 298910979,
artistName: 'Rovio Entertainment Ltd',
artistViewUrl: 'http://itunes.apple.com/artist/rovio-entertainment-ltd/id298910979?uo=5',
artworkUrl100: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/175x175bb-85.jpg',
artworkUrl512: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/512x512bb-85.jpg',
artworkUrl60: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/100x100bb-85.jpg',
averageUserRating: 4.5,
averageUserRatingForCurrentVersion: 4,
bundleId: 'com.clickgamer.AngryBirds',
contentAdvisoryRating: '4+',
currency: 'USD',
description: 'Use the unique powers of the Angry Birds to destroy the greedy pigs\' defenses!
\n\nThe survival of the Angry Birds is at stake. Dish out revenge on the greedy pigs who stole their eggs. Use the unique powers of each bird to destroy the pigs’ defenses. Angry Birds features challenging physics-based gameplay and hours of replay value. Each level requires logic, skill and force to solve.
\n\nIf you get stuck in the game, you can purchase the Mighty Eagle! Mighty Eagle is a one-time in-app purchase in Angry Birds that gives unlimited use. This phenomenal creature will soar from the skies to wreak havoc and smash the pesky pigs into oblivion. There’s just one catch: you can only use the aid of Mighty Eagle to pass a level once per hour. Mighty Eagle also includes all new gameplay goals and achievements!
\n\nIn addition to the Mighty Eagle, Angry Birds now has power-ups! Boost your birds’ abilities and three-star levels to unlock secret content! Angry Birds now has the following amazing power-ups: Sling Scope for laser targeting, King Sling for maximum flinging power, Super Seeds to supersize your birds, and Birdquake to shake pigs’ defenses to the ground!
\n\nHAVING TROUBLE? Head over to https://support.rovio.com where you can browse FAQs or submit a request to our support flock!\n\n#1 IPHONE PAID APP in US, UK, Canada, Italy, Germany, Russia, Sweden, Denmark, Finland, Singapore, Poland, France, Netherlands, Malta, Greece, Austria, Australia, Turkey, UAE, Saudi Arabia, Israel, Belgium, Norway, Hungary, Malaysia, Luxembourg, Portugal, Czech Republic, Spain, Ireland, Romania, New Zealand, Latvia, Lithuania, Estonia, Nicaragua, Kazakhstan, Argentina, Bulgaria, Slovakia, Slovenia, Mauritius, Chile, Hong Kong, Pakistan, Taiwan, Colombia, Indonesia, Thailand, India, Kenya, Macedonia, Croatia, Macau, Paraguay, Peru, Armenia, Philippines, Vietnam, Jordan and Kuwait.
\n\n#1 IPHONE PAID GAME in more countries than we can count!\n\nTerms of Use: http://www.rovio.com/eula
\nPrivacy Policy: http://www.rovio.com/privacy
\n\nThis application may require internet connectivity and subsequent data transfer charges may apply.\n\n\nImportant Message for Parents\n\nThis game may include:\n- Direct links to social networking websites that are intended for an audience over the age of 13.\n- Direct links to the internet that can take players away from the game with the potential to browse any web page.\n- Advertising of Rovio products and also products from select partners.\n- The option to make in-app purchases. The bill payer should always be consulted beforehand.',
features: [ 'gameCenter' ],
fileSizeBytes: '71674372',
fileSizeBytesNumeric: 71674372,
formattedPrice: '0.99 USD',
genreIds: [ '6014', '6016', '7001', '7003' ],
genres: [ 'Games', 'Entertainment', 'Action', 'Arcade' ],
ipad: false,
ipadScreenshotUrls: [],
iphone: true,
isGameCenterEnabled: true,
isVppDeviceBasedLicensingEnabled: true,
languageCodesISO2A: [ 'EN', 'FR', 'DE', 'IT', 'JA', 'PT', 'RU', 'ZH', 'ES', 'ZH' ],
minimumOsVersion: '6.0',
price: 0.99,
primaryGenreId: 6014,
primaryGenreName: 'Games',
releaseDate: '2009-12-11T00:00:00+00:00',
releaseNotes: 'The #1 App of all time turns 6!\nJoin the celebration in 15 all-new levels in the BirdDay episode!',
screenshotUrls: [
'http://a3.mzstatic.com/us/r30/Purple5/v4/bc/9f/44/bc9f4453-7031-d39f-1ba2-c64ac3662c93/screen480x480.jpeg',
'http://a1.mzstatic.com/us/r30/Purple69/v4/e9/d3/f6/e9d3f6f8-ac9e-2218-e069-9f5fac99daee/screen480x480.jpeg',
'http://a3.mzstatic.com/us/r30/Purple7/v4/7e/d5/8b/7ed58b94-dfbf-366a-f3f6-5a8f65e2fa94/screen480x480.jpeg',
'http://a3.mzstatic.com/us/r30/Purple5/v4/76/7a/f4/767af4a2-9471-ac84-f428-c1e0494d99d1/screen480x480.jpeg'
],
sellerName: 'Rovio Entertainment Ltd',
sellerUrl: 'http://www.angrybirds.com/',
supportedDevices: [
'iPhone-3GS',
'iPhone4',
'iPodTouchFourthGen',
'iPad2Wifi',
'iPad23G',
'iPhone4S',
'iPadThirdGen',
'iPadThirdGen4G',
'iPhone5',
'iPodTouchFifthGen',
'iPadFourthGen',
'iPadFourthGen4G',
'iPadMini',
'iPadMini4G',
'iPhone5c',
'iPhone5s',
'iPhone6',
'iPhone6Plus',
'iPodTouchSixthGen'
],
trackCensoredName: 'Angry Birds',
trackContentRating: '4+',
trackId: 343200656,
trackViewUrl: 'http://itunes.apple.com/app/angry-birds/id343200656?uo=5&at=10l9yE',
userRatingCount: 822935,
userRatingCountForCurrentVersion: 802,
version: '6.0.1'
}
lookup
receives the following arguments:
- id - mandatory, apple store ID (e.g. 343200656). number format.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['artistId', 'artistName']). Default is all.
- callback - optional. callback function.
Search API
Returns iPhone and iPad applications that match a given full text search query. Search results are ranked based on 42matters' algorithms and do no match the order of the Apple App Store.
appleStore.search("angry birds")
.then(function(res) {
console.log(res);
});
{
"results": [{
artistId: 298910979,
artistName: 'Rovio Entertainment Ltd',
artistViewUrl: 'http://itunes.apple.com/artist/rovio-entertainment-ltd/id298910979?uo=5',
artworkUrl100: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/175x175bb-85.jpg',
artworkUrl512: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/512x512bb-85.jpg',
artworkUrl60: 'http://is2.mzstatic.com/image/thumb/Purple69/v4/b1/e2/8d/b1e28d0d-810b-173a-2d97-6a472774c6ae/mzl.uulfrkla.png/100x100bb-85.jpg',
averageUserRating: 4.5,
averageUserRatingForCurrentVersion: 4,
bundleId: 'com.clickgamer.AngryBirds',
contentAdvisoryRating: '4+',
currency: 'USD',
description: 'Use the unique powers of the Angry Birds to destroy the greedy pigs\' defenses!
\n\nThe survival of the Angry Birds is at stake. Dish out revenge on the greedy pigs who stole their eggs. Use the unique powers of each bird to destroy the pigs’ defenses. Angry Birds features challenging physics-based gameplay and hours of replay value. Each level requires logic, skill and force to solve.
\n\nIf you get stuck in the game, you can purchase the Mighty Eagle! Mighty Eagle is a one-time in-app purchase in Angry Birds that gives unlimited use. This phenomenal creature will soar from the skies to wreak havoc and smash the pesky pigs into oblivion. There’s just one catch: you can only use the aid of Mighty Eagle to pass a level once per hour. Mighty Eagle also includes all new gameplay goals and achievements!
\n\nIn addition to the Mighty Eagle, Angry Birds now has power-ups! Boost your birds’ abilities and three-star levels to unlock secret content! Angry Birds now has the following amazing power-ups: Sling Scope for laser targeting, King Sling for maximum flinging power, Super Seeds to supersize your birds, and Birdquake to shake pigs’ defenses to the ground!
\n\nHAVING TROUBLE? Head over to https://support.rovio.com where you can browse FAQs or submit a request to our support flock!\n\n#1 IPHONE PAID APP in US, UK, Canada, Italy, Germany, Russia, Sweden, Denmark, Finland, Singapore, Poland, France, Netherlands, Malta, Greece, Austria, Australia, Turkey, UAE, Saudi Arabia, Israel, Belgium, Norway, Hungary, Malaysia, Luxembourg, Portugal, Czech Republic, Spain, Ireland, Romania, New Zealand, Latvia, Lithuania, Estonia, Nicaragua, Kazakhstan, Argentina, Bulgaria, Slovakia, Slovenia, Mauritius, Chile, Hong Kong, Pakistan, Taiwan, Colombia, Indonesia, Thailand, India, Kenya, Macedonia, Croatia, Macau, Paraguay, Peru, Armenia, Philippines, Vietnam, Jordan and Kuwait.
\n\n#1 IPHONE PAID GAME in more countries than we can count!\n\nTerms of Use: http://www.rovio.com/eula
\nPrivacy Policy: http://www.rovio.com/privacy
\n\nThis application may require internet connectivity and subsequent data transfer charges may apply.\n\n\nImportant Message for Parents\n\nThis game may include:\n- Direct links to social networking websites that are intended for an audience over the age of 13.\n- Direct links to the internet that can take players away from the game with the potential to browse any web page.\n- Advertising of Rovio products and also products from select partners.\n- The option to make in-app purchases. The bill payer should always be consulted beforehand.',
features: [Object],
fileSizeBytes: '71674372',
fileSizeBytesNumeric: 71674372,
formattedPrice: '0.99 USD',
genreIds: [Object],
genres: [Object],
ipad: false,
ipadScreenshotUrls: [],
iphone: true,
isGameCenterEnabled: true,
isVppDeviceBasedLicensingEnabled: true,
languageCodesISO2A: [Object],
minimumOsVersion: '6.0',
price: 0.99,
primaryGenreId: 6014,
primaryGenreName: 'Games',
releaseDate: '2009-12-11T00:00:00+00:00',
releaseNotes: 'The #1 App of all time turns 6!\nJoin the celebration in 15 all-new levels in the BirdDay episode!',
screenshotUrls: [Object],
sellerName: 'Rovio Entertainment Ltd',
sellerUrl: 'http://www.angrybirds.com/',
supportedDevices: [Object],
trackCensoredName: 'Angry Birds',
trackContentRating: '4+',
trackId: 343200656,
trackViewUrl: 'http://itunes.apple.com/app/angry-birds/id343200656?uo=5&at=10l9yE',
userRatingCount: 822935,
userRatingCountForCurrentVersion: 802,
version: '6.0.1'
}]
}
search
receives the following arguments:
- query - mandatory, query string for the search (e.g. 'angry birds').
- include_desc - optional. whether or not to include description. default is true.
- limit - optional. limit response items (1-50).
- page - optional. page number (1 - max pages).
- lang - optional, language code. (e.g 'en'). default is 'en'.
- fields - optional. output fields (e.g ['artistId']). Default is all.
- callback - optional. callback function.
Advanced Query API
Run an advanced query with multiple filters and sorting for all available app parameters for iPhone and iPad apps. Ideal for data analysis and market insights of the Apple App Store™. See full API documentation here.
// Get the top 10 most rated apps on Apple App Store
appleStore.query({
"query": {
"name": "Most Popular Apps",
"platform": "ios",
"query_params": {
"from": 0,
"num": 100,
"sort": "userRatingCount",
"sort_order": "desc"
}
}
})
.then(function (res) {
// do something with query result
});
query
receives the following arguments:
- query - mandatory. Query object. You can design your query JSON here.
- lang - optional, language code. (e.g 'en'). default is 'en'.
- limit - optional. limit response items (1-100).
- page - optional. page number (1 - max pages).
- fields - optional. output fields (e.g ['package_name']). Default is all.
- callback - optional.