To get more than 5 reviews from google places API - google-maps-api-3

I am doing an application where I extract the google reviews using google places API.When I read the document related to it in "https://developers.google.com/maps/documentation/javascript/places",I found out that I could get only 5 top reviews.Is there any option to get more reviews.

In order to have access to more than 5 reviews with the Google API you have to purchase Premium data Access from Google.
That premium plan will grant you access to all sorts of additional data points you have to shell out a pretty penny.
If you are a Business owner wanting to retrieve all of your reviews, you can do so but first you have to get verified and could do this through the MyBusiness API more info here: https://developers.google.com/my-business/

There is a feature request for that: Issue 7630: Response to Include More Than 5 Reviews ─ I'd recommend you "star" it to receive updates.

Unfortunately there's no way to get more than 5 reviews in the places API unless you are the business owner after getting verified as Tekill said.
But it looks like there are some external services that can get all the reviews. My guess is that they scrape them from Google Maps directly:
Some of these services are Wextractor, ReviewShake and AllReviews

Alternatively, you can use a third party solution like SerpApi to scrape all the reviews of any place. It's a paid API with a free trial.
Each page fatches 10 results. To implement the pagination just use the start parameter which defines the result offset (e.g., 0 (default) is the first page of results, 10 is the 2nd page of results, 20 is the 3rd page of results, etc.)
Example python code (available in other libraries also):
from serpapi import GoogleSearch
params = {
"engine": "google_maps_reviews",
"place_id": "0x89c259a61c75684f:0x79d31adb123348d2",
"api_key": "SECRET_API_KEY"
}
search = GoogleSearch(params)
results = search.get_dict()
reviews = results['reviews']
Example output:
"reviews": [
{
"user": {
"name": "Waylon Bilbrey",
"link": "https://www.google.com/maps/contrib/107691056156160235121?hl=en-US&sa=X&ved=2ahUKEwiUituIlpTvAhVYCc0KHbvTCrgQvvQBegQIARAx",
"thumbnail": "https://lh3.googleusercontent.com/a-/AOh14GjOj6Wjfk1kSYjhvH7WIBNMdl4nPj6FvUhvYcR6=s40-c0x00000000-cc-rp",
"reviews": 1
},
"rating": 4,
"date": "a week ago",
"snippet": "I've been here multiple times. The coffee itself is just average to me. The service is good (the people working are nice). The aesthetic is obviously what brings the place some fame. A little overpriced (even for NY). A very small cup for $6 where I feel like the price comes from the top rainbow foam decor , when I'm going to cover it anyways. If it's for an insta pic then it may be worth it?"
},
{
"user": {
"name": "Amber Grace Sale",
"link": "https://www.google.com/maps/contrib/106390058588469541899?hl=en-US&sa=X&ved=2ahUKEwiUituIlpTvAhVYCc0KHbvTCrgQvvQBegQIARA7",
"thumbnail": "https://lh3.googleusercontent.com/a-/AOh14Gj84nHu_9V_0V4yRbZcr-8ZTYAHua6gUBP8fC7W=s40-c0x00000000-cc-rp-ba3",
"local_guide": true,
"reviews": 33,
"photos": 17
},
"rating": 5,
"date": "2 years ago",
"snippet": "They really take pride in their espresso roast here and the staff is extremely knowledgeable on the subject. It’s also a GREAT place to do work although a table is no guarantee; you might have to wait for a bit. My almond milk cappuccino was very acidic at the end which wasn’t expected but I could still tell the bean was high quality. Their larger lattés they put in a tall glass cup which looks really really cool. Would definitely go again.",
"likes": 2,
"images": [
"https://lh5.googleusercontent.com/p/AF1QipMup24_dHrWtNN4ZD70EPsiRMf_tykcUkPw6A1H=w100-h100-p-n-k-no"
]
},
{
"user": {
"name": "Kelvin Petar",
"link": "https://www.google.com/maps/contrib/100859090874785206875?hl=en-US&sa=X&ved=2ahUKEwiUituIlpTvAhVYCc0KHbvTCrgQvvQBegQIARBG",
"thumbnail": "https://lh3.googleusercontent.com/a-/AOh14GhdIvUDamzfPqbYIpwhnGJV2XWSi77iVXfEsiKS=s40-c0x00000000-cc-rp",
"reviews": 3
},
"rating": 4,
"date": "3 months ago",
"snippet": "Stumptown Cafe is the perfect place to work or catch up with friends. Never too loud, never too dead. Their lattes and deliciously addicting and the toasts are tasty as well. Wifi is always fast, which is a huge plus! The staff are the friendliest, I highly recommend this place!"
},
...
]
You can check out the documentation for more details.
Disclaimer: I work at SerpApi.

Adding to the answer of #miguev, there's at the moment no way to get more than 5 top reviews without using premium APIs (according to a Google Maps guy I had a talk with) and that's pricey.

We tried to sign for The Google Maps Platform Premium Plan to show them on pages like this but Google said it's no longer available for sign up or new customers. Right now we're limited to 5 reviews only.

Related

Get Twitter handle for an NFT contract address

I'm looking to get the official Twitter handle from an OS Verified project, programmatically.
I've tried calling the "collections" OS API, but the twitter_username field seems to rarely be populated with anything but "null" even for verified projects.
I've tried scraping the data manually with fetch but I got 1020 errors likely due to cloudflare protections.
Has anyone else used Moralis NFT or some other GraphHQ like service to obtain the Twitter handle of a given NFT project (starting out with a contract address)?
You can try Ubiquity API. They have an endpoint for collection metadata which also includes the Twitter account name
https://ubiquity.api.blockdaemon.com/v1/nft/ethereum/mainnet/collection?contract_address=0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D
This will give you the following response
{
"collection": {
"id": "4203aedd-7964-5fe1-b932-eb8c4fda7822",
"name": "Bored Ape Yacht Club",
"description": "The Bored Ape Yacht Club is a collection of 10,000 unique Bored Ape NFTs— unique digital collectibles living on the Ethereum blockchain. Your Bored Ape doubles as your Yacht Club membership card, and grants access to members-only benefits, the first of which is access to THE BATHROOM, a collaborative graffiti board. Future areas and perks can be unlocked by the community through roadmap activation. Visit www.BoredApeYachtClub.com for more details.",
"logo": "https://ubiquity.api.blockdaemon.com/v1/nft/media/ethereum/mainnet/collection/4203aedd-7964-5fe1-b932-eb8c4fda7822/logo.png",
"banner": "https://ubiquity.api.blockdaemon.com/v1/nft/media/ethereum/mainnet/collection/4203aedd-7964-5fe1-b932-eb8c4fda7822/banner.jpeg",
"verified": true,
"contracts": [
{
"address": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
"name": "BoredApeYachtClub",
"symbol": "BAYC",
"description": "",
"image_url": "https://ubiquity.api.blockdaemon.com/v1/nft/media/ethereum/mainnet/",
"type": "ERC721"
}
],
"meta": {
"discord_url": "https://discord.gg/3P5K3dzgdB",
"external_url": "http://www.boredapeyachtclub.com/",
"twitter_username": "BoredApeYC"
},
"sub_collection": []
}

How to reverse engineer POST request's body generation

I'm trying to scrape reviews from Google Play. Google Play loads reviews dynamically after page has been scrolled to the end. I intercepted post requests that browser sends for retrieving reviews and noticed that the only thing that changes per request is the request's body. What I'm struggling to understand is how the request's body is generated.
The first request's body looked like this:
f.req: [[["UsvDTd","[null,null,[2,null,[40,null,\"CpUBCpIBKm0KOfc7ms0D_z7jKJielp7Fz8_Pz8_Pms3OzpuZyJvMnMXOxYmSxc3MyczPz8vIycjMysbHxszPysb__hAoITbZQaENmbWoMU2VCwWZPGwZOdccwQD8MmXEUABaCwlwT4zmNQBa2BADYMm1lu0EMiEKHwodYW5kcm9pZF9oZWxwZnVsbmVzc19xc2NvcmVfdjI\"],null,[]],[\"com.feelingtouch.zf3d\",7]]",null,"generic"]]]
and this's is the second request:
f.req: [[["UsvDTd","[null,null,[2,null,[40,null,\"CpUBCpIBKm0KOfc7msyg_28-Rpielp7Fz8_Pz8_Pm56eypyZzcycm8XOxYmSxc3MyczPz8vIycjMysbHxszPysb__hB4ITbZQaENmbWoMZI5V7V-7g3BObnBkABfM2XEUABaCwli2aizD1W9ExADYMm1lu0EMiEKHwodYW5kcm9pZF9oZWxwZnVsbmVzc19xc2NvcmVfdjI\"],null,[]],[\"com.feelingtouch.zf3d\",7]]",null,"generic"]]]
Can I somehow reverse engineer how the request is generated?
I tried to use Selenium, but after scrolling down few dozens time RAM usage runs up and Selenium becomes unresponsive.
The thing that changes is the pagination token. But, there are a couple of other things as well.
Here is the full encoded request body, with the parameters wrapped in #{} (number_of_results, pagination_token, and product_id).
f.req=%5B%5B%5B%22UsvDTd%22%2C%22%5Bnull%2Cnull%2C%5B2%2Cnull%2C%5B#{number_of_results}%2Cnull%2C#{pagination_token}%5D%2Cnull%2C%5B%5D%5D%2C%5B%5C%22#{product_id}%5C%22%2C7%5D%5D%22%2Cnull%2C%22generic%22%5D%5D%5D
So each time you scroll the page the pagination_token would change. They use it to retrieve the next page results.
You don't need to reverse engineer the token itself. You can find the first one when inspecting the page source, and then, for each next time you make a request to retrieve the results, the next_page_toke will be included in there. So, you just keep replacing the token until you reach the last page, and retrieve all the reviews.
Alternatively, you could use a third-party solution like SerpApi. We handle proxies, solve captchas, and parse all rich structured data for you.
Example python code for retrieving YouTube reviews (available in other libraries also):
from serpapi import GoogleSearch
params = {
"api_key": "SECRET_API_KEY",
"engine": "google_play_product",
"store": "apps",
"gl": "us",
"product_id": "com.google.android.youtube",
"all_reviews": "true"
}
search = GoogleSearch(params)
results = search.get_dict()
Example JSON output:
"reviews": [
{
"title": "Qwerty Jones",
"avatar": "https://play-lh.googleusercontent.com/a/AATXAJwSQC_a0OIQqkAkzuw8nAxt4vrVBgvkmwoSiEZ3=mo",
"rating": 3,
"snippet": "Overall a great app. Lots of videos to see, look at shorts, learn hacks, etc. However, every time I want to go on the app, it says I need to update the game and that it's \"not the current version\". I've done it about 3 times now, and it's starting to get ridiculous. It could just be my device, but try to update me if you have any clue how to fix this. Thanks :)",
"likes": 586,
"date": "November 26, 2021"
},
{
"title": "matthew baxter",
"avatar": "https://play-lh.googleusercontent.com/a/AATXAJy9NbOSrGscHXhJu8wmwBvR4iD-BiApImKfD2RN=mo",
"rating": 1,
"snippet": "App is broken, every video shows no dislikes even after I hit the button. I've tested this with multiple videos and now my recommended is all messed up because of it. The ads are longer than the videos that I'm trying to watch and there is always a second ad after the first one. This app seriously sucks. I would not recommend this app to anyone.",
"likes": 352,
"date": "November 28, 2021"
},
{
"title": "Operation Blackout",
"avatar": "https://play-lh.googleusercontent.com/a-/AOh14GjMRxVZafTAmwYA5xtamcfQbp0-rUWFRx_JzQML",
"rating": 2,
"snippet": "YouTube used to be great, but now theyve made questionable and arguably stupid decisions that have effectively ruined the platform. For instance, you now have the grand chance of getting 30 seconds of unskipable ad time before the start of a video (or even in the middle of it)! This happens so frequently that its actually a feasible option to buy an ad blocker just for YouTube itself... In correlation with this, YouTube is so sensitive twords the public they decided to remove dislikes. Why????",
"likes": 370,
"date": "November 24, 2021"
},
...
],
"serpapi_pagination": {
"next": "https://serpapi.com/search.json?all_reviews=true&engine=google_play_product&gl=us&hl=en&next_page_token=CpEBCo4BKmgKR_8AwEEujFG0VLQA___-9zuazVT_jmsbmJ6WnsXPz8_Pz8_PxsfJx5vJns3Gxc7FiZLFxsrLysnHx8rIx87Mx8nNzsnLyv_-ECghlTCOpBLShpdQAFoLCZiJujt_EovhEANgmOjCATIiCiAKHmFuZHJvaWRfaGVscGZ1bG5lc3NfcXNjb3JlX3YyYQ&product_id=com.google.android.youtube&store=apps",
"next_page_token": "CpEBCo4BKmgKR_8AwEEujFG0VLQA___-9zuazVT_jmsbmJ6WnsXPz8_Pz8_PxsfJx5vJns3Gxc7FiZLFxsrLysnHx8rIx87Mx8nNzsnLyv_-ECghlTCOpBLShpdQAFoLCZiJujt_EovhEANgmOjCATIiCiAKHmFuZHJvaWRfaGVscGZ1bG5lc3NfcXNjb3JlX3YyYQ"
}
Check out the documentation for more details.
Test the search live on the playground.
Disclaimer: I work at SerpApi.

Free API/library that allows processing/Iterating/querying Scientific articles (i.e. Google Scholar)?

I'm trying to find a feasible way to iterate over all Scientific Papers on Google Scholar (or any other Scientific library). I do not need the paper content, only Title, Author, Citations & Abstract.
I'm looking for some type of libraries/api's that allow me to iterate and process these papers, as well as something with high querying capabilities.
The only one I found so far is scholarly. It seems pretty good for querying, however, I do not see any option for iterating through everything.
Is there any other web scraping tool that allows me to do that?
Without knowing your specific purpose, it is a bit difficult to give a good response.
But nevertheless, the go-to-place for scientific metadata (e.g. title, authors, citations) would be CrossRef's API. It is free to use.
While I do not know how you determine your sample, you could, for instance, take the ISSN of a journal to fetch metadata about the journal's papers (example here), or you can use a publication's DOI to obtain metadata about that specific paper (example here).
There's a Google Scholar API from SerpApi that supports organic, cite, profile, author results. It bypasses blocks from Google without the need to figure it out by yourself.
Example code to integrate that extracts organic results and full example in the online IDE:
# to scrape profile results, author:
# https://replit.com/#DimitryZub1/Scrape-Google-Scholar-Profile-Results-from-all-Pages#main.py
import json
from serpapi import GoogleScholarSearch
params = {
"api_key": "Your SerpApi API key",
"engine": "google_scholar",
"q": "biology", # search query
"hl": "en" # language
}
search = GoogleScholarSearch(params) # where extraction happens
results = search.get_dict() # JSON -> Python dict
for result in results["organic_results"]:
print(json.dumps(result, indent=2))
# part of the output:
'''
{
"position": 0,
"title": "The biology of mycorrhiza.",
"result_id": "6zRLFbcxtREJ",
"link": "https://www.cabdirect.org/cabdirect/abstract/19690600367",
"snippet": "In the second, revised and extended, edition of this work [cf. FA 20 No. 4264], two new chapters have been added (on carbohydrate physiology physiology Subject Category \u2026",
"publication_info": {
"summary": "JL Harley - The biology of mycorrhiza., 1969 - cabdirect.org"
},
"inline_links": {
"serpapi_cite_link": "https://serpapi.com/search.json?engine=google_scholar_cite&q=6zRLFbcxtREJ",
"cited_by": {
"total": 704,
"link": "https://scholar.google.com/scholar?cites=1275980731835430123&as_sdt=2005&sciodt=0,5&hl=en",
"cites_id": "1275980731835430123",
"serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=2005&cites=1275980731835430123&engine=google_scholar&hl=en"
},
"related_pages_link": "https://scholar.google.com/scholar?q=related:6zRLFbcxtREJ:scholar.google.com/&scioq=biology&hl=en&as_sdt=0,5",
"versions": {
"total": 4,
"link": "https://scholar.google.com/scholar?cluster=1275980731835430123&hl=en&as_sdt=0,5",
"cluster_id": "1275980731835430123",
"serpapi_scholar_link": "https://serpapi.com/search.json?as_sdt=0%2C5&cluster=1275980731835430123&engine=google_scholar&hl=en"
},
"cached_page_link": "https://scholar.googleusercontent.com/scholar?q=cache:6zRLFbcxtREJ:scholar.google.com/+biology&hl=en&as_sdt=0,5"
}
}
... other results
'''
If you want to scrape data from all available pages, or all publications from a certain author, there is a dedicated Scrape historic Google Scholar results to CSV, SQLite or Scrape all Google Scholar Profile, Author Results to CSV blog posts of mine at SerpApi.
Disclaimer, I work for SerpApi.

No large images in shares posted using LinkedIn API

During last couple of weeks any shares made using LinkedIn sharing API don't display large images, though we provide all required information for this, including image URL. The same happens when we use REST Console. Below you can see a sample request and how the share looks like.
{
"comment": "How Triggre achieves its simplicity",
"content": {
"title": "Triggre / Blog / Design Philosophy - Part 3",
"description": "In the previous two posts about our design philosophy you could read how we decided to build Triggre and why we chose simplicity as the core of our desi...",
"submitted-url": "https://www.triggre.com/en/blog/the-triggre-design-philosophy-part-3/",
"submitted-image-url": "https://www.triggre.com/media/1105/sagrada-familia.jpg?width=800"
},
"visibility": {
"code": "anyone"
}
}
A share without large image
What is happening and how could we workaround it?

apple customerreviews with rss2email (list of countries or app stores)

In iTunesConnect you can open rss feeds for the customer reviews of your app:
https://itunes.apple.com/us/rss/customerreviews/id=123/sortBy=mostRecent/xml
https://itunes.apple.com/de/rss/customerreviews/id=123/sortBy=mostRecent/xml
The top level folder (us/de/..) of the URL changes for each country, the parameter id is the store id of the app. (here 123)
With rss2email you can check the feeds and send an email when somebody posts a review. So far, so good.
My problem is, that in iTunesConnect there are only six countries in the dropdown, where somebody has actually posted a review. But I cannot find out, what other country codes (us/de/..) there are, so I will miss reviews from other countries.
I have tried parsing possible codes from this page and got 73 two character codes:
http://www.apple.com/choose-your-country/
But this has resulted in most reviews triggering up to five emails and I don't see, which country codes have caused them or if there might be stores with codes longer than two characters.
Does anyone maybe know, how/where to get a list of all valid countries/appstores without those causing duplicates?
edit: i could not add tags for "rss2email" and "customerreviews" ..
You can use the country list of the Country dropdown input list of the following url:
http://itunes.apple.com/rss/
Probably you got the question resolved by now but in following link you can check appstore country codes: AppStore Territories
https://itunes.apple.com/lookup?id=[app-id]&country=[country-code]
Example URL: https://itunes.apple.com/lookup?id=297606951&country=us
Example Response:
{
"resultCount": 1,
"results": [{
"supportedDevices": ["iPhone5s-iPhone5s", "iPadAir-iPadAir", "iPadAirCellular-iPadAirCellular", "iPadMiniRetina-iPadMiniRetina", "iPadMiniRetinaCellular-iPadMiniRetinaCellular", "iPhone6-iPhone6", "iPhone6Plus-iPhone6Plus", "iPadAir2-iPadAir2", "iPadAir2Cellular-iPadAir2Cellular", "iPadMini3-iPadMini3", "iPadMini3Cellular-iPadMini3Cellular", "iPodTouchSixthGen-iPodTouchSixthGen", "iPhone6s-iPhone6s", "iPhone6sPlus-iPhone6sPlus", "iPadMini4-iPadMini4", "iPadMini4Cellular-iPadMini4Cellular", "iPadPro-iPadPro", "iPadProCellular-iPadProCellular", "iPadPro97-iPadPro97", "iPadPro97Cellular-iPadPro97Cellular", "iPhoneSE-iPhoneSE", "iPhone7-iPhone7", "iPhone7Plus-iPhone7Plus", "iPad611-iPad611", "iPad612-iPad612", "iPad71-iPad71", "iPad72-iPad72", "iPad73-iPad73", "iPad74-iPad74", "iPhone8-iPhone8", "iPhone8Plus-iPhone8Plus", "iPhoneX-iPhoneX", "iPad75-iPad75", "iPad76-iPad76", "iPhoneXS-iPhoneXS", "iPhoneXSMax-iPhoneXSMax", "iPhoneXR-iPhoneXR", "iPad812-iPad812", "iPad834-iPad834", "iPad856-iPad856", "iPad878-iPad878", "iPadMini5-iPadMini5", "iPadMini5Cellular-iPadMini5Cellular", "iPadAir3-iPadAir3", "iPadAir3Cellular-iPadAir3Cellular", "iPodTouchSeventhGen-iPodTouchSeventhGen", "iPhone11-iPhone11", "iPhone11Pro-iPhone11Pro", "iPadSeventhGen-iPadSeventhGen", "iPadSeventhGenCellular-iPadSeventhGenCellular", "iPhone11ProMax-iPhone11ProMax", "iPhoneSESecondGen-iPhoneSESecondGen", "iPadProSecondGen-iPadProSecondGen", "iPadProSecondGenCellular-iPadProSecondGenCellular", "iPadProFourthGen-iPadProFourthGen", "iPadProFourthGenCellular-iPadProFourthGenCellular", "iPhone12Mini-iPhone12Mini", "iPhone12-iPhone12", "iPhone12Pro-iPhone12Pro", "iPhone12ProMax-iPhone12ProMax", "iPadAir4-iPadAir4", "iPadAir4Cellular-iPadAir4Cellular", "iPadEighthGen-iPadEighthGen", "iPadEighthGenCellular-iPadEighthGenCellular", "iPadProThirdGen-iPadProThirdGen", "iPadProThirdGenCellular-iPadProThirdGenCellular", "iPadProFifthGen-iPadProFifthGen", "iPadProFifthGenCellular-iPadProFifthGenCellular", "iPhone13Pro-iPhone13Pro", "iPhone13ProMax-iPhone13ProMax", "iPhone13Mini-iPhone13Mini", "iPhone13-iPhone13", "iPadMiniSixthGen-iPadMiniSixthGen", "iPadMiniSixthGenCellular-iPadMiniSixthGenCellular", "iPadNinthGen-iPadNinthGen", "iPadNinthGenCellular-iPadNinthGenCellular", "iPhoneSEThirdGen-iPhoneSEThirdGen", "iPadAirFifthGen-iPadAirFifthGen", "iPadAirFifthGenCellular-iPadAirFifthGenCellular"],
"features": ["iosUniversal"],
"advisories": [],
"isGameCenterEnabled": false,
"screenshotUrls": [
"https://is1-ssl.mzstatic.com/image/thumb/PurpleSource115/v4/f6/33/7b/f6337b0c-2671-e2b4-002f-0a36fab77e71/17eaa185-7352-4096-b55c-0bae474b4199_Apple_5.5_1242x2208_IntroScreen.png/392x696bb.png",
"https://is2-ssl.mzstatic.com/image/thumb/Purple125/v4/ce/2f/11/ce2f115f-e0df-cf9d-4c72-d0cc4f7091e8/2150888f-4c22-4325-99a9-5d482b1655f9_1242x2208_Screen1.png/392x696bb.png",
"https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/18/d9/8c/18d98c8b-ac4f-ee10-d6f5-78b83231b361/dc6e2c88-148f-4e8c-bb8b-52a28e6f0964_1242x2208_Screen2.png/392x696bb.png",
"https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/24/47/4a/24474a84-9822-7713-7756-6ac963cf89bb/098cc97c-bf76-4aca-b1c3-36c7e4219a74_1242x2208_Screen3.png/392x696bb.png",
"https://is1-ssl.mzstatic.com/image/thumb/Purple115/v4/8b/d4/31/8bd43171-4bae-a895-6bba-1a4dd6c019b3/58ae38d7-8318-4e21-a418-2a8de41525f9_1242x2208_Screen4.png/392x696bb.png",
"https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/94/cf/b6/94cfb621-7843-b73e-8d94-1116bd088796/21c4c003-5d3e-4793-8b58-11b24e5be2af_1242x2208_Screen5.png/392x696bb.png",
"https://is4-ssl.mzstatic.com/image/thumb/Purple115/v4/b7/ff/32/b7ff32fc-40f7-8fbc-c47f-e6199fdd46cc/0d923ffa-5cf0-4fcc-990c-be0252f7e6e5_1242x2208_Screen6.png/392x696bb.png"
],
"ipadScreenshotUrls": ["https://is4-ssl.mzstatic.com/image/thumb/Purple125/v4/b0/da/7a/b0da7a66-25ab-0fc0-704f-b5dc60530566/pr_source.png/576x768bb.png", "https://is4-ssl.mzstatic.com/image/thumb/Purple115/v4/c9/19/ef/c919ef13-664e-0d0f-01fc-0d456b56c2c8/pr_source.png/576x768bb.png", "https://is3-ssl.mzstatic.com/image/thumb/Purple115/v4/28/9e/4a/289e4a6c-6428-53fd-fde1-0efa40e64a78/pr_source.png/576x768bb.png", "https://is1-ssl.mzstatic.com/image/thumb/Purple115/v4/be/1c/67/be1c678b-4f3f-33c3-fbaa-8e8be720911b/pr_source.png/576x768bb.png", "https://is2-ssl.mzstatic.com/image/thumb/Purple125/v4/e1/94/bf/e194bf78-08ea-e419-7bf8-dbb476dbed58/pr_source.png/576x768bb.png", "https://is5-ssl.mzstatic.com/image/thumb/Purple125/v4/92/95/84/929584ee-7825-9d7b-1a65-22a08a337203/pr_source.png/576x768bb.png", "https://is4-ssl.mzstatic.com/image/thumb/Purple115/v4/d8/88/eb/d888eb7d-0203-07e9-0cb7-2bd86e8202c5/pr_source.png/576x768bb.png", "https://is2-ssl.mzstatic.com/image/thumb/Purple125/v4/ed/99/82/ed9982f2-9f91-70f8-7cff-db3be3e24221/pr_source.png/576x768bb.png"],
"appletvScreenshotUrls": [],
"artworkUrl60": "https://is2-ssl.mzstatic.com/image/thumb/Purple112/v4/27/fb/42/27fb42b0-925f-1a86-abe8-4722e884d8bd/AppIcon-1x_U007emarketing-0-6-0-0-85-220-0.png/60x60bb.jpg",
"artworkUrl512": "https://is2-ssl.mzstatic.com/image/thumb/Purple112/v4/27/fb/42/27fb42b0-925f-1a86-abe8-4722e884d8bd/AppIcon-1x_U007emarketing-0-6-0-0-85-220-0.png/512x512bb.jpg",
"artworkUrl100": "https://is2-ssl.mzstatic.com/image/thumb/Purple112/v4/27/fb/42/27fb42b0-925f-1a86-abe8-4722e884d8bd/AppIcon-1x_U007emarketing-0-6-0-0-85-220-0.png/100x100bb.jpg",
"artistViewUrl": "https://apps.apple.com/us/developer/amzn-mobile-llc/id297606954?uo=4",
"kind": "software",
"releaseNotes": "Our new design provides easier access to the features you use most while on the go. This includes the homepage, account and order information, your cart and the ability to browse and discover Amazon departments, products, programs, and features.",
"bundleId": "com.amazon.Amazon",
"primaryGenreName": "Shopping",
"primaryGenreId": 6024,
"sellerName": "AMZN Mobile LLC",
"genreIds": ["6024", "6012"],
"isVppDeviceBasedLicensingEnabled": true,
"currentVersionReleaseDate": "2022-08-22T18:53:31Z",
"currency": "USD",
"trackCensoredName": "Amazon Shopping",
"languageCodesISO2A": ["AR", "EN", "FR", "DE", "IT", "JA", "PT", "ZH", "ES"],
"fileSizeBytes": "163086336",
"sellerUrl": "https://www.amazon.com/",
"formattedPrice": "Free",
"contentAdvisoryRating": "4+",
"averageUserRatingForCurrentVersion": 4.852289999999999992041921359486877918243408203125,
"userRatingCountForCurrentVersion": 7564184,
"averageUserRating": 4.852289999999999992041921359486877918243408203125,
"trackViewUrl": "https://apps.apple.com/us/app/amazon-shopping/id297606951?uo=4",
"trackContentRating": "4+",
"minimumOsVersion": "13.0",
"version": "19.16.0",
"wrapperType": "software",
"releaseDate": "2008-12-03T08:00:00Z",
"trackId": 297606951,
"trackName": "Amazon Shopping",
"artistId": 297606954,
"artistName": "AMZN Mobile LLC",
"genres": ["Shopping", "Lifestyle"],
"price": 0.00,
"description": "Amazon Shopping offers app-only benefits to help make shopping on Amazon faster and easier. Browse, view product details, read reviews, and purchase millions of products. Amazon delivers to 100+ countries in as quickly as 3-5 days. Whether you’re buying gifts, reading reviews, tracking orders, scanning products, or just shopping, the Amazon Shopping app offers more benefits than shopping on Amazon via your desktop. \n\nNever miss a delivery\nGet real-time tracking and delivery notifications so you know where your package is and when it arrives. \n\nKnow exactly what you’re purchasing\nFull 360° product view lets you see items from every angle. “View in you room” makes sure it fits by using your phone’s camera and VR so you can see it in your space. \n\nWe’ll notify you when items go on sale\nJust tap the heart icon to save items to Your Lists and we’ll alert you of price drops so you don’t miss a deal. \n\nNever forget your password\nSave time by staying securely signed in. If you prefer to sign out, use facial or fingerprint identification to sign back in. \n\nConnect with us when it works best for you\nLive chat support is open 24 hours, 7 days a week. Once you’ve started a chat, it stays that way for 24 hours so you don’t have to start your support session from the beginning. \n\nWe’ll find that item for you\nNot sure of an item’s brand or where to but it? Just tap the scan icon in the search bar, take a picture of the item or its barcode, and we’ll find it for you. \n\nIn order to provide a rich experience and enable features such as voice shopping, notifications, visual search, customer reviews, and authentication this app may request permission to access contacts, camera, microphone, notification, touch id, photos and Bluetooth.\n\nAmazon Shopping is available in English, Spanish, German, and Simplified Chinese. In addition to International Shopping, you can change your settings in this single app to shop Amazon.ca, Amazon.co.uk, Amazon.de, Amazon.fr, Amazon.com, Amazon.it, Amazon.es, Amazon.cn, Amazon.co.jp or Amazon.in.\n\nFor customers located within the European Union, United Kingdom or Brazil: By using this app, you agree to Amazon’s Conditions of Use applicable for your country. Please also see the applicable Privacy Notice, Cookies Notice and Interest-Based Ads Notice for your country. Links to these terms and notices can be found in the footer of your local Amazon homepage.\n\nFor all other customers: By using this app, you agree to the applicable Amazon Conditions of Use (e.g. www.amazon.com/conditionsofuse) and Privacy Notice (e.g. www.amazon.com/privacy) for your country. Links to these terms and notices can be found in the footer of your local Amazon homepage.\n\nIf your device supports TrueDepth technology, the app will use your device camera to detect your facial movements only while using certain features such as virtually try-on products like sunglasses. All information processed using this technology remains on your device and is not otherwise stored, processed or shared by Amazon.",
"userRatingCount": 7564184
}]
}

Resources