Closed baltpeter closed 1 year ago
Actually, seems like that has (slightly) changed as well. You now also need the Origin
header:
curl --request GET \
--url 'https://amp-api.apps.apple.com/v1/catalog/de/apps/284882215?l=de-de&platform=web&fields=privacyDetails' \
--header 'Origin: https://apps.apple.com' \
--header 'authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlU4UlRZVjVaRFMifQ.eyJpc3MiOiI3TktaMlZQNDhaIiwiaWF0IjoxNjcwODcxNjA2LCJleHAiOjE2NzgxMjkyMDYsInJvb3RfaHR0cHNfb3JpZ2luIjpbImFwcGxlLmNvbSJdfQ.e3ITXRdUga9yg5PPmzEY7co-Je4WiAGcr17Gzbyw48m_f6GG9FjkdbM0aFn8v9YEyD5CgPi1xJ3YkanHLMjGNw'
iTunes for Windows doesn't show the privacy labels.
For viewing an app page, it does a request to https://apps.apple.com/de/app/facebook/id284882215?l=en
. That doesn't include the privacy label data and I haven't found a parameter to change that.
The App Store on an iPhone uses the same endpoint as the website:
Interestingly, this Bearer
token works without the Origin
header:
curl --request GET \
--url 'https://amp-api-edge.apps.apple.com/v1/catalog/de/apps/1163805393?additionalPlatforms=appletv%2Cipad%2Cmac%2Cwatch&extend=customArtwork&fields=privacyDetails%2CartistName%2CprivacyPolicyUrl&l=en-GB&platform=iphone' \
--header 'authorization: Bearer eyJraWQiOiJGNDdEWk4xOEYwIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJBUzI4UjdHMTdNIiwiaWF0IjoxNjczOTY5ODk4LCJleHAiOjE2NzY1NjE4OTgsIm1pZCI6IklWZWVBT3ZaNGFsalM4YytqazVLTjVmV2ErQT0ifQ.q6v3eGHwYL6lAk07a2OKgjz0d9VEM_jNkbXV717GgsNewX5TY98rgPTzcDztkZ4FnXWZgSH-8HxDlxQXXUSB-w'
The iPhone gets its Bearer
token from https://sf-api-token-service.itunes.apple.com/apiToken?clientClass=apple&clientId=appstore&os=iOS&osVersion=15.7.2&productVersion=3.0&version=2
:
{
"token": "eyJraWQiOiJGNDdEWk4xOEYwIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJBUzI4UjdHMTdNIiwiaWF0IjoxNjczOTcwODA4LCJleHAiOjE2NzM5NzExMDh9.5_aUrSnDfg0bgAhIACqoB10HulUDTYl2vkGnZLEq882EUQd1cxUttkKmYy_JqXyxln5n7VhQXC3tT0VRmz27MA",
"clientId": "appstore",
"ping": "https://play.itunes.apple.com/WebObjects/MZPlay.woa/wa/anonymousVerifyProvisioning"
}
Unsurprisingly, we can't send our own requests to that endpoint. It needs the correct combination of those three headers and I don't know of a way of generating the signature ourselves:
curl --request GET \
--url 'https://sf-api-token-service.itunes.apple.com/apiToken?clientClass=apple&clientId=appstore&os=iOS&osVersion=15.7.2&productVersion=3.0&version=2' \
--header 'x-apple-actionsignature: ApYfw8AblRbpfphwvj+LJaFxXkg+6vF/eag45saGxIcAAAABUAMAAACNAAAAgDAicpKdbZ2FgUcKZGHeEClfnwAF3F9aFR/eFppTil5IAlWAg6//OPDyMz/w6A6+Cr18Sf6CmZLyGoov2fFqtidfG8uSiqZGL8EGYWpBfbppCjQv/BbLnig8R64C4zbXfMyc/3QidRuP7BvHCl0huNLj7OqjtCR/My/66o1vMY5gAAAAEczStSga1ThEHZu3LRigp1c+AAAAnwHjVsayYZI3rKzUhQxVtUG3ZrtY7QAAAIYEBxveTx48utcwb6tTW7PydONjxsDpYAZVzpIxhO+sjCD/Xnmn2f5ouh0md5MpMceFKF3ejpjSRLY8Xt6+ZdExSuBOOTY0QfhvX/1VzpxhEjrhZ3LfKdYaf/kvbM5dVzad8V8kA6U6ltuUwBTyFi9uyVVv+j7tzmO/+Yov5gRWRSCOv7abDwAAAAAAAAAAAAAAAAAAAAEERhcAAA==' \
--header 'x-apple-amd-m: IVeeAOvZ4aljS8c+jk5KN5fWa+DvD+PngaBSUsrJohQcFaYLgBb409unKgjGqbFS8QTASUWeGoe93ytG' \
--header 'x-apple-store-front: 143443-2,29 t:apps3' \
--header 'x-request-timestamp: 2023-01-17T15:38:14Z'
Removing or changing any of those headers results in:
{
"status": "verificationFailure"
}
Ok, so where does the website get its token from?
In the HTML of a store page (e.g. https://apps.apple.com/de/app/facebook/id284882215
), there is a meta tag like this:
<meta name="web-experience-app/config/environment" content="%7B%22appVersion%22%3A1%2C%22modulePrefix%22%3A%22web-experience-app%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%2F%22%2C%22locationType%22%3A%22history-hash-router-scroll%22%2C%22historySupportMiddleware%22%3Atrue%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22PROGRESS_BAR_DELAY%22%3A3000%2C%22CLOCK_INTERVAL%22%3A1000%2C%22LOADING_SPINNER_SPY%22%3Atrue%2C%22BREAKPOINTS%22%3A%7B%22large%22%3A%7B%22min%22%3A1069%2C%22max%22%3A1440%2C%22content%22%3A980%7D%2C%22medium%22%3A%7B%22min%22%3A735%2C%22max%22%3A1068%2C%22content%22%3A692%7D%2C%22small%22%3A%7B%22min%22%3A320%2C%22max%22%3A734%2C%22content%22%3A280%7D%7D%2C%22buildVariant%22%3A%22apps%22%2C%22name%22%3A%22web-experience-app%22%2C%22version%22%3A%222250.7.0%2Bd3adb500%22%7D%2C%22MEDIA_API%22%3A%7B%22token%22%3A%22eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlU4UlRZVjVaRFMifQ.eyJpc3MiOiI3TktaMlZQNDhaIiwiaWF0IjoxNjcwODcxNjA2LCJleHAiOjE2NzgxMjkyMDYsInJvb3RfaHR0cHNfb3JpZ2luIjpbImFwcGxlLmNvbSJdfQ.e3ITXRdUga9yg5PPmzEY7co-Je4WiAGcr17Gzbyw48m_f6GG9FjkdbM0aFn8v9YEyD5CgPi1xJ3YkanHLMjGNw%22%7D%2C%22i18n%22%3A%7B%22defaultLocale%22%3A%22en-gb%22%2C%22useDevLoc%22%3Afalse%2C%22pathToLocales%22%3A%22dist%2Flocales%22%7D%2C%22MEDIA_ARTWORK%22%3A%7B%22BREAKPOINTS%22%3A%7B%22large%22%3A%7B%22min%22%3A1069%2C%22max%22%3A1440%2C%22content%22%3A980%7D%2C%22medium%22%3A%7B%22min%22%3A735%2C%22max%22%3A1068%2C%22content%22%3A692%7D%2C%22small%22%3A%7B%22min%22%3A320%2C%22max%22%3A734%2C%22content%22%3A280%7D%7D%7D%2C%22API%22%3A%7B%22AppHost%22%3A%22https%3A%2F%2Famp-api.apps.apple.com%22%2C%22AppEventHost%22%3A%22https%3A%2F%2Famp-api-edge.apps.apple.com%22%2C%22globalElementsPath%22%3A%22%2Fglobal-elements%22%7D%2C%22fastboot%22%3A%7B%22hostWhitelist%22%3A%5B%7B%7D%5D%7D%2C%22ember-short-number%22%3A%7B%22locales%22%3A%5B%22ar-dz%22%2C%22ar-bh%22%2C%22ar-eg%22%2C%22ar-iq%22%2C%22ar-jo%22%2C%22ar-kw%22%2C%22ar-lb%22%2C%22ar-ly%22%2C%22ar-ma%22%2C%22ar-om%22%2C%22ar-qa%22%2C%22ar-sa%22%2C%22ar-sd%22%2C%22ar-sy%22%2C%22ar-tn%22%2C%22ar-ae%22%2C%22ar-ye%22%2C%22he-il%22%2C%22iw-il%22%2C%22ca-es%22%2C%22cs-cz%22%2C%22da-dk%22%2C%22de-ch%22%2C%22de-de%22%2C%22el-gr%22%2C%22en-au%22%2C%22en-ca%22%2C%22en-gb%22%2C%22en-us%22%2C%22es-419%22%2C%22es-es%22%2C%22es-mx%22%2C%22es-xl%22%2C%22et-ee%22%2C%22fi-fi%22%2C%22fr-ca%22%2C%22fr-fr%22%2C%22hi-in%22%2C%22hr-hr%22%2C%22hu-hu%22%2C%22id-id%22%2C%22is-is%22%2C%22it-it%22%2C%22iw-il%22%2C%22ja-jp%22%2C%22ko-kr%22%2C%22lt-lt%22%2C%22lv-lv%22%2C%22ms-my%22%2C%22nl-nl%22%2C%22no-no%22%2C%22no-nb%22%2C%22nb-no%22%2C%22pl-pl%22%2C%22pt-br%22%2C%22pt-pt%22%2C%22ro-ro%22%2C%22ru-ru%22%2C%22sk-sk%22%2C%22sv-se%22%2C%22th-th%22%2C%22tr-tr%22%2C%22uk-ua%22%2C%22vi-vi%22%2C%22vi-vn%22%2C%22zh-cn%22%2C%22zh-hans%22%2C%22zh-hant%22%2C%22zh-hk%22%2C%22zh-tw%22%2C%22ar%22%2C%22ca%22%2C%22cs%22%2C%22da%22%2C%22de%22%2C%22el%22%2C%22en%22%2C%22es%22%2C%22fi%22%2C%22fr%22%2C%22he%22%2C%22hi%22%2C%22hr%22%2C%22hu%22%2C%22id%22%2C%22is%22%2C%22it%22%2C%22ja%22%2C%22ko%22%2C%22lt%22%2C%22lv%22%2C%22ms%22%2C%22nb%22%2C%22nl%22%2C%22no%22%2C%22pl%22%2C%22pt%22%2C%22ro%22%2C%22ru%22%2C%22sk%22%2C%22sv%22%2C%22th%22%2C%22tr%22%2C%22uk%22%2C%22vi%22%2C%22zh%22%5D%7D%2C%22ember-cli-mirage%22%3A%7B%22enabled%22%3Afalse%2C%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22BREAKPOINTS%22%3A%7B%22large%22%3A%7B%22min%22%3A1069%2C%22max%22%3A1440%2C%22content%22%3A980%7D%2C%22medium%22%3A%7B%22min%22%3A735%2C%22max%22%3A1068%2C%22content%22%3A692%7D%2C%22small%22%3A%7B%22min%22%3A320%2C%22max%22%3A734%2C%22content%22%3A280%7D%7D%2C%22METRICS%22%3A%7B%22variant%22%3A%22web%22%2C%22baseFields%22%3A%7B%22appName%22%3A%22web-experience-app%22%2C%22constraintProfiles%22%3A%5B%22AMPWeb%22%5D%7D%2C%22clickstream%22%3A%7B%22enabled%22%3Atrue%2C%22topic%22%3A%5B%22xp_amp_web_exp%22%5D%2C%22autoTrackClicks%22%3Atrue%7D%2C%22performance%22%3A%7B%22enabled%22%3Atrue%2C%22topic%22%3A%22xp_amp_appstore_perf%22%7D%7D%2C%22MEDIA_SHELF%22%3A%7B%22GRID_CONFIG%22%3A%7B%22books-brick-row%22%3A%7B%22small%22%3A1%2C%22medium%22%3A2%2C%22large%22%3A3%7D%7D%2C%22BREAKPOINTS%22%3A%7B%22large%22%3A%7B%22min%22%3A1069%2C%22max%22%3A1440%2C%22content%22%3A980%7D%2C%22medium%22%3A%7B%22min%22%3A735%2C%22max%22%3A1068%2C%22content%22%3A692%7D%2C%22small%22%3A%7B%22min%22%3A320%2C%22max%22%3A734%2C%22content%22%3A280%7D%7D%7D%2C%22SASSKIT_GENERATOR%22%3A%7B%22VIEWPORT_CONFIG%22%3A%7B%22BREAKPOINTS%22%3A%7B%22large%22%3A%7B%22min%22%3A1069%2C%22max%22%3A1440%2C%22content%22%3A980%7D%2C%22medium%22%3A%7B%22min%22%3A735%2C%22max%22%3A1068%2C%22content%22%3A692%7D%2C%22small%22%3A%7B%22min%22%3A320%2C%22max%22%3A734%2C%22content%22%3A280%7D%7D%7D%7D%2C%22features%22%3A%7B%22BUILD_VARIANT_APPS%22%3Atrue%2C%22BUILD_VARIANT_BOOKS%22%3Afalse%2C%22BUILD_VARIANT_FITNESS%22%3Afalse%2C%22BUILD_VARIANT_PODCASTS%22%3Afalse%2C%22BUILD_VARIANT_DEFAULT%22%3Afalse%2C%22TV%22%3Afalse%2C%22PODCASTS%22%3Afalse%2C%22BOOKS%22%3Afalse%2C%22APPS%22%3Atrue%2C%22ARTISTS%22%3Afalse%2C%22DEEPLINK_ROUTE%22%3Afalse%2C%22EMBER_DATA%22%3Afalse%2C%22CHARTS%22%3Atrue%2C%22FITNESS%22%3Afalse%2C%22SHARE_UI%22%3Afalse%2C%22SEPARATE_RTL_STYLESHEET%22%3Atrue%7D%2C%22ember-cli-content-security-policy%22%3A%7B%22policy%22%3A%22upgrade-insecure-requests%20%3B%20default-src%20'none'%3B%20img-src%20'self'%20https%3A%2F%2F*.apple.com%20https%3A%2F%2F*.mzstatic.com%20data%3A%3B%20style-src%20'self'%20https%3A%2F%2F*.apple.com%20'unsafe-inline'%3B%20font-src%20'self'%20https%3A%2F%2F*.apple.com%3B%20media-src%20'self'%20https%3A%2F%2F*.apple.com%20blob%3A%3B%20connect-src%20'self'%20https%3A%2F%2F*.apple.com%20https%3A%2F%2F*.mzstatic.com%3B%20script-src%20'self'%20https%3A%2F%2F*.apple.com%20'unsafe-eval'%20'sha256-4ywTGAe4rEpoHt8XkjbkdOWklMJ%2F1Py%2Fx6b3%2FaGbtSQ%3D'%20blob%3A%3B%20frame-src%20'self'%20https%3A%2F%2F*.apple.com%20itmss%3A%20itms-appss%3A%20itms-bookss%3A%20itms-itunesus%3A%20itms-messagess%3A%20itms-podcasts%3A%20itms-watchs%3A%20macappstores%3A%20musics%3A%20apple-musics%3A%20podcasts%3A%20videos%3A%3B%22%2C%22reportOnly%22%3Afalse%7D%2C%22exportApplicationGlobal%22%3Afalse%7D">
Here's what the content looks like URL-decoded:
{
"appVersion": 1,
"modulePrefix": "web-experience-app",
"environment": "production",
"rootURL": "/",
"locationType": "history-hash-router-scroll",
"historySupportMiddleware": true,
"EmberENV": {
"FEATURES": {},
"EXTEND_PROTOTYPES": { "Date": false },
"_APPLICATION_TEMPLATE_WRAPPER": false,
"_DEFAULT_ASYNC_OBSERVERS": true,
"_JQUERY_INTEGRATION": false,
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": true
},
"APP": {
"PROGRESS_BAR_DELAY": 3000,
"CLOCK_INTERVAL": 1000,
"LOADING_SPINNER_SPY": true,
"BREAKPOINTS": {
"large": { "min": 1069, "max": 1440, "content": 980 },
"medium": { "min": 735, "max": 1068, "content": 692 },
"small": { "min": 320, "max": 734, "content": 280 }
},
"buildVariant": "apps",
"name": "web-experience-app",
"version": "2250.7.0+d3adb500"
},
"MEDIA_API": {
"token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlU4UlRZVjVaRFMifQ.eyJpc3MiOiI3TktaMlZQNDhaIiwiaWF0IjoxNjcwODcxNjA2LCJleHAiOjE2NzgxMjkyMDYsInJvb3RfaHR0cHNfb3JpZ2luIjpbImFwcGxlLmNvbSJdfQ.e3ITXRdUga9yg5PPmzEY7co-Je4WiAGcr17Gzbyw48m_f6GG9FjkdbM0aFn8v9YEyD5CgPi1xJ3YkanHLMjGNw"
},
"i18n": { "defaultLocale": "en-gb", "useDevLoc": false, "pathToLocales": "dist/locales" },
"MEDIA_ARTWORK": {
"BREAKPOINTS": {
"large": { "min": 1069, "max": 1440, "content": 980 },
"medium": { "min": 735, "max": 1068, "content": 692 },
"small": { "min": 320, "max": 734, "content": 280 }
}
},
"API": {
"AppHost": "https://amp-api.apps.apple.com",
"AppEventHost": "https://amp-api-edge.apps.apple.com",
"globalElementsPath": "/global-elements"
},
"fastboot": { "hostWhitelist": [{}] },
"ember-short-number": {
"locales": [
"ar-dz",
"ar-bh",
"ar-eg",
"ar-iq",
"ar-jo",
"ar-kw",
"ar-lb",
"ar-ly",
"ar-ma",
"ar-om",
"ar-qa",
"ar-sa",
"ar-sd",
"ar-sy",
"ar-tn",
"ar-ae",
"ar-ye",
"he-il",
"iw-il",
"ca-es",
"cs-cz",
"da-dk",
"de-ch",
"de-de",
"el-gr",
"en-au",
"en-ca",
"en-gb",
"en-us",
"es-419",
"es-es",
"es-mx",
"es-xl",
"et-ee",
"fi-fi",
"fr-ca",
"fr-fr",
"hi-in",
"hr-hr",
"hu-hu",
"id-id",
"is-is",
"it-it",
"iw-il",
"ja-jp",
"ko-kr",
"lt-lt",
"lv-lv",
"ms-my",
"nl-nl",
"no-no",
"no-nb",
"nb-no",
"pl-pl",
"pt-br",
"pt-pt",
"ro-ro",
"ru-ru",
"sk-sk",
"sv-se",
"th-th",
"tr-tr",
"uk-ua",
"vi-vi",
"vi-vn",
"zh-cn",
"zh-hans",
"zh-hant",
"zh-hk",
"zh-tw",
"ar",
"ca",
"cs",
"da",
"de",
"el",
"en",
"es",
"fi",
"fr",
"he",
"hi",
"hr",
"hu",
"id",
"is",
"it",
"ja",
"ko",
"lt",
"lv",
"ms",
"nb",
"nl",
"no",
"pl",
"pt",
"ro",
"ru",
"sk",
"sv",
"th",
"tr",
"uk",
"vi",
"zh"
]
},
"ember-cli-mirage": { "enabled": false, "usingProxy": false, "useDefaultPassthroughs": true },
"BREAKPOINTS": {
"large": { "min": 1069, "max": 1440, "content": 980 },
"medium": { "min": 735, "max": 1068, "content": 692 },
"small": { "min": 320, "max": 734, "content": 280 }
},
"METRICS": {
"variant": "web",
"baseFields": { "appName": "web-experience-app", "constraintProfiles": ["AMPWeb"] },
"clickstream": { "enabled": true, "topic": ["xp_amp_web_exp"], "autoTrackClicks": true },
"performance": { "enabled": true, "topic": "xp_amp_appstore_perf" }
},
"MEDIA_SHELF": {
"GRID_CONFIG": { "books-brick-row": { "small": 1, "medium": 2, "large": 3 } },
"BREAKPOINTS": {
"large": { "min": 1069, "max": 1440, "content": 980 },
"medium": { "min": 735, "max": 1068, "content": 692 },
"small": { "min": 320, "max": 734, "content": 280 }
}
},
"SASSKIT_GENERATOR": {
"VIEWPORT_CONFIG": {
"BREAKPOINTS": {
"large": { "min": 1069, "max": 1440, "content": 980 },
"medium": { "min": 735, "max": 1068, "content": 692 },
"small": { "min": 320, "max": 734, "content": 280 }
}
}
},
"features": {
"BUILD_VARIANT_APPS": true,
"BUILD_VARIANT_BOOKS": false,
"BUILD_VARIANT_FITNESS": false,
"BUILD_VARIANT_PODCASTS": false,
"BUILD_VARIANT_DEFAULT": false,
"TV": false,
"PODCASTS": false,
"BOOKS": false,
"APPS": true,
"ARTISTS": false,
"DEEPLINK_ROUTE": false,
"EMBER_DATA": false,
"CHARTS": true,
"FITNESS": false,
"SHARE_UI": false,
"SEPARATE_RTL_STYLESHEET": true
},
"ember-cli-content-security-policy": {
"policy": "upgrade-insecure-requests ; default-src 'none'; img-src 'self' https://*.apple.com https://*.mzstatic.com data:; style-src 'self' https://*.apple.com 'unsafe-inline'; font-src 'self' https://*.apple.com; media-src 'self' https://*.apple.com blob:; connect-src 'self' https://*.apple.com https://*.mzstatic.com; script-src 'self' https://*.apple.com 'unsafe-eval' 'sha256-4ywTGAe4rEpoHt8XkjbkdOWklMJ/1Py/x6b3/aGbtSQ=' blob:; frame-src 'self' https://*.apple.com itmss: itms-appss: itms-bookss: itms-itunesus: itms-messagess: itms-podcasts: itms-watchs: macappstores: musics: apple-musics: podcasts: videos:;",
"reportOnly": false
},
"exportApplicationGlobal": false
}
Amusingly enough, the token is included even if you get a 429 Too many requests
response (which is missing all the other data). :D
Time for another quick experiment: Do any of the platforms in X-Apple-Store-Front
(see #1) also get a token? Maybe one of them gets a response in a format that's nicer to handle than HTML.
import fetch from 'cross-fetch';
(async () => {
for (let i = 0; i <= 200; i++) {
try {
const res = await fetch('https://apps.apple.com/app/id284882215', {
method: 'GET',
headers: { 'X-Apple-Store-Front': `143443-2,${i}` },
}).then((response) => response.text());
if (res.includes('token')) console.log(i);
} catch {}
}
})();
Result:
127
129
130
131
133
134
136
138
140
141
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
Only ones above 127
. Pretty sure that those are not actual platforms.
The benefit of them is that their response is a lot shorter than the response for web (8.4 KB vs. 425 KB). But unfortunately, they often return a 403 Forbidden
response with no body. You then have to wait a bit before trying again. Thus, they are not an option, I'm afraid.
This is the smallest page I found that contains the token: https://apps.apple.com/story/id1538632801
at 101 KB.
Actually, never mind: We can go even lower.
404 pages (e.g. https://apps.apple.com/404
) have only 54 KB.
(If you manage to run into a 429
, it's only 9 KB because that page doesn't include the translations object but I guess that doesn't help us here. :D)
Since the endpoint can return a lot more than just privacy labels, I'll make this an app details function instead.
Interesting observation: The token used on the website seems to be the same for everyone. It's a JWT. The current one was issued at 2022-12-12T19:00:06.000Z and expires 2023-03-06T19:00:06.000Z, so unless you're unlucky and request one near the end of its expiration, they do last quite a while.
Ok, so let's investigate what https://amp-api.apps.apple.com/v1/catalog/<country>/apps
can do.
From the privacy labels on the website, we get:
https://amp-api.apps.apple.com/v1/catalog/us/apps/284882215?l=en-us&platform=web&fields=privacyDetails
But we can get quite a lot more from a traffic dump from the App Store app on an iPhone.
First of all, we see a few different endpoints:
https://amp-api-edge.apps.apple.com/v1/editorial/de/today
https://amp-api-edge.apps.apple.com/v1/engagement/de/search/landing/groupings
https://amp-api-edge.apps.apple.com/v1/catalog/de/apps
https://amp-api-edge.apps.apple.com/v1/catalog/de/apps/1163805393
The query parameters of these seem quite similar, so I'll just dump them here:
additionalPlatforms: appletv,ipad,mac,watch
extend: customArtwork,editorialArtwork,editorialVideo,minimumOSVersion
extend[app-events]: description,productArtwork,productVideo
include[app-events]: app
include[editorial-items]: marketing-items,primary-content
l: en-GB
meta: personalizationData
meta[marketing-items]: metrics
platform: iphone
sparseCount: 1
with: appEvents
additionalPlatforms: appletv,ipad,mac,watch
extend: customArtwork
l: en-GB
platform: iphone
additionalPlatforms: appletv,ipad,mac,watch
extend: badge-content,customArtwork,customScreenshotsByType,customVideoPreviewsByType,editorialArtwork,expectedReleaseDateDisplayFormat,isAppleWatchSupported,minimumOSVersion,requiredCapabilities
ids: 1552153525,1366180154,1543158709,1578906034,698255242,403858572,1389760587
include[editorial-items]: marketing-items
l: en-GB
meta[marketing-items]: metrics
platform: iphone
additionalPlatforms: appletv,ipad,mac,watch
availableIn[app-events]: future
extend: customArtwork,customPromotionalText,customScreenshotsByType,customVideoPreviewsByType,description,editorialVideo,expectedReleaseDateDisplayFormat,fileSizeByDevice,maxPlayers,messagesScreenshots,minPlayers,minimumOSVersion,privacy,privacyPolicyUrl,remoteControllerRequirement,requirementsByDeviceFamily,supportURLForLanguage,supportsFunCamera,versionHistory,websiteUrl
extend[app-events]: description,productArtwork,productVideo
include: alternate-apps,app-bundles,customers-also-bought-apps,developer,developer-other-apps,merchandised-in-apps,related-editorial-items,reviews,top-in-apps
include[apps]: app-events
l: en-GB
limit[reviews]: 6
platform: iphone
additionalPlatforms: appletv,ipad,mac,watch
extend: customArtwork,editorialArtwork,editorialVideo,minimumOSVersion
ids: 1568270949,1481316255,1619485045,1553739106,1535425137,1538467877,1556005348,1615020509,1586844471,1566180049
l: en-GB
platform: iphone
additionalPlatforms: appletv,ipad,mac,watch
extend: customArtwork,editorialArtwork,editorialVideo,minimumOSVersion
l: en-GB
platform: iphone
additionalPlatforms: appletv,ipad,mac,watch
extend: customArtwork
fields: privacyDetails,artistName,privacyPolicyUrl
l: en-GB
platform: iphone
For now, I'm only interested in the endpoint for a single app (/v1/catalog/<country>/apps/<app ID>
), I don't care about the list endpoints at the moment.
First observation: platform
is required. If we don't specify that:
{
"errors": [
{
"id": "G6ELYWYKLM4FTKIE3TGKAB2PVY",
"title": "Missing Parameter",
"detail": "One or more platform must be specified",
"status": "400",
"code": "40003",
"source": {
"parameter": "platform"
}
}
]
}
The platform also has to be valid:
{
"errors": [
{
"id": "5HFRY2BK7HXKYQXE3H4V5B6NVE",
"title": "Invalid Parameter Value",
"detail": "Invalid platform value abc",
"status": "400",
"code": "40005",
"source": {
"parameter": "platform"
}
}
]
}
From the requests above, we know that at least the following platforms exist:
web
iphone
appletv
ipad
mac
watch
I have verified that those do all work. They also influence the response, so we'll have to make that a parameter in our function.
Actually, we can also make platform
optional: Using additionalPlatforms
, we can also request the data for all platforms.
The storefront country is included in the URL, that is required.
The language can be set through l
, otherwise it defaults to a sensible language for the respective country. Just like with X-Apple-Store-Front
, the combinations are limited (https://github.com/tweaselORG/parse-tunes/issues/1#issuecomment-1384047420). But this time, we're using ISO country and language codes.
And just like the Apple Music API, this one also has a /v1/storefronts
endpoint with all possible combinations:
curl --request GET \
--url 'https://amp-api.apps.apple.com/v1/storefronts?platform=web&additionalPlatforms=iphone%2Cappletv%2Cipad%2Cmac%2Cwatch' \
--header 'authorization: Bearer eyJraWQiOiJGNDdEWk4xOEYwIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJBUzI4UjdHMTdNIiwiaWF0IjoxNjczOTY5ODk4LCJleHAiOjE2NzY1NjE4OTgsIm1pZCI6IklWZWVBT3ZaNGFsalM4YytqazVLTjVmV2ErQT0ifQ.q6v3eGHwYL6lAk07a2OKgjz0d9VEM_jNkbXV717GgsNewX5TY98rgPTzcDztkZ4FnXWZgSH-8HxDlxQXXUSB-w'
Since that endpoint is guarded behind the Bearer
token, I'll dump the response here for reference:
{
"data": [
{
"id": "af",
"type": "storefronts",
"href": "/v1/storefronts/af",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Afghanistan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "al",
"type": "storefronts",
"href": "/v1/storefronts/al",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Albania",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "dz",
"type": "storefronts",
"href": "/v1/storefronts/dz",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"ar"
],
"name": "Algeria",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ao",
"type": "storefronts",
"href": "/v1/storefronts/ao",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Angola",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ai",
"type": "storefronts",
"href": "/v1/storefronts/ai",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Anguilla",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ag",
"type": "storefronts",
"href": "/v1/storefronts/ag",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Antigua and Barbuda",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ar",
"type": "storefronts",
"href": "/v1/storefronts/ar",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Argentina",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "am",
"type": "storefronts",
"href": "/v1/storefronts/am",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Armenia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "au",
"type": "storefronts",
"href": "/v1/storefronts/au",
"attributes": {
"supportedLanguageTags": [
"en-AU",
"en-GB"
],
"name": "Australia",
"defaultLanguageTag": "en-AU"
}
},
{
"id": "at",
"type": "storefronts",
"href": "/v1/storefronts/at",
"attributes": {
"supportedLanguageTags": [
"de-DE",
"en-GB"
],
"name": "Austria",
"defaultLanguageTag": "de-DE"
}
},
{
"id": "az",
"type": "storefronts",
"href": "/v1/storefronts/az",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Azerbaijan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bs",
"type": "storefronts",
"href": "/v1/storefronts/bs",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Bahamas",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bh",
"type": "storefronts",
"href": "/v1/storefronts/bh",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Bahrain",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bb",
"type": "storefronts",
"href": "/v1/storefronts/bb",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Barbados",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "by",
"type": "storefronts",
"href": "/v1/storefronts/by",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Belarus",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "be",
"type": "storefronts",
"href": "/v1/storefronts/be",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"nl"
],
"name": "Belgium",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bz",
"type": "storefronts",
"href": "/v1/storefronts/bz",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"es-MX"
],
"name": "Belize",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bj",
"type": "storefronts",
"href": "/v1/storefronts/bj",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Benin",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bm",
"type": "storefronts",
"href": "/v1/storefronts/bm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Bermuda",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bt",
"type": "storefronts",
"href": "/v1/storefronts/bt",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Bhutan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bo",
"type": "storefronts",
"href": "/v1/storefronts/bo",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Bolivia",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "ba",
"type": "storefronts",
"href": "/v1/storefronts/ba",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"hr"
],
"name": "Bosnia and Herzegovina",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bw",
"type": "storefronts",
"href": "/v1/storefronts/bw",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Botswana",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "br",
"type": "storefronts",
"href": "/v1/storefronts/br",
"attributes": {
"supportedLanguageTags": [
"pt-BR",
"en-GB"
],
"name": "Brazil",
"defaultLanguageTag": "pt-BR"
}
},
{
"id": "vg",
"type": "storefronts",
"href": "/v1/storefronts/vg",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "British Virgin Islands",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bn",
"type": "storefronts",
"href": "/v1/storefronts/bn",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Brunei Darussalam",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bg",
"type": "storefronts",
"href": "/v1/storefronts/bg",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Bulgaria",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "bf",
"type": "storefronts",
"href": "/v1/storefronts/bf",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Burkina Faso",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "kh",
"type": "storefronts",
"href": "/v1/storefronts/kh",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Cambodia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "cm",
"type": "storefronts",
"href": "/v1/storefronts/cm",
"attributes": {
"supportedLanguageTags": [
"fr-FR",
"en-GB"
],
"name": "Cameroon",
"defaultLanguageTag": "fr-FR"
}
},
{
"id": "ca",
"type": "storefronts",
"href": "/v1/storefronts/ca",
"attributes": {
"supportedLanguageTags": [
"en-CA",
"fr-CA"
],
"name": "Canada",
"defaultLanguageTag": "en-CA"
}
},
{
"id": "cv",
"type": "storefronts",
"href": "/v1/storefronts/cv",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Cape Verde",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ky",
"type": "storefronts",
"href": "/v1/storefronts/ky",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Cayman Islands",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "td",
"type": "storefronts",
"href": "/v1/storefronts/td",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Chad",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "cl",
"type": "storefronts",
"href": "/v1/storefronts/cl",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Chile",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "cn",
"type": "storefronts",
"href": "/v1/storefronts/cn",
"attributes": {
"supportedLanguageTags": [
"zh-Hans-CN",
"en-GB"
],
"name": "China mainland",
"defaultLanguageTag": "zh-Hans-CN"
}
},
{
"id": "co",
"type": "storefronts",
"href": "/v1/storefronts/co",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Colombia",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "cr",
"type": "storefronts",
"href": "/v1/storefronts/cr",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Costa Rica",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "hr",
"type": "storefronts",
"href": "/v1/storefronts/hr",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"hr"
],
"name": "Croatia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "cy",
"type": "storefronts",
"href": "/v1/storefronts/cy",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"el",
"tr"
],
"name": "Cyprus",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "cz",
"type": "storefronts",
"href": "/v1/storefronts/cz",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"cs"
],
"name": "Czech Republic",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ci",
"type": "storefronts",
"href": "/v1/storefronts/ci",
"attributes": {
"supportedLanguageTags": [
"fr-FR",
"en-GB"
],
"name": "Côte d'Ivoire",
"defaultLanguageTag": "fr-FR"
}
},
{
"id": "cd",
"type": "storefronts",
"href": "/v1/storefronts/cd",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Democratic Republic of the Congo",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "dk",
"type": "storefronts",
"href": "/v1/storefronts/dk",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"da"
],
"name": "Denmark",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "dm",
"type": "storefronts",
"href": "/v1/storefronts/dm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Dominica",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "do",
"type": "storefronts",
"href": "/v1/storefronts/do",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Dominican Republic",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "ec",
"type": "storefronts",
"href": "/v1/storefronts/ec",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Ecuador",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "eg",
"type": "storefronts",
"href": "/v1/storefronts/eg",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"ar"
],
"name": "Egypt",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sv",
"type": "storefronts",
"href": "/v1/storefronts/sv",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "El Salvador",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "ee",
"type": "storefronts",
"href": "/v1/storefronts/ee",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Estonia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sz",
"type": "storefronts",
"href": "/v1/storefronts/sz",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Eswatini",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "fj",
"type": "storefronts",
"href": "/v1/storefronts/fj",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Fiji",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "fi",
"type": "storefronts",
"href": "/v1/storefronts/fi",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fi"
],
"name": "Finland",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "fr",
"type": "storefronts",
"href": "/v1/storefronts/fr",
"attributes": {
"supportedLanguageTags": [
"fr-FR",
"en-GB"
],
"name": "France",
"defaultLanguageTag": "fr-FR"
}
},
{
"id": "ga",
"type": "storefronts",
"href": "/v1/storefronts/ga",
"attributes": {
"supportedLanguageTags": [
"fr-FR",
"en-GB"
],
"name": "Gabon",
"defaultLanguageTag": "fr-FR"
}
},
{
"id": "gm",
"type": "storefronts",
"href": "/v1/storefronts/gm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Gambia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ge",
"type": "storefronts",
"href": "/v1/storefronts/ge",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Georgia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "de",
"type": "storefronts",
"href": "/v1/storefronts/de",
"attributes": {
"supportedLanguageTags": [
"de-DE",
"en-GB"
],
"name": "Germany",
"defaultLanguageTag": "de-DE"
}
},
{
"id": "gh",
"type": "storefronts",
"href": "/v1/storefronts/gh",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Ghana",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "gr",
"type": "storefronts",
"href": "/v1/storefronts/gr",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"el"
],
"name": "Greece",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "gd",
"type": "storefronts",
"href": "/v1/storefronts/gd",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Grenada",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "gt",
"type": "storefronts",
"href": "/v1/storefronts/gt",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Guatemala",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "gw",
"type": "storefronts",
"href": "/v1/storefronts/gw",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Guinea-Bissau",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "gy",
"type": "storefronts",
"href": "/v1/storefronts/gy",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Guyana",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "hn",
"type": "storefronts",
"href": "/v1/storefronts/hn",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Honduras",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "hk",
"type": "storefronts",
"href": "/v1/storefronts/hk",
"attributes": {
"supportedLanguageTags": [
"zh-Hant-HK",
"en-GB",
"zh-Hant-TW"
],
"name": "Hong Kong",
"defaultLanguageTag": "zh-Hant-HK"
}
},
{
"id": "hu",
"type": "storefronts",
"href": "/v1/storefronts/hu",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"hu"
],
"name": "Hungary",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "is",
"type": "storefronts",
"href": "/v1/storefronts/is",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Iceland",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "in",
"type": "storefronts",
"href": "/v1/storefronts/in",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"hi"
],
"name": "India",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "id",
"type": "storefronts",
"href": "/v1/storefronts/id",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"id"
],
"name": "Indonesia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "iq",
"type": "storefronts",
"href": "/v1/storefronts/iq",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Iraq",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ie",
"type": "storefronts",
"href": "/v1/storefronts/ie",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Ireland",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "il",
"type": "storefronts",
"href": "/v1/storefronts/il",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"he"
],
"name": "Israel",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "it",
"type": "storefronts",
"href": "/v1/storefronts/it",
"attributes": {
"supportedLanguageTags": [
"it",
"en-GB"
],
"name": "Italy",
"defaultLanguageTag": "it"
}
},
{
"id": "jm",
"type": "storefronts",
"href": "/v1/storefronts/jm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Jamaica",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "jp",
"type": "storefronts",
"href": "/v1/storefronts/jp",
"attributes": {
"supportedLanguageTags": [
"ja",
"en-US"
],
"name": "Japan",
"defaultLanguageTag": "ja"
}
},
{
"id": "jo",
"type": "storefronts",
"href": "/v1/storefronts/jo",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Jordan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "kz",
"type": "storefronts",
"href": "/v1/storefronts/kz",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Kazakhstan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ke",
"type": "storefronts",
"href": "/v1/storefronts/ke",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Kenya",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "kr",
"type": "storefronts",
"href": "/v1/storefronts/kr",
"attributes": {
"supportedLanguageTags": [
"ko",
"en-GB"
],
"name": "Korea, Republic of",
"defaultLanguageTag": "ko"
}
},
{
"id": "xk",
"type": "storefronts",
"href": "/v1/storefronts/xk",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Kosovo",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "kw",
"type": "storefronts",
"href": "/v1/storefronts/kw",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Kuwait",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "kg",
"type": "storefronts",
"href": "/v1/storefronts/kg",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Kyrgyzstan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "la",
"type": "storefronts",
"href": "/v1/storefronts/la",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Lao People's Democratic Republic",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "lv",
"type": "storefronts",
"href": "/v1/storefronts/lv",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Latvia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "lb",
"type": "storefronts",
"href": "/v1/storefronts/lb",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"ar"
],
"name": "Lebanon",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "lr",
"type": "storefronts",
"href": "/v1/storefronts/lr",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Liberia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ly",
"type": "storefronts",
"href": "/v1/storefronts/ly",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Libya",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "lt",
"type": "storefronts",
"href": "/v1/storefronts/lt",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Lithuania",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "lu",
"type": "storefronts",
"href": "/v1/storefronts/lu",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"de-DE"
],
"name": "Luxembourg",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mo",
"type": "storefronts",
"href": "/v1/storefronts/mo",
"attributes": {
"supportedLanguageTags": [
"zh-Hant-HK",
"en-GB",
"zh-Hant-TW"
],
"name": "Macao",
"defaultLanguageTag": "zh-Hant-HK"
}
},
{
"id": "mg",
"type": "storefronts",
"href": "/v1/storefronts/mg",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Madagascar",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mw",
"type": "storefronts",
"href": "/v1/storefronts/mw",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Malawi",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "my",
"type": "storefronts",
"href": "/v1/storefronts/my",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ms"
],
"name": "Malaysia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mv",
"type": "storefronts",
"href": "/v1/storefronts/mv",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Maldives",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ml",
"type": "storefronts",
"href": "/v1/storefronts/ml",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Mali",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mt",
"type": "storefronts",
"href": "/v1/storefronts/mt",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Malta",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mr",
"type": "storefronts",
"href": "/v1/storefronts/mr",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"ar"
],
"name": "Mauritania",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mu",
"type": "storefronts",
"href": "/v1/storefronts/mu",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Mauritius",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mx",
"type": "storefronts",
"href": "/v1/storefronts/mx",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Mexico",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "fm",
"type": "storefronts",
"href": "/v1/storefronts/fm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Micronesia, Federated States of",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "md",
"type": "storefronts",
"href": "/v1/storefronts/md",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Moldova",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mn",
"type": "storefronts",
"href": "/v1/storefronts/mn",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Mongolia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "me",
"type": "storefronts",
"href": "/v1/storefronts/me",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"hr"
],
"name": "Montenegro",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ms",
"type": "storefronts",
"href": "/v1/storefronts/ms",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Montserrat",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ma",
"type": "storefronts",
"href": "/v1/storefronts/ma",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"ar"
],
"name": "Morocco",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mz",
"type": "storefronts",
"href": "/v1/storefronts/mz",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Mozambique",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mm",
"type": "storefronts",
"href": "/v1/storefronts/mm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Myanmar",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "na",
"type": "storefronts",
"href": "/v1/storefronts/na",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Namibia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "nr",
"type": "storefronts",
"href": "/v1/storefronts/nr",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Nauru",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "np",
"type": "storefronts",
"href": "/v1/storefronts/np",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Nepal",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "nl",
"type": "storefronts",
"href": "/v1/storefronts/nl",
"attributes": {
"supportedLanguageTags": [
"nl",
"en-GB"
],
"name": "Netherlands",
"defaultLanguageTag": "nl"
}
},
{
"id": "nz",
"type": "storefronts",
"href": "/v1/storefronts/nz",
"attributes": {
"supportedLanguageTags": [
"en-AU",
"en-GB"
],
"name": "New Zealand",
"defaultLanguageTag": "en-AU"
}
},
{
"id": "ni",
"type": "storefronts",
"href": "/v1/storefronts/ni",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Nicaragua",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "ne",
"type": "storefronts",
"href": "/v1/storefronts/ne",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Niger",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ng",
"type": "storefronts",
"href": "/v1/storefronts/ng",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Nigeria",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "mk",
"type": "storefronts",
"href": "/v1/storefronts/mk",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "North Macedonia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "no",
"type": "storefronts",
"href": "/v1/storefronts/no",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"nb"
],
"name": "Norway",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "om",
"type": "storefronts",
"href": "/v1/storefronts/om",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Oman",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "pk",
"type": "storefronts",
"href": "/v1/storefronts/pk",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Pakistan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "pw",
"type": "storefronts",
"href": "/v1/storefronts/pw",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Palau",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "pa",
"type": "storefronts",
"href": "/v1/storefronts/pa",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Panama",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "pg",
"type": "storefronts",
"href": "/v1/storefronts/pg",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Papua New Guinea",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "py",
"type": "storefronts",
"href": "/v1/storefronts/py",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Paraguay",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "pe",
"type": "storefronts",
"href": "/v1/storefronts/pe",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Peru",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "ph",
"type": "storefronts",
"href": "/v1/storefronts/ph",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Philippines",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "pl",
"type": "storefronts",
"href": "/v1/storefronts/pl",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"pl"
],
"name": "Poland",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "pt",
"type": "storefronts",
"href": "/v1/storefronts/pt",
"attributes": {
"supportedLanguageTags": [
"pt-PT",
"en-GB"
],
"name": "Portugal",
"defaultLanguageTag": "pt-PT"
}
},
{
"id": "qa",
"type": "storefronts",
"href": "/v1/storefronts/qa",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Qatar",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "cg",
"type": "storefronts",
"href": "/v1/storefronts/cg",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Republic of the Congo",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ro",
"type": "storefronts",
"href": "/v1/storefronts/ro",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ro"
],
"name": "Romania",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ru",
"type": "storefronts",
"href": "/v1/storefronts/ru",
"attributes": {
"supportedLanguageTags": [
"ru",
"en-GB",
"uk"
],
"name": "Russia",
"defaultLanguageTag": "ru"
}
},
{
"id": "rw",
"type": "storefronts",
"href": "/v1/storefronts/rw",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Rwanda",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sa",
"type": "storefronts",
"href": "/v1/storefronts/sa",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Saudi Arabia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sn",
"type": "storefronts",
"href": "/v1/storefronts/sn",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Senegal",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "rs",
"type": "storefronts",
"href": "/v1/storefronts/rs",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"hr"
],
"name": "Serbia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sc",
"type": "storefronts",
"href": "/v1/storefronts/sc",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Seychelles",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sl",
"type": "storefronts",
"href": "/v1/storefronts/sl",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Sierra Leone",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sg",
"type": "storefronts",
"href": "/v1/storefronts/sg",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"zh-Hans-CN"
],
"name": "Singapore",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sk",
"type": "storefronts",
"href": "/v1/storefronts/sk",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"sk"
],
"name": "Slovakia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "si",
"type": "storefronts",
"href": "/v1/storefronts/si",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Slovenia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sb",
"type": "storefronts",
"href": "/v1/storefronts/sb",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Solomon Islands",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "za",
"type": "storefronts",
"href": "/v1/storefronts/za",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "South Africa",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "es",
"type": "storefronts",
"href": "/v1/storefronts/es",
"attributes": {
"supportedLanguageTags": [
"es-ES",
"en-GB",
"ca"
],
"name": "Spain",
"defaultLanguageTag": "es-ES"
}
},
{
"id": "lk",
"type": "storefronts",
"href": "/v1/storefronts/lk",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Sri Lanka",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "kn",
"type": "storefronts",
"href": "/v1/storefronts/kn",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "St. Kitts and Nevis",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "lc",
"type": "storefronts",
"href": "/v1/storefronts/lc",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "St. Lucia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "vc",
"type": "storefronts",
"href": "/v1/storefronts/vc",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "St. Vincent and The Grenadines",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "sr",
"type": "storefronts",
"href": "/v1/storefronts/sr",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"nl"
],
"name": "Suriname",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "se",
"type": "storefronts",
"href": "/v1/storefronts/se",
"attributes": {
"supportedLanguageTags": [
"sv",
"en-GB"
],
"name": "Sweden",
"defaultLanguageTag": "sv"
}
},
{
"id": "ch",
"type": "storefronts",
"href": "/v1/storefronts/ch",
"attributes": {
"supportedLanguageTags": [
"de-CH",
"de-DE",
"en-GB",
"fr-FR",
"it"
],
"name": "Switzerland",
"defaultLanguageTag": "de-CH"
}
},
{
"id": "st",
"type": "storefronts",
"href": "/v1/storefronts/st",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "São Tomé and Príncipe",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tw",
"type": "storefronts",
"href": "/v1/storefronts/tw",
"attributes": {
"supportedLanguageTags": [
"zh-Hant-TW",
"en-GB"
],
"name": "Taiwan",
"defaultLanguageTag": "zh-Hant-TW"
}
},
{
"id": "tj",
"type": "storefronts",
"href": "/v1/storefronts/tj",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Tajikistan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tz",
"type": "storefronts",
"href": "/v1/storefronts/tz",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Tanzania",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "th",
"type": "storefronts",
"href": "/v1/storefronts/th",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"th"
],
"name": "Thailand",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "to",
"type": "storefronts",
"href": "/v1/storefronts/to",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Tonga",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tt",
"type": "storefronts",
"href": "/v1/storefronts/tt",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Trinidad and Tobago",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tn",
"type": "storefronts",
"href": "/v1/storefronts/tn",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR",
"ar"
],
"name": "Tunisia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tr",
"type": "storefronts",
"href": "/v1/storefronts/tr",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"tr"
],
"name": "Turkey",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tm",
"type": "storefronts",
"href": "/v1/storefronts/tm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Turkmenistan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "tc",
"type": "storefronts",
"href": "/v1/storefronts/tc",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Turks and Caicos",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ae",
"type": "storefronts",
"href": "/v1/storefronts/ae",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "UAE",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ug",
"type": "storefronts",
"href": "/v1/storefronts/ug",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Uganda",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ua",
"type": "storefronts",
"href": "/v1/storefronts/ua",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"uk",
"ru"
],
"name": "Ukraine",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "gb",
"type": "storefronts",
"href": "/v1/storefronts/gb",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "United Kingdom",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "us",
"type": "storefronts",
"href": "/v1/storefronts/us",
"attributes": {
"supportedLanguageTags": [
"en-US",
"es-MX",
"ar",
"ru",
"zh-Hans-CN",
"fr-FR",
"ko",
"pt-BR",
"vi",
"zh-Hant-TW"
],
"name": "United States",
"defaultLanguageTag": "en-US"
}
},
{
"id": "uy",
"type": "storefronts",
"href": "/v1/storefronts/uy",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"es-MX"
],
"name": "Uruguay",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "uz",
"type": "storefronts",
"href": "/v1/storefronts/uz",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Uzbekistan",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "vu",
"type": "storefronts",
"href": "/v1/storefronts/vu",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"fr-FR"
],
"name": "Vanuatu",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ve",
"type": "storefronts",
"href": "/v1/storefronts/ve",
"attributes": {
"supportedLanguageTags": [
"es-MX",
"en-GB"
],
"name": "Venezuela",
"defaultLanguageTag": "es-MX"
}
},
{
"id": "vn",
"type": "storefronts",
"href": "/v1/storefronts/vn",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"vi"
],
"name": "Vietnam",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "ye",
"type": "storefronts",
"href": "/v1/storefronts/ye",
"attributes": {
"supportedLanguageTags": [
"en-GB",
"ar"
],
"name": "Yemen",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "zm",
"type": "storefronts",
"href": "/v1/storefronts/zm",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Zambia",
"defaultLanguageTag": "en-GB"
}
},
{
"id": "zw",
"type": "storefronts",
"href": "/v1/storefronts/zw",
"attributes": {
"supportedLanguageTags": [
"en-GB"
],
"name": "Zimbabwe",
"defaultLanguageTag": "en-GB"
}
}
]
}
Here's a small script for extracting a mapping from country to supported languages:
const res = await fetch(
'https://amp-api.apps.apple.com/v1/storefronts?platform=web&additionalPlatforms=iphone%2Cappletv%2Cipad%2Cmac%2Cwatch',
{
method: 'GET',
headers: {
authorization:
'Bearer eyJraWQiOiJGNDdEWk4xOEYwIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJBUzI4UjdHMTdNIiwiaWF0IjoxNjczOTY5ODk4LCJleHAiOjE2NzY1NjE4OTgsIm1pZCI6IklWZWVBT3ZaNGFsalM4YytqazVLTjVmV2ErQT0ifQ.q6v3eGHwYL6lAk07a2OKgjz0d9VEM_jNkbXV717GgsNewX5TY98rgPTzcDztkZ4FnXWZgSH-8HxDlxQXXUSB-w',
},
}
)
.then((response) => response.json())
const allowedLanguages = res.data.reduce(
(acc, cur) => ({ ...acc, [cur.id.toUpperCase()]: cur.attributes.supportedLanguageTags }),
{}
);
console.log(JSON.stringify(allowedLanguages, null, 2));
Doesn't work in the browser because the API has restrictive CORS headers. Result:
{
"AF": [
"en-GB"
],
"AL": [
"en-GB"
],
"DZ": [
"en-GB",
"fr-FR",
"ar"
],
"AO": [
"en-GB"
],
"AI": [
"en-GB"
],
"AG": [
"en-GB"
],
"AR": [
"es-MX",
"en-GB"
],
"AM": [
"en-GB"
],
"AU": [
"en-AU",
"en-GB"
],
"AT": [
"de-DE",
"en-GB"
],
"AZ": [
"en-GB"
],
"BS": [
"en-GB"
],
"BH": [
"en-GB",
"ar"
],
"BB": [
"en-GB"
],
"BY": [
"en-GB"
],
"BE": [
"en-GB",
"fr-FR",
"nl"
],
"BZ": [
"en-GB",
"es-MX"
],
"BJ": [
"en-GB",
"fr-FR"
],
"BM": [
"en-GB"
],
"BT": [
"en-GB"
],
"BO": [
"es-MX",
"en-GB"
],
"BA": [
"en-GB",
"hr"
],
"BW": [
"en-GB"
],
"BR": [
"pt-BR",
"en-GB"
],
"VG": [
"en-GB"
],
"BN": [
"en-GB"
],
"BG": [
"en-GB"
],
"BF": [
"en-GB",
"fr-FR"
],
"KH": [
"en-GB",
"fr-FR"
],
"CM": [
"fr-FR",
"en-GB"
],
"CA": [
"en-CA",
"fr-CA"
],
"CV": [
"en-GB"
],
"KY": [
"en-GB"
],
"TD": [
"en-GB",
"fr-FR"
],
"CL": [
"es-MX",
"en-GB"
],
"CN": [
"zh-Hans-CN",
"en-GB"
],
"CO": [
"es-MX",
"en-GB"
],
"CR": [
"es-MX",
"en-GB"
],
"HR": [
"en-GB",
"hr"
],
"CY": [
"en-GB",
"el",
"tr"
],
"CZ": [
"en-GB",
"cs"
],
"CI": [
"fr-FR",
"en-GB"
],
"CD": [
"en-GB",
"fr-FR"
],
"DK": [
"en-GB",
"da"
],
"DM": [
"en-GB"
],
"DO": [
"es-MX",
"en-GB"
],
"EC": [
"es-MX",
"en-GB"
],
"EG": [
"en-GB",
"fr-FR",
"ar"
],
"SV": [
"es-MX",
"en-GB"
],
"EE": [
"en-GB"
],
"SZ": [
"en-GB"
],
"FJ": [
"en-GB"
],
"FI": [
"en-GB",
"fi"
],
"FR": [
"fr-FR",
"en-GB"
],
"GA": [
"fr-FR",
"en-GB"
],
"GM": [
"en-GB"
],
"GE": [
"en-GB"
],
"DE": [
"de-DE",
"en-GB"
],
"GH": [
"en-GB"
],
"GR": [
"en-GB",
"el"
],
"GD": [
"en-GB"
],
"GT": [
"es-MX",
"en-GB"
],
"GW": [
"en-GB",
"fr-FR"
],
"GY": [
"en-GB",
"fr-FR"
],
"HN": [
"es-MX",
"en-GB"
],
"HK": [
"zh-Hant-HK",
"en-GB",
"zh-Hant-TW"
],
"HU": [
"en-GB",
"hu"
],
"IS": [
"en-GB"
],
"IN": [
"en-GB",
"hi"
],
"ID": [
"en-GB",
"id"
],
"IQ": [
"en-GB",
"ar"
],
"IE": [
"en-GB"
],
"IL": [
"en-GB",
"he"
],
"IT": [
"it",
"en-GB"
],
"JM": [
"en-GB"
],
"JP": [
"ja",
"en-US"
],
"JO": [
"en-GB",
"ar"
],
"KZ": [
"en-GB"
],
"KE": [
"en-GB"
],
"KR": [
"ko",
"en-GB"
],
"XK": [
"en-GB"
],
"KW": [
"en-GB",
"ar"
],
"KG": [
"en-GB"
],
"LA": [
"en-GB",
"fr-FR"
],
"LV": [
"en-GB"
],
"LB": [
"en-GB",
"fr-FR",
"ar"
],
"LR": [
"en-GB"
],
"LY": [
"en-GB",
"ar"
],
"LT": [
"en-GB"
],
"LU": [
"en-GB",
"fr-FR",
"de-DE"
],
"MO": [
"zh-Hant-HK",
"en-GB",
"zh-Hant-TW"
],
"MG": [
"en-GB",
"fr-FR"
],
"MW": [
"en-GB"
],
"MY": [
"en-GB",
"ms"
],
"MV": [
"en-GB"
],
"ML": [
"en-GB",
"fr-FR"
],
"MT": [
"en-GB"
],
"MR": [
"en-GB",
"fr-FR",
"ar"
],
"MU": [
"en-GB",
"fr-FR"
],
"MX": [
"es-MX",
"en-GB"
],
"FM": [
"en-GB"
],
"MD": [
"en-GB"
],
"MN": [
"en-GB"
],
"ME": [
"en-GB",
"hr"
],
"MS": [
"en-GB"
],
"MA": [
"en-GB",
"fr-FR",
"ar"
],
"MZ": [
"en-GB"
],
"MM": [
"en-GB"
],
"NA": [
"en-GB"
],
"NR": [
"en-GB"
],
"NP": [
"en-GB"
],
"NL": [
"nl",
"en-GB"
],
"NZ": [
"en-AU",
"en-GB"
],
"NI": [
"es-MX",
"en-GB"
],
"NE": [
"en-GB",
"fr-FR"
],
"NG": [
"en-GB"
],
"MK": [
"en-GB"
],
"NO": [
"en-GB",
"nb"
],
"OM": [
"en-GB",
"ar"
],
"PK": [
"en-GB"
],
"PW": [
"en-GB"
],
"PA": [
"es-MX",
"en-GB"
],
"PG": [
"en-GB"
],
"PY": [
"es-MX",
"en-GB"
],
"PE": [
"es-MX",
"en-GB"
],
"PH": [
"en-GB"
],
"PL": [
"en-GB",
"pl"
],
"PT": [
"pt-PT",
"en-GB"
],
"QA": [
"en-GB",
"ar"
],
"CG": [
"en-GB",
"fr-FR"
],
"RO": [
"en-GB",
"ro"
],
"RU": [
"ru",
"en-GB",
"uk"
],
"RW": [
"en-GB",
"fr-FR"
],
"SA": [
"en-GB",
"ar"
],
"SN": [
"en-GB",
"fr-FR"
],
"RS": [
"en-GB",
"hr"
],
"SC": [
"en-GB",
"fr-FR"
],
"SL": [
"en-GB"
],
"SG": [
"en-GB",
"zh-Hans-CN"
],
"SK": [
"en-GB",
"sk"
],
"SI": [
"en-GB"
],
"SB": [
"en-GB"
],
"ZA": [
"en-GB"
],
"ES": [
"es-ES",
"en-GB",
"ca"
],
"LK": [
"en-GB"
],
"KN": [
"en-GB"
],
"LC": [
"en-GB"
],
"VC": [
"en-GB"
],
"SR": [
"en-GB",
"nl"
],
"SE": [
"sv",
"en-GB"
],
"CH": [
"de-CH",
"de-DE",
"en-GB",
"fr-FR",
"it"
],
"ST": [
"en-GB"
],
"TW": [
"zh-Hant-TW",
"en-GB"
],
"TJ": [
"en-GB"
],
"TZ": [
"en-GB"
],
"TH": [
"en-GB",
"th"
],
"TO": [
"en-GB"
],
"TT": [
"en-GB",
"fr-FR"
],
"TN": [
"en-GB",
"fr-FR",
"ar"
],
"TR": [
"en-GB",
"tr"
],
"TM": [
"en-GB"
],
"TC": [
"en-GB"
],
"AE": [
"en-GB",
"ar"
],
"UG": [
"en-GB"
],
"UA": [
"en-GB",
"uk",
"ru"
],
"GB": [
"en-GB"
],
"US": [
"en-US",
"es-MX",
"ar",
"ru",
"zh-Hans-CN",
"fr-FR",
"ko",
"pt-BR",
"vi",
"zh-Hant-TW"
],
"UY": [
"en-GB",
"es-MX"
],
"UZ": [
"en-GB"
],
"VU": [
"en-GB",
"fr-FR"
],
"VE": [
"es-MX",
"en-GB"
],
"VN": [
"en-GB",
"vi"
],
"YE": [
"en-GB",
"ar"
],
"ZM": [
"en-GB"
],
"ZW": [
"en-GB"
]
}
Next up, we want to figure out the fields
, extend
, and include
parameters. Clearly, the influence what information is included in the response. At least at first glance, it seems like they all accept the same values but maybe they behave differently?
Maybe the API reference for the App Store Connect API is helpful. That API seems very similar. According to that:
fields
: Fields to return for included related types.include
: Relationship data to include in the response.extend
.That doesn't tell us too much. But it gives us a list of values to try. And notably, all possible values for include
are also possible for fields
but not the other way around:
const fields = "appClips, appCustomProductPages, appEvents, appInfos, appStoreVersions, availableInNewTerritories, availableTerritories, betaAppLocalizations, betaAppReviewDetail, betaGroups, betaLicenseAgreement, betaTesters, builds, bundleId, ciProduct, contentRightsDeclaration, customerReviews, endUserLicenseAgreement, gameCenterEnabledVersions, inAppPurchases, inAppPurchasesV2, isOrEverWasMadeForKids, name, perfPowerMetrics, preOrder, preReleaseVersions, pricePoints, prices, primaryLocale, promotedPurchases, reviewSubmissions, sku, subscriptionGracePeriod, subscriptionGroups, subscriptionStatusUrl, subscriptionStatusUrlForSandbox, subscriptionStatusUrlVersion, subscriptionStatusUrlVersionForSandbox".split(', ');
const include = "appClips, appCustomProductPages, appEvents, appInfos, appStoreVersions, availableTerritories, betaAppLocalizations, betaAppReviewDetail, betaGroups, betaLicenseAgreement, builds, ciProduct, endUserLicenseAgreement, gameCenterEnabledVersions, inAppPurchases, inAppPurchasesV2, preOrder, preReleaseVersions, prices, promotedPurchases, reviewSubmissions, subscriptionGracePeriod, subscriptionGroups".split(', ');
const includeNotInFields = include.filter(v => !fields.includes(v));
// []
const fieldsNotInInclude = fields.filter(v => !include.includes(v));
// [ "availableInNewTerritories", "betaTesters", "bundleId", "contentRightsDeclaration", "customerReviews", "isOrEverWasMadeForKids", "name", "perfPowerMetrics", "pricePoints", "primaryLocale", "sku", "subscriptionStatusUrl", "subscriptionStatusUrlForSandbox", "subscriptionStatusUrlVersion", "subscriptionStatusUrlVersionForSandbox" ]
OK, from playing around a little, the API description is actually helpful after all (but the listed values aren't?). Here's a very minimal API response (https://amp-api.apps.apple.com/v1/catalog/DE/apps/284882215?platform=web&additionalPlatforms=iphone,appletv,ipad,mac,watch&l=en-GB&fields=artistName
):
{
"data": [
{
"id": "284882215",
"type": "apps",
"href": "/v1/catalog/de/apps/284882215?l=en-GB",
"attributes": {
"artistName": "Meta Platforms, Inc."
},
"relationships": {
"genres": {
"href": "/v1/catalog/de/apps/284882215/genres?l=en-GB",
"data": [
{
"id": "6005",
"type": "genres",
"href": "/v1/catalog/de/genres/6005?l=en-GB"
}
]
},
"developer": {
"href": "/v1/catalog/de/apps/284882215/developer?l=en-GB",
"data": [
{
"id": "284882218",
"type": "developers",
"href": "/v1/catalog/de/developers/284882218?l=en-GB"
}
]
}
}
}
]
}
The response (more correctly, each returned result in data
, but since we're requesting the data for a single app, there is only ever one result) has two sections: attributes
and relationships
.
These do what their names imply: attributes
can include all kinds of metadata (like the developer name in this case), and relationships
has links to other entities in the API that are somehow related to the respective app (like its genres and developer in this case).
And importantly, we use fields
to specify which attributes
we want and include
to specify which relationships
we want.
And I'm pretty sure I've figured out extend
as well:
attributes
that are returned if you don't set fields
or extend
.fields
, you override the list of attributes
, only the ones you specified will be returned.extend
, you (surprise) extend it. The default attributes
and the ones you specified in extend
will be returned.Combining fields
and extend
seems to ignore what you specified in extend
and only returns the attributes
specified in fields
. Curiously, when requesting an app's privacy labels, the iOS App Store sets:
extend: customArtwork
fields: privacyDetails,artistName,privacyPolicyUrl
I don't know why they use that extends
parameter. The response doesn't contain the customArtwork
data. shrug
Anyway, that doesn't really matter for our purposes. We'll just only use fields
and have the user explicitly request the attributes
they want.
OK, what values can we provide for fields
and include
?
I have found these values for fields
and confirmed them to work:
customArtwork
editorialArtwork
minimumOSVersion
description
customScreenshotsByType
customVideoPreviewsByType
isAppleWatchSupported
requiredCapabilities
fileSizeByDevice
maxPlayers
messagesScreenshots
minPlayers
privacy
privacyDetails
privacyPolicyUrl
remoteControllerRequirement
requirementsByDeviceFamily
supportURLForLanguage
supportsFunCamera
versionHistory
websiteUrl
artistName
supportsArcade
familyShareEnabledDate
isFirstPartyHideableApp
contentRatingsBySystem
deviceFamilies
chartPositions
usesLocationBackgroundMode
url
userRating
genreDisplayName
name
isPreorder
isIOSBinaryMacOSCompatible
reviewsRestricted
sellerLabel
hasEula
eula
seller
copyright
minimumMacOSVersion
isStandaloneWithCompanionForWatchOS
is32bitOnly
hasSafariExtension
languageList
requiresGameController
offers
supportedLocales
requires32bit
isGameCenterEnabled
isSiriSupported
releaseDate
hasInAppPurchases
bundleId
hasMessagesExtension
artwork
supportsGameController
hasFamilyShareableInAppPurchases
isHiddenFromSpringboard
isStandaloneForWatchOS
isDeliveredInIOSAppForWatchOS
hasPrivacyPolicyText
privacyPolicyText
supportsPassbook
requirementsString
externalVersionId
Additionally, I found found these fields
values but haven't been able to confirm they actually work:
customPromotionalText
editorialVideo
expectedReleaseDateDisplayFormat
And these are the include
values I have found and confirmed to work:
app-events
alternate-apps
app-bundles
customers-also-bought-apps
developer
developer-other-apps
merchandised-in-apps
related-editorial-items
reviews
top-in-apps
Going back to the platform
parameter: That seems to mostly (only?) influence what's included in $.data[0].attributes.platformAttributes
.
For example, if we request https://amp-api.apps.apple.com/v1/catalog/DE/apps/284882215?platform=web&additionalPlatforms=iphone,appletv,ipad,mac,watch&l=en-GB&fields=externalVersionId,isAppleWatchSupported
, the platformAttributes
are:
{
"appletvos": {
"externalVersionId": 850317086,
"isAppleWatchSupported": false
},
"ios": {
"externalVersionId": 854345153,
"isAppleWatchSupported": false
}
}
But if we remove appletv
(https://amp-api.apps.apple.com/v1/catalog/DE/apps/284882215?platform=web&additionalPlatforms=iphone,ipad,mac,watch&l=en-GB&fields=externalVersionId,isAppleWatchSupported
):
{
"ios": {
"externalVersionId": 854345153,
"isAppleWatchSupported": false
}
}
Annoyingly, the request parameters aren't the same as the response fields. -.-
From what I can tell, this is the mapping (request -> response):
web
-> nothing?iphone
, ipad
, watch
-> ios
appletv
-> appletvos
mac
-> osx
From some very limited testing, it doesn't seem to matter whether you specify iphone
, ipad
or watch
. If I take an iPad-only app and use iphone
or watch
as the platform
, I get the same platformAttributes
as with ipad
.
Just for reference, there are also other endpoints for fetching app details. I am aware of at least the two following ones.
Most prominently, there is the iTunes Search API, which is already well documented by Apple themselves and actually meant for public consumption. It doesn't support fetching privacy labels as far as I know.
In addition, the internal API of App Store Marketing Tools can also be used to search for apps and fetch some details about them.
Request for searching:
curl --request GET \
--url 'https://tools.applemediaservices.com/api/apple-media/apps/US/search.json?types=apps%2Capp-bundles&term=facebook&limit=1&l=en-US&platform=iphone&additionalPlatforms=iphone%2Cmac%2Cappletv%2Cipad%2Cwatch%2Cweb'
Response:
{
"apps": {
"href": "/v1/catalog/us/search?bubble%5Bapps%5D=apps&l=en-US&term=facebook",
"data": [
{
"id": "284882215",
"type": "apps",
"href": "/v1/catalog/us/apps/284882215",
"attributes": {
"supportsArcade": false,
"familyShareEnabledDate": "0001-04-23T00:00:00Z",
"isFirstPartyHideableApp": false,
"contentRatingsBySystem": {
"appsApple": {
"name": "12+",
"value": 300,
"rank": 3,
"advisories": [
"Infrequent/Mild Sexual Content and Nudity",
"Infrequent/Mild Profanity or Crude Humor",
"Infrequent/Mild Mature/Suggestive Themes",
"Infrequent/Mild Alcohol, Tobacco, or Drug Use or References"
]
}
},
"deviceFamilies": [
"tvos",
"iphone",
"ipad",
"ipod"
],
"chartPositions": {
"appStore": {
"position": 2,
"genreName": "Social Networking",
"genre": 6005,
"chart": "top-free",
"chartLink": "https://apps.apple.com/us/charts/iphone/social-networking-apps/6005"
}
},
"usesLocationBackgroundMode": false,
"url": "https://apps.apple.com/us/app/facebook/id284882215",
"userRating": {
"value": 2.3,
"ratingCount": 1357931,
"ratingCountList": [
798646,
77291,
74322,
84994,
322678
],
"ariaLabelForRatings": "2.3 stars"
},
"genreDisplayName": "Social Networking",
"name": "Facebook",
"isPreorder": false,
"isIOSBinaryMacOSCompatible": false,
"artistName": "Meta Platforms, Inc.",
"reviewsRestricted": false,
"sellerLabel": "Seller",
"hasEula": true,
"platformAttributes": {
"appletvos": {
"seller": "Meta Platforms, Inc.",
"copyright": "© 2022 Meta",
"minimumMacOSVersion": "11.0",
"isStandaloneWithCompanionForWatchOS": false,
"isAppleWatchSupported": false,
"is32bitOnly": false,
"hasSafariExtension": false,
"languageList": [
"English",
"Czech",
"Danish",
"Dutch",
"Finnish",
"French",
"German",
"Greek",
"Hindi",
"Hungarian",
"Indonesian",
"Italian",
"Japanese",
"Korean",
"Malay",
"Norwegian Bokmål",
"Polish",
"Portuguese",
"Romanian",
"Russian",
"Simplified Chinese",
"Spanish",
"Swedish",
"Thai",
"Traditional Chinese",
"Turkish",
"Vietnamese"
],
"requiresGameController": false,
"requiredCapabilities": "arm64 ",
"offers": [
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=STDQ&pg=default&appExtVrsId=850317086",
"type": "get",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 44467200
}
]
},
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=SWUPD&pg=default&appExtVrsId=850317086",
"type": "update",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 44467200
}
]
}
],
"requires32bit": false,
"supportedLocales": [
{
"name": "English",
"tag": "en-US"
},
{
"name": "Czech",
"tag": "cs"
},
{
"name": "Danish",
"tag": "da"
},
{
"name": "Dutch",
"tag": "nl"
},
{
"name": "Finnish",
"tag": "fi"
},
{
"name": "French",
"tag": "fr-FR"
},
{
"name": "German",
"tag": "de-DE"
},
{
"name": "Greek",
"tag": "el"
},
{
"name": "Hindi",
"tag": "hi"
},
{
"name": "Hungarian",
"tag": "hu"
},
{
"name": "Indonesian",
"tag": "id"
},
{
"name": "Italian",
"tag": "it"
},
{
"name": "Japanese",
"tag": "ja"
},
{
"name": "Korean",
"tag": "ko"
},
{
"name": "Malay",
"tag": "ms"
},
{
"name": "Norwegian Bokmål",
"tag": "nb"
},
{
"name": "Polish",
"tag": "pl"
},
{
"name": "Portuguese",
"tag": "pt-PT"
},
{
"name": "Romanian",
"tag": "ro"
},
{
"name": "Russian",
"tag": "ru"
},
{
"name": "Simplified Chinese",
"tag": "zh-Hans-CN"
},
{
"name": "Spanish",
"tag": "es-ES"
},
{
"name": "Swedish",
"tag": "sv"
},
{
"name": "Thai",
"tag": "th"
},
{
"name": "Traditional Chinese",
"tag": "zh-Hant-HK"
},
{
"name": "Turkish",
"tag": "tr"
},
{
"name": "Vietnamese",
"tag": "vi"
}
],
"isGameCenterEnabled": false,
"isSiriSupported": false,
"releaseDate": "2019-02-05",
"minimumOSVersion": "13.0",
"hasInAppPurchases": true,
"bundleId": "com.facebook.Facebook",
"hasMessagesExtension": false,
"supportsGameController": false,
"artwork": {
"width": 1280,
"height": 768,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/b9/26/84/b92684e5-8b03-497e-c310-0e33638f1f15/App_Icon_-_Small-marketing.lsr/{w}x{h}{c}.{f}",
"bgColor": "0155c1",
"textColor1": "fdfbf8",
"textColor2": "aaccf9",
"textColor3": "cadaed",
"textColor4": "88b4ee"
},
"hasFamilyShareableInAppPurchases": false,
"isHiddenFromSpringboard": false,
"isStandaloneForWatchOS": false,
"isDeliveredInIOSAppForWatchOS": false,
"hasPrivacyPolicyText": true,
"editorialArtwork": {
"originalFlowcaseBrick": {
"width": 3200,
"height": 600,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features5/v4/c8/ed/1f/c8ed1f60-2d29-efbd-ea9f-5c8e0d6dde47/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "1a2743",
"textColor2": "451937",
"textColor3": "475269",
"textColor4": "6a475f"
},
"storeFlowcase": {
"width": 4320,
"height": 1080,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features118/v4/87/b3/cf/87b3cf1b-1d41-d685-ba94-6aa23a502614/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "010303",
"textColor2": "1a2844",
"textColor3": "343535",
"textColor4": "485369"
},
"fullscreenBackground": {
"width": 4320,
"height": 2160,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features124/v4/e2/e5/af/e2e5af56-290d-97be-c087-2b3b4a284a83/source/{w}x{h}{c}.{f}",
"bgColor": "2b4b8d",
"textColor1": "d6def1",
"textColor2": "dbd0a2",
"textColor3": "b4c1dd",
"textColor4": "b8b69e"
},
"contentLogo": {
"width": 2400,
"height": 390,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features114/v4/ba/c9/28/bac928f0-b92d-d455-b6ad-3735bb4e9691/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d5d5d5",
"textColor3": "cbcbcb",
"textColor4": "aaaaaa"
},
"brandLogo": {
"width": 1080,
"height": 1080,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Features116/v4/37/1e/f0/371ef0b1-ce56-e476-1355-a92b5808bf5a/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "f2f2f2",
"textColor2": "e5e5e5",
"textColor3": "c1c1c1",
"textColor4": "b7b7b7"
},
"contentLogoTrimmed": {
"width": 2115,
"height": 386,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Features113/v4/bc/12/95/bc129552-eac9-a790-26dd-e3f3b1897bc1/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d6d6d6",
"textColor3": "cbcbcb",
"textColor4": "ababab"
}
},
"supportsPassbook": false,
"requirementsString": "Requires tvOS 13.0 or later.",
"externalVersionId": 850317086
},
"ios": {
"seller": "Meta Platforms, Inc.",
"copyright": "© 2022 Meta",
"minimumMacOSVersion": "11.0",
"isStandaloneWithCompanionForWatchOS": false,
"isAppleWatchSupported": false,
"is32bitOnly": false,
"hasSafariExtension": false,
"languageList": [
"English",
"Arabic",
"Croatian",
"Czech",
"Danish",
"Dutch",
"Finnish",
"French",
"German",
"Greek",
"Hebrew",
"Hindi",
"Hungarian",
"Indonesian",
"Italian",
"Japanese",
"Korean",
"Malay",
"Norwegian Bokmål",
"Polish",
"Portuguese",
"Romanian",
"Russian",
"Simplified Chinese",
"Slovak",
"Spanish",
"Swedish",
"Thai",
"Traditional Chinese",
"Turkish",
"Ukrainian",
"Vietnamese"
],
"requiresGameController": false,
"requiredCapabilities": "arm64 ",
"offers": [
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=STDQ&pg=default&appExtVrsId=854345153",
"type": "get",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 314289152
}
]
},
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=SWUPD&pg=default&appExtVrsId=854345153",
"type": "update",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 314289152
}
]
}
],
"requires32bit": false,
"supportedLocales": [
{
"name": "English",
"tag": "en-US"
},
{
"name": "Arabic",
"tag": "ar"
},
{
"name": "Croatian",
"tag": "hr"
},
{
"name": "Czech",
"tag": "cs"
},
{
"name": "Danish",
"tag": "da"
},
{
"name": "Dutch",
"tag": "nl"
},
{
"name": "Finnish",
"tag": "fi"
},
{
"name": "French",
"tag": "fr-FR"
},
{
"name": "German",
"tag": "de-DE"
},
{
"name": "Greek",
"tag": "el"
},
{
"name": "Hebrew",
"tag": "he"
},
{
"name": "Hindi",
"tag": "hi"
},
{
"name": "Hungarian",
"tag": "hu"
},
{
"name": "Indonesian",
"tag": "id"
},
{
"name": "Italian",
"tag": "it"
},
{
"name": "Japanese",
"tag": "ja"
},
{
"name": "Korean",
"tag": "ko"
},
{
"name": "Malay",
"tag": "ms"
},
{
"name": "Norwegian Bokmål",
"tag": "nb"
},
{
"name": "Polish",
"tag": "pl"
},
{
"name": "Portuguese",
"tag": "pt-PT"
},
{
"name": "Romanian",
"tag": "ro"
},
{
"name": "Russian",
"tag": "ru"
},
{
"name": "Simplified Chinese",
"tag": "zh-Hans-CN"
},
{
"name": "Slovak",
"tag": "sk"
},
{
"name": "Spanish",
"tag": "es-ES"
},
{
"name": "Swedish",
"tag": "sv"
},
{
"name": "Thai",
"tag": "th"
},
{
"name": "Traditional Chinese",
"tag": "zh-Hant-HK"
},
{
"name": "Turkish",
"tag": "tr"
},
{
"name": "Ukrainian",
"tag": "uk"
},
{
"name": "Vietnamese",
"tag": "vi"
}
],
"isGameCenterEnabled": false,
"isSiriSupported": true,
"releaseDate": "2019-02-05",
"minimumOSVersion": "13.4",
"hasInAppPurchases": true,
"bundleId": "com.facebook.Facebook",
"hasMessagesExtension": false,
"supportsGameController": false,
"artwork": {
"width": 1024,
"height": 1024,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/45/ab/be/45abbeac-3a7e-aa86-c1c5-007c09df6d7c/Icon-Production-0-1x_U007emarketing-0-7-0-85-220.png/{w}x{h}{c}.{f}",
"bgColor": "18aeff",
"textColor1": "141516",
"textColor2": "161616",
"textColor3": "153445",
"textColor4": "173545"
},
"hasFamilyShareableInAppPurchases": false,
"isHiddenFromSpringboard": false,
"isStandaloneForWatchOS": false,
"isDeliveredInIOSAppForWatchOS": false,
"hasPrivacyPolicyText": true,
"editorialArtwork": {
"originalFlowcaseBrick": {
"width": 3200,
"height": 600,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features5/v4/c8/ed/1f/c8ed1f60-2d29-efbd-ea9f-5c8e0d6dde47/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "1a2743",
"textColor2": "451937",
"textColor3": "475269",
"textColor4": "6a475f"
},
"storeFlowcase": {
"width": 4320,
"height": 1080,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features118/v4/87/b3/cf/87b3cf1b-1d41-d685-ba94-6aa23a502614/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "010303",
"textColor2": "1a2844",
"textColor3": "343535",
"textColor4": "485369"
},
"fullscreenBackground": {
"width": 4320,
"height": 2160,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features124/v4/e2/e5/af/e2e5af56-290d-97be-c087-2b3b4a284a83/source/{w}x{h}{c}.{f}",
"bgColor": "2b4b8d",
"textColor1": "d6def1",
"textColor2": "dbd0a2",
"textColor3": "b4c1dd",
"textColor4": "b8b69e"
},
"contentLogo": {
"width": 2400,
"height": 390,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features114/v4/ba/c9/28/bac928f0-b92d-d455-b6ad-3735bb4e9691/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d5d5d5",
"textColor3": "cbcbcb",
"textColor4": "aaaaaa"
},
"brandLogo": {
"width": 1080,
"height": 1080,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Features116/v4/37/1e/f0/371ef0b1-ce56-e476-1355-a92b5808bf5a/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "f2f2f2",
"textColor2": "e5e5e5",
"textColor3": "c1c1c1",
"textColor4": "b7b7b7"
},
"contentLogoTrimmed": {
"width": 2115,
"height": 386,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Features113/v4/bc/12/95/bc129552-eac9-a790-26dd-e3f3b1897bc1/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d6d6d6",
"textColor3": "cbcbcb",
"textColor4": "ababab"
}
},
"supportsPassbook": false,
"requirementsString": "Requires iOS 13.4 or later. Compatible with iPhone, iPad, and iPod touch.",
"externalVersionId": 854345153
}
}
},
"relationships": {
"developer": {
"href": "/v1/catalog/us/apps/284882215/developer",
"data": [
{
"id": "284882218",
"type": "developers",
"href": "/v1/catalog/us/developers/284882218"
}
]
},
"genres": {
"href": "/v1/catalog/us/apps/284882215/genres",
"data": [
{
"id": "6005",
"type": "genres",
"href": "/v1/catalog/us/genres/6005",
"attributes": {
"parentName": "App Store",
"name": "Social Networking",
"url": "https://itunes.apple.com/us/genre/id6005",
"parentId": "36"
}
}
]
}
}
}
]
},
"app-bundles": {
"href": "/v1/catalog/us/search?bubble%5Bapp-bundles%5D=app-bundles&l=en-US&term=facebook",
"data": [
{
"id": "1023120329",
"type": "app-bundles",
"href": "/v1/catalog/us/app-bundles/1023120329",
"attributes": {
"seller": "KISSAPP, S.L.",
"copyright": "© KissApp",
"screenshotsByType": {
"iphone6+": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
],
"ipad": [
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/cb/01/86/cb018635-d387-74b6-e2cf-bb5ba06264c4/mzl.yxqeozfc.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/88/dc/dc/88dcdc8e-357b-f40f-c3cd-845c297a029b/mzl.fwgxcayg.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "0a0a0a",
"textColor2": "542227",
"textColor3": "3b3b3b",
"textColor4": "764e52"
},
{
"width": 2048,
"height": 2732,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Purple112/v4/2f/15/24/2f1524ca-4bda-8ca3-8f85-d5b311163f89/mzl.xrhmmfci.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "5d1200",
"textColor3": "333333",
"textColor4": "7d4233"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/13/2d/f2/132df27d-292b-018b-8149-d36d3b58b05b/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fcfffd",
"textColor1": "0d0c0d",
"textColor2": "442a00",
"textColor3": "3d3d3d",
"textColor4": "695432"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple128/v4/f0/46/c2/f046c2d0-39a8-f0ee-8726-d5372ae4af3d/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "412917",
"textColor3": "333333",
"textColor4": "675445"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple118/v4/e6/d7/c4/e6d7c4bc-f418-8e54-9f06-3e35e6c951d2/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "f5faff",
"textColor1": "000000",
"textColor2": "232323",
"textColor3": "313233",
"textColor4": "4d4e4f"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/7a/91/dd/7a91dd8c-0874-95f0-e7ac-6519195825be/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "161616",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 2048,
"height": 2732,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/74/b4/12/74b41214-926b-76a1-0887-cc5bc5f5a123/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "421e1d",
"textColor3": "333333",
"textColor4": "674b4a"
},
{
"width": 2048,
"height": 2732,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/1e/79/c3/1e79c32d-db50-2c9a-e83c-38469c7f5eed/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2c1207",
"textColor3": "333333",
"textColor4": "564139"
}
],
"iphone6": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
],
"ipad_10_5": [
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/cb/01/86/cb018635-d387-74b6-e2cf-bb5ba06264c4/mzl.yxqeozfc.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/88/dc/dc/88dcdc8e-357b-f40f-c3cd-845c297a029b/mzl.fwgxcayg.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "0a0a0a",
"textColor2": "542227",
"textColor3": "3b3b3b",
"textColor4": "764e52"
},
{
"width": 2048,
"height": 2732,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Purple112/v4/2f/15/24/2f1524ca-4bda-8ca3-8f85-d5b311163f89/mzl.xrhmmfci.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "5d1200",
"textColor3": "333333",
"textColor4": "7d4233"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/13/2d/f2/132df27d-292b-018b-8149-d36d3b58b05b/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fcfffd",
"textColor1": "0d0c0d",
"textColor2": "442a00",
"textColor3": "3d3d3d",
"textColor4": "695432"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple128/v4/f0/46/c2/f046c2d0-39a8-f0ee-8726-d5372ae4af3d/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "412917",
"textColor3": "333333",
"textColor4": "675445"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple118/v4/e6/d7/c4/e6d7c4bc-f418-8e54-9f06-3e35e6c951d2/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "f5faff",
"textColor1": "000000",
"textColor2": "232323",
"textColor3": "313233",
"textColor4": "4d4e4f"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/7a/91/dd/7a91dd8c-0874-95f0-e7ac-6519195825be/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "161616",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 2048,
"height": 2732,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/74/b4/12/74b41214-926b-76a1-0887-cc5bc5f5a123/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "421e1d",
"textColor3": "333333",
"textColor4": "674b4a"
},
{
"width": 2048,
"height": 2732,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/1e/79/c3/1e79c32d-db50-2c9a-e83c-38469c7f5eed/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2c1207",
"textColor3": "333333",
"textColor4": "564139"
}
],
"ipadPro": [
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/cb/01/86/cb018635-d387-74b6-e2cf-bb5ba06264c4/mzl.yxqeozfc.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/88/dc/dc/88dcdc8e-357b-f40f-c3cd-845c297a029b/mzl.fwgxcayg.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "0a0a0a",
"textColor2": "542227",
"textColor3": "3b3b3b",
"textColor4": "764e52"
},
{
"width": 2048,
"height": 2732,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Purple112/v4/2f/15/24/2f1524ca-4bda-8ca3-8f85-d5b311163f89/mzl.xrhmmfci.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "5d1200",
"textColor3": "333333",
"textColor4": "7d4233"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/13/2d/f2/132df27d-292b-018b-8149-d36d3b58b05b/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fcfffd",
"textColor1": "0d0c0d",
"textColor2": "442a00",
"textColor3": "3d3d3d",
"textColor4": "695432"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple128/v4/f0/46/c2/f046c2d0-39a8-f0ee-8726-d5372ae4af3d/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "412917",
"textColor3": "333333",
"textColor4": "675445"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple118/v4/e6/d7/c4/e6d7c4bc-f418-8e54-9f06-3e35e6c951d2/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "f5faff",
"textColor1": "000000",
"textColor2": "232323",
"textColor3": "313233",
"textColor4": "4d4e4f"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/7a/91/dd/7a91dd8c-0874-95f0-e7ac-6519195825be/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "161616",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 2048,
"height": 2732,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/74/b4/12/74b41214-926b-76a1-0887-cc5bc5f5a123/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "421e1d",
"textColor3": "333333",
"textColor4": "674b4a"
},
{
"width": 2048,
"height": 2732,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/1e/79/c3/1e79c32d-db50-2c9a-e83c-38469c7f5eed/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2c1207",
"textColor3": "333333",
"textColor4": "564139"
}
],
"iphone": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
],
"iphone5": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
]
},
"familyShareEnabledDate": "0001-04-23T00:00:00Z",
"description": {
"standard": "Best Stickers and Emoji pack of all AppStore. Four apps for the price of three (3x2). You take an app FREE if you order this pack so cool.\n\nThe pack consists of: \n\n- Emoji for iOS: thousands of Emoji in one app. \n\n- Stickers Emoji: Thousands of Stickers for WhatsApp. \n\n- Stickers for WeChat: Thousands of Stickers for WeChat. \n\nWhat do you expect to buy this pack? Do not forget that all updates that are made of the 3 apps will be free for you."
},
"deviceFamilies": [
"iphone",
"ipad",
"ipod"
],
"reviewsRestricted": false,
"languageList": [
"English"
],
"hasEula": false,
"regularPriceFormatted": "$4.97",
"offers": [
{
"buyParams": "productType=ASB&price=3990&salableAdamId=1023120329&pricingParameters=STDQ&pg=default&playlistId=1023120329",
"type": "buy",
"priceFormatted": "$3.99",
"price": 3.99,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 94470179
}
]
}
],
"isGameCenterEnabled": false,
"hasInAppPurchases": true,
"contentRatingsBySystem": {
"appsApple": {
"name": "4+",
"value": 100,
"rank": 1
}
},
"artwork": {
"width": 1024,
"height": 1024,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/bf/f2/84/bff28423-3bd0-76ff-f171-b0d159551890/mzabit.449703179475136140.png/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "f8fafe",
"textColor2": "83fd71",
"textColor3": "c6c8cb",
"textColor4": "69ca5a"
},
"privacyPolicyUrl": "http://kissappsl.com/pages/privacy-policy/",
"videoPreviewsByType": {},
"url": "https://apps.apple.com/us/app-bundle/stickers-and-emoji-for-facebook-wechat-and-whatsapp-pack-ii/id1023120329",
"userRating": {
"value": 0.0,
"ratingCount": 0,
"ratingCountList": [
0,
0,
0,
0,
0
],
"ariaLabelForRatings": "0 stars"
},
"editorialArtwork": {},
"genreDisplayName": "Lifestyle",
"name": "Stickers and Emoji for Facebook, WeChat and WhatsApp Pack II",
"artistName": "KISSAPP, S.L.",
"sellerLabel": "Seller",
"requirementsString": "Requires iOS 11.0 or later. Compatible with iPhone, iPad, and iPod touch.",
"platformAttributes": {
"ios": {
"requirementsString": "Requires iOS 11.0 or later. Compatible with iPhone, iPad, and iPod touch.",
"screenshotsByType": {
"iphone6+": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
],
"ipad": [
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/cb/01/86/cb018635-d387-74b6-e2cf-bb5ba06264c4/mzl.yxqeozfc.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/88/dc/dc/88dcdc8e-357b-f40f-c3cd-845c297a029b/mzl.fwgxcayg.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "0a0a0a",
"textColor2": "542227",
"textColor3": "3b3b3b",
"textColor4": "764e52"
},
{
"width": 2048,
"height": 2732,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Purple112/v4/2f/15/24/2f1524ca-4bda-8ca3-8f85-d5b311163f89/mzl.xrhmmfci.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "5d1200",
"textColor3": "333333",
"textColor4": "7d4233"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/13/2d/f2/132df27d-292b-018b-8149-d36d3b58b05b/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fcfffd",
"textColor1": "0d0c0d",
"textColor2": "442a00",
"textColor3": "3d3d3d",
"textColor4": "695432"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple128/v4/f0/46/c2/f046c2d0-39a8-f0ee-8726-d5372ae4af3d/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "412917",
"textColor3": "333333",
"textColor4": "675445"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple118/v4/e6/d7/c4/e6d7c4bc-f418-8e54-9f06-3e35e6c951d2/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "f5faff",
"textColor1": "000000",
"textColor2": "232323",
"textColor3": "313233",
"textColor4": "4d4e4f"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/7a/91/dd/7a91dd8c-0874-95f0-e7ac-6519195825be/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "161616",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 2048,
"height": 2732,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/74/b4/12/74b41214-926b-76a1-0887-cc5bc5f5a123/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "421e1d",
"textColor3": "333333",
"textColor4": "674b4a"
},
{
"width": 2048,
"height": 2732,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/1e/79/c3/1e79c32d-db50-2c9a-e83c-38469c7f5eed/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2c1207",
"textColor3": "333333",
"textColor4": "564139"
}
],
"iphone6": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
],
"ipad_10_5": [
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/cb/01/86/cb018635-d387-74b6-e2cf-bb5ba06264c4/mzl.yxqeozfc.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/88/dc/dc/88dcdc8e-357b-f40f-c3cd-845c297a029b/mzl.fwgxcayg.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "0a0a0a",
"textColor2": "542227",
"textColor3": "3b3b3b",
"textColor4": "764e52"
},
{
"width": 2048,
"height": 2732,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Purple112/v4/2f/15/24/2f1524ca-4bda-8ca3-8f85-d5b311163f89/mzl.xrhmmfci.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "5d1200",
"textColor3": "333333",
"textColor4": "7d4233"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/13/2d/f2/132df27d-292b-018b-8149-d36d3b58b05b/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fcfffd",
"textColor1": "0d0c0d",
"textColor2": "442a00",
"textColor3": "3d3d3d",
"textColor4": "695432"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple128/v4/f0/46/c2/f046c2d0-39a8-f0ee-8726-d5372ae4af3d/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "412917",
"textColor3": "333333",
"textColor4": "675445"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple118/v4/e6/d7/c4/e6d7c4bc-f418-8e54-9f06-3e35e6c951d2/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "f5faff",
"textColor1": "000000",
"textColor2": "232323",
"textColor3": "313233",
"textColor4": "4d4e4f"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/7a/91/dd/7a91dd8c-0874-95f0-e7ac-6519195825be/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "161616",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 2048,
"height": 2732,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/74/b4/12/74b41214-926b-76a1-0887-cc5bc5f5a123/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "421e1d",
"textColor3": "333333",
"textColor4": "674b4a"
},
{
"width": 2048,
"height": 2732,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/1e/79/c3/1e79c32d-db50-2c9a-e83c-38469c7f5eed/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2c1207",
"textColor3": "333333",
"textColor4": "564139"
}
],
"ipadPro": [
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/cb/01/86/cb018635-d387-74b6-e2cf-bb5ba06264c4/mzl.yxqeozfc.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/88/dc/dc/88dcdc8e-357b-f40f-c3cd-845c297a029b/mzl.fwgxcayg.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "0a0a0a",
"textColor2": "542227",
"textColor3": "3b3b3b",
"textColor4": "764e52"
},
{
"width": 2048,
"height": 2732,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Purple112/v4/2f/15/24/2f1524ca-4bda-8ca3-8f85-d5b311163f89/mzl.xrhmmfci.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "5d1200",
"textColor3": "333333",
"textColor4": "7d4233"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple118/v4/13/2d/f2/132df27d-292b-018b-8149-d36d3b58b05b/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fcfffd",
"textColor1": "0d0c0d",
"textColor2": "442a00",
"textColor3": "3d3d3d",
"textColor4": "695432"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple128/v4/f0/46/c2/f046c2d0-39a8-f0ee-8726-d5372ae4af3d/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "feffff",
"textColor1": "000000",
"textColor2": "412917",
"textColor3": "333333",
"textColor4": "675445"
},
{
"width": 2048,
"height": 2732,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple118/v4/e6/d7/c4/e6d7c4bc-f418-8e54-9f06-3e35e6c951d2/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "f5faff",
"textColor1": "000000",
"textColor2": "232323",
"textColor3": "313233",
"textColor4": "4d4e4f"
},
{
"width": 2048,
"height": 2732,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/7a/91/dd/7a91dd8c-0874-95f0-e7ac-6519195825be/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "161616",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 2048,
"height": 2732,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/74/b4/12/74b41214-926b-76a1-0887-cc5bc5f5a123/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "421e1d",
"textColor3": "333333",
"textColor4": "674b4a"
},
{
"width": 2048,
"height": 2732,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/1e/79/c3/1e79c32d-db50-2c9a-e83c-38469c7f5eed/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2c1207",
"textColor3": "333333",
"textColor4": "564139"
}
],
"iphone": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
],
"iphone5": [
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/PurpleSource112/v4/5d/bc/14/5dbc1440-18e8-fb65-6f12-41605ddfa338/4bfe9c75-6d61-4070-9897-6cb2b8279475_1_iphone5_en.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "151515",
"textColor2": "343434",
"textColor3": "444444",
"textColor4": "5c5c5c"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/28/e7/1c/28e71c48-be86-2384-0d12-cf897f713339/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "444444"
},
{
"width": 1242,
"height": 2208,
"url": "https://is2-ssl.mzstatic.com/image/thumb/Purple122/v4/c6/b3/84/c6b38486-1b10-987a-ffd9-983cc6186f36/mzl.chxxrkbm.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d2d2d",
"textColor3": "333333",
"textColor4": "575757"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple118/v4/1a/2e/0c/1a2e0c6f-dd5d-8e23-e121-5e18541629f8/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fbfffd",
"textColor1": "3a1b00",
"textColor2": "472405",
"textColor3": "614932",
"textColor4": "6b5036"
},
{
"width": 1242,
"height": 2208,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple128/v4/79/1f/c2/791fc239-8ad4-0195-6673-a0ab319e8af4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "2d1301",
"textColor3": "333333",
"textColor4": "574234"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple128/v4/4c/f0/2e/4cf02ec2-8a06-58b3-47d7-6d9bf03f2b25/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "fffffd",
"textColor1": "000000",
"textColor2": "252525",
"textColor3": "333332",
"textColor4": "505050"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple125/v4/88/76/b5/8876b5d4-63d0-03c3-cdff-1d1144bc6a3f/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "151515",
"textColor3": "333333",
"textColor4": "434343"
},
{
"width": 1242,
"height": 2208,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/a0/94/57/a09457de-3c0f-6430-10b7-e8c3447622e7/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "411e1e",
"textColor3": "333333",
"textColor4": "674b4b"
},
{
"width": 1242,
"height": 2208,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/06/55/78/0655788d-5035-4e62-2d51-cbc0d5bd87a4/pr_source.jpg/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "000000",
"textColor2": "323232",
"textColor3": "333333",
"textColor4": "5b5b5b"
}
]
},
"minimumOSVersion": "11.0"
}
}
},
"relationships": {
"genres": {
"href": "/v1/catalog/us/app-bundles/1023120329/genres",
"data": [
{
"id": "6012",
"type": "genres",
"href": "/v1/catalog/us/genres/6012",
"attributes": {
"parentName": "App Store",
"name": "Lifestyle",
"url": "https://itunes.apple.com/us/genre/id6012",
"parentId": "36"
}
}
]
},
"developer": {
"href": "/v1/catalog/us/app-bundles/1023120329/developer",
"data": [
{
"id": "552812711",
"type": "developers",
"href": "/v1/catalog/us/developers/552812711"
}
]
}
}
}
]
}
}
Request for details about individual apps:
curl --request GET \
--url 'https://tools.applemediaservices.com/api/apple-media/apps/US/apps/284882215?l=en-US&platform=iphone&additionalPlatforms=iphone%2Cmac%2Cappletv%2Cipad%2Cwatch%2Cweb'
Response:
{
"id": "284882215",
"type": "apps",
"href": "/v1/catalog/us/apps/284882215?l=en-US",
"attributes": {
"supportsArcade": false,
"familyShareEnabledDate": "0001-04-23T00:00:00Z",
"isFirstPartyHideableApp": false,
"contentRatingsBySystem": {
"appsApple": {
"name": "12+",
"value": 300,
"rank": 3,
"advisories": [
"Infrequent/Mild Sexual Content and Nudity",
"Infrequent/Mild Profanity or Crude Humor",
"Infrequent/Mild Mature/Suggestive Themes",
"Infrequent/Mild Alcohol, Tobacco, or Drug Use or References"
]
}
},
"deviceFamilies": [
"tvos",
"iphone",
"ipad",
"ipod"
],
"chartPositions": {
"appStore": {
"position": 2,
"genreName": "Social Networking",
"genre": 6005,
"chart": "top-free",
"chartLink": "https://apps.apple.com/us/charts/iphone/social-networking-apps/6005"
}
},
"url": "https://apps.apple.com/us/app/facebook/id284882215",
"usesLocationBackgroundMode": false,
"userRating": {
"value": 2.3,
"ratingCount": 1357931,
"ratingCountList": [
798646,
77291,
74322,
84994,
322678
],
"ariaLabelForRatings": "2.3 stars"
},
"genreDisplayName": "Social Networking",
"name": "Facebook",
"isPreorder": false,
"artistName": "Meta Platforms, Inc.",
"isIOSBinaryMacOSCompatible": false,
"reviewsRestricted": false,
"sellerLabel": "Seller",
"hasEula": true,
"platformAttributes": {
"appletvos": {
"seller": "Meta Platforms, Inc.",
"copyright": "© 2022 Meta",
"minimumMacOSVersion": "11.0",
"isStandaloneWithCompanionForWatchOS": false,
"is32bitOnly": false,
"isAppleWatchSupported": false,
"languageList": [
"English",
"Czech",
"Danish",
"Dutch",
"Finnish",
"French",
"German",
"Greek",
"Hindi",
"Hungarian",
"Indonesian",
"Italian",
"Japanese",
"Korean",
"Malay",
"Norwegian Bokmål",
"Polish",
"Portuguese",
"Romanian",
"Russian",
"Simplified Chinese",
"Spanish",
"Swedish",
"Thai",
"Traditional Chinese",
"Turkish",
"Vietnamese"
],
"hasSafariExtension": false,
"requiresGameController": false,
"requiredCapabilities": "arm64 ",
"offers": [
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=STDQ&pg=default&appExtVrsId=850317086",
"type": "get",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 44467200
}
]
},
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=SWUPD&pg=default&appExtVrsId=850317086",
"type": "update",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 44467200
}
]
}
],
"supportedLocales": [
{
"name": "English",
"tag": "en-US"
},
{
"name": "Czech",
"tag": "cs"
},
{
"name": "Danish",
"tag": "da"
},
{
"name": "Dutch",
"tag": "nl"
},
{
"name": "Finnish",
"tag": "fi"
},
{
"name": "French",
"tag": "fr-FR"
},
{
"name": "German",
"tag": "de-DE"
},
{
"name": "Greek",
"tag": "el"
},
{
"name": "Hindi",
"tag": "hi"
},
{
"name": "Hungarian",
"tag": "hu"
},
{
"name": "Indonesian",
"tag": "id"
},
{
"name": "Italian",
"tag": "it"
},
{
"name": "Japanese",
"tag": "ja"
},
{
"name": "Korean",
"tag": "ko"
},
{
"name": "Malay",
"tag": "ms"
},
{
"name": "Norwegian Bokmål",
"tag": "nb"
},
{
"name": "Polish",
"tag": "pl"
},
{
"name": "Portuguese",
"tag": "pt-PT"
},
{
"name": "Romanian",
"tag": "ro"
},
{
"name": "Russian",
"tag": "ru"
},
{
"name": "Simplified Chinese",
"tag": "zh-Hans-CN"
},
{
"name": "Spanish",
"tag": "es-ES"
},
{
"name": "Swedish",
"tag": "sv"
},
{
"name": "Thai",
"tag": "th"
},
{
"name": "Traditional Chinese",
"tag": "zh-Hant-HK"
},
{
"name": "Turkish",
"tag": "tr"
},
{
"name": "Vietnamese",
"tag": "vi"
}
],
"requires32bit": false,
"isGameCenterEnabled": false,
"isSiriSupported": false,
"releaseDate": "2019-02-05",
"minimumOSVersion": "13.0",
"hasInAppPurchases": true,
"bundleId": "com.facebook.Facebook",
"hasMessagesExtension": false,
"artwork": {
"width": 1280,
"height": 768,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Purple122/v4/b9/26/84/b92684e5-8b03-497e-c310-0e33638f1f15/App_Icon_-_Small-marketing.lsr/{w}x{h}{c}.{f}",
"bgColor": "0155c1",
"textColor1": "fdfbf8",
"textColor2": "aaccf9",
"textColor3": "cadaed",
"textColor4": "88b4ee"
},
"supportsGameController": false,
"hasFamilyShareableInAppPurchases": false,
"isHiddenFromSpringboard": false,
"isStandaloneForWatchOS": false,
"isDeliveredInIOSAppForWatchOS": false,
"hasPrivacyPolicyText": true,
"editorialArtwork": {
"originalFlowcaseBrick": {
"width": 3200,
"height": 600,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features5/v4/c8/ed/1f/c8ed1f60-2d29-efbd-ea9f-5c8e0d6dde47/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "1a2743",
"textColor2": "451937",
"textColor3": "475269",
"textColor4": "6a475f"
},
"storeFlowcase": {
"width": 4320,
"height": 1080,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features118/v4/87/b3/cf/87b3cf1b-1d41-d685-ba94-6aa23a502614/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "010303",
"textColor2": "1a2844",
"textColor3": "343535",
"textColor4": "485369"
},
"fullscreenBackground": {
"width": 4320,
"height": 2160,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features124/v4/e2/e5/af/e2e5af56-290d-97be-c087-2b3b4a284a83/source/{w}x{h}{c}.{f}",
"bgColor": "2b4b8d",
"textColor1": "d6def1",
"textColor2": "dbd0a2",
"textColor3": "b4c1dd",
"textColor4": "b8b69e"
},
"contentLogo": {
"width": 2400,
"height": 390,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features114/v4/ba/c9/28/bac928f0-b92d-d455-b6ad-3735bb4e9691/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d5d5d5",
"textColor3": "cbcbcb",
"textColor4": "aaaaaa"
},
"brandLogo": {
"width": 1080,
"height": 1080,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Features116/v4/37/1e/f0/371ef0b1-ce56-e476-1355-a92b5808bf5a/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "f2f2f2",
"textColor2": "e5e5e5",
"textColor3": "c1c1c1",
"textColor4": "b7b7b7"
},
"contentLogoTrimmed": {
"width": 2115,
"height": 386,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Features113/v4/bc/12/95/bc129552-eac9-a790-26dd-e3f3b1897bc1/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d6d6d6",
"textColor3": "cbcbcb",
"textColor4": "ababab"
}
},
"supportsPassbook": false,
"requirementsString": "Requires tvOS 13.0 or later.",
"externalVersionId": 850317086
},
"ios": {
"seller": "Meta Platforms, Inc.",
"copyright": "© 2022 Meta",
"minimumMacOSVersion": "11.0",
"isStandaloneWithCompanionForWatchOS": false,
"is32bitOnly": false,
"isAppleWatchSupported": false,
"languageList": [
"English",
"Arabic",
"Croatian",
"Czech",
"Danish",
"Dutch",
"Finnish",
"French",
"German",
"Greek",
"Hebrew",
"Hindi",
"Hungarian",
"Indonesian",
"Italian",
"Japanese",
"Korean",
"Malay",
"Norwegian Bokmål",
"Polish",
"Portuguese",
"Romanian",
"Russian",
"Simplified Chinese",
"Slovak",
"Spanish",
"Swedish",
"Thai",
"Traditional Chinese",
"Turkish",
"Ukrainian",
"Vietnamese"
],
"hasSafariExtension": false,
"requiresGameController": false,
"requiredCapabilities": "arm64 ",
"offers": [
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=STDQ&pg=default&appExtVrsId=854345153",
"type": "get",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 314289152
}
]
},
{
"buyParams": "productType=C&price=0&salableAdamId=284882215&pricingParameters=SWUPD&pg=default&appExtVrsId=854345153",
"type": "update",
"priceFormatted": "$0.00",
"price": 0.0,
"currencyCode": "USD",
"assets": [
{
"flavor": "iosSoftware",
"size": 314289152
}
]
}
],
"supportedLocales": [
{
"name": "English",
"tag": "en-US"
},
{
"name": "Arabic",
"tag": "ar"
},
{
"name": "Croatian",
"tag": "hr"
},
{
"name": "Czech",
"tag": "cs"
},
{
"name": "Danish",
"tag": "da"
},
{
"name": "Dutch",
"tag": "nl"
},
{
"name": "Finnish",
"tag": "fi"
},
{
"name": "French",
"tag": "fr-FR"
},
{
"name": "German",
"tag": "de-DE"
},
{
"name": "Greek",
"tag": "el"
},
{
"name": "Hebrew",
"tag": "he"
},
{
"name": "Hindi",
"tag": "hi"
},
{
"name": "Hungarian",
"tag": "hu"
},
{
"name": "Indonesian",
"tag": "id"
},
{
"name": "Italian",
"tag": "it"
},
{
"name": "Japanese",
"tag": "ja"
},
{
"name": "Korean",
"tag": "ko"
},
{
"name": "Malay",
"tag": "ms"
},
{
"name": "Norwegian Bokmål",
"tag": "nb"
},
{
"name": "Polish",
"tag": "pl"
},
{
"name": "Portuguese",
"tag": "pt-PT"
},
{
"name": "Romanian",
"tag": "ro"
},
{
"name": "Russian",
"tag": "ru"
},
{
"name": "Simplified Chinese",
"tag": "zh-Hans-CN"
},
{
"name": "Slovak",
"tag": "sk"
},
{
"name": "Spanish",
"tag": "es-ES"
},
{
"name": "Swedish",
"tag": "sv"
},
{
"name": "Thai",
"tag": "th"
},
{
"name": "Traditional Chinese",
"tag": "zh-Hant-HK"
},
{
"name": "Turkish",
"tag": "tr"
},
{
"name": "Ukrainian",
"tag": "uk"
},
{
"name": "Vietnamese",
"tag": "vi"
}
],
"requires32bit": false,
"isGameCenterEnabled": false,
"isSiriSupported": true,
"releaseDate": "2019-02-05",
"minimumOSVersion": "13.4",
"hasInAppPurchases": true,
"bundleId": "com.facebook.Facebook",
"hasMessagesExtension": false,
"artwork": {
"width": 1024,
"height": 1024,
"url": "https://is5-ssl.mzstatic.com/image/thumb/Purple113/v4/45/ab/be/45abbeac-3a7e-aa86-c1c5-007c09df6d7c/Icon-Production-0-1x_U007emarketing-0-7-0-85-220.png/{w}x{h}{c}.{f}",
"bgColor": "18aeff",
"textColor1": "141516",
"textColor2": "161616",
"textColor3": "153445",
"textColor4": "173545"
},
"supportsGameController": false,
"hasFamilyShareableInAppPurchases": false,
"isHiddenFromSpringboard": false,
"isStandaloneForWatchOS": false,
"isDeliveredInIOSAppForWatchOS": false,
"hasPrivacyPolicyText": true,
"editorialArtwork": {
"originalFlowcaseBrick": {
"width": 3200,
"height": 600,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features5/v4/c8/ed/1f/c8ed1f60-2d29-efbd-ea9f-5c8e0d6dde47/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "1a2743",
"textColor2": "451937",
"textColor3": "475269",
"textColor4": "6a475f"
},
"storeFlowcase": {
"width": 4320,
"height": 1080,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features118/v4/87/b3/cf/87b3cf1b-1d41-d685-ba94-6aa23a502614/source/{w}x{h}{c}.{f}",
"bgColor": "ffffff",
"textColor1": "010303",
"textColor2": "1a2844",
"textColor3": "343535",
"textColor4": "485369"
},
"fullscreenBackground": {
"width": 4320,
"height": 2160,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features124/v4/e2/e5/af/e2e5af56-290d-97be-c087-2b3b4a284a83/source/{w}x{h}{c}.{f}",
"bgColor": "2b4b8d",
"textColor1": "d6def1",
"textColor2": "dbd0a2",
"textColor3": "b4c1dd",
"textColor4": "b8b69e"
},
"contentLogo": {
"width": 2400,
"height": 390,
"url": "https://is1-ssl.mzstatic.com/image/thumb/Features114/v4/ba/c9/28/bac928f0-b92d-d455-b6ad-3735bb4e9691/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d5d5d5",
"textColor3": "cbcbcb",
"textColor4": "aaaaaa"
},
"brandLogo": {
"width": 1080,
"height": 1080,
"url": "https://is4-ssl.mzstatic.com/image/thumb/Features116/v4/37/1e/f0/371ef0b1-ce56-e476-1355-a92b5808bf5a/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "f2f2f2",
"textColor2": "e5e5e5",
"textColor3": "c1c1c1",
"textColor4": "b7b7b7"
},
"contentLogoTrimmed": {
"width": 2115,
"height": 386,
"url": "https://is3-ssl.mzstatic.com/image/thumb/Features113/v4/bc/12/95/bc129552-eac9-a790-26dd-e3f3b1897bc1/source/{w}x{h}{c}.{f}",
"bgColor": "000000",
"textColor1": "ffffff",
"textColor2": "d6d6d6",
"textColor3": "cbcbcb",
"textColor4": "ababab"
}
},
"supportsPassbook": false,
"requirementsString": "Requires iOS 13.4 or later. Compatible with iPhone, iPad, and iPod touch.",
"externalVersionId": 854345153
}
}
},
"relationships": {
"genres": {
"href": "/v1/catalog/us/apps/284882215/genres?l=en-US",
"data": [
{
"id": "6005",
"type": "genres",
"href": "/v1/catalog/us/genres/6005?l=en-US",
"attributes": {
"parentName": "App Store",
"name": "Social Networking",
"parentId": "36",
"url": "https://itunes.apple.com/us/genre/id6005"
}
}
]
},
"developer": {
"href": "/v1/catalog/us/apps/284882215/developer?l=en-US",
"data": [
{
"id": "284882218",
"type": "developers",
"href": "/v1/catalog/us/developers/284882218?l=en-US"
}
]
}
}
}
Looks familiar, doesn't it? :D This seems to be a proxy for the media API we're using (and you can in fact also use the same parameters to change the response, I have tested that; so it does also support fetching privacy labels!), but conveniently enough without the need for a token.
Definitely good to keep in mind. But I don't think we should switch to that. Some random proxy for a single affiliate page seems a lot less stable than the internal API used by the App Store app (and Apple has changed a lot about the affiliate stuff in the past).
Hey, @baltpeter What app are you use to take token as on your screenshots? Right like there https://github.com/tweaselORG/parse-tunes/issues/6#issuecomment-1385638063
@powerdot That's mitmweb (part of mitmproxy).
@baltpeter
The App Store on an iPhone uses the same endpoint as the website:
Hi @baltpeter, could you tell, how do you intercept traffic from the App Store on an iPhone?
@Marranafa I'm using mitmproxy in conjunction with SSL Kill Switch 2.
Thank you
@sam-redbox Not quite sure what you mean. The App Store requests the token on its own, I just recorded the traffic of it doing that.
Hi, do you have the User-Agent header for iTunes' registered apple id?
Excuse me,I want the specific parameters of the keyword search interface for the iOS 15 app store
For fetching the privacy labels, I have so far used this endpoint:
The problem is the required
Bearer
token, which doesn't last long. You can extract that from the website (Go to any app (like https://apps.apple.com/us/app/facebook/id284882215), and observe the network traffic while clicking the 'See Details' link next to 'App Privacy'.) but it would be nice if that wasn't necessary.