How can I search for other countries using Amazon Product Advertising API? - amazon-web-services

I need to be able to search for a product based on barcode, keyword or ASIN and show the results from amazon.co.uk, amazon.com, amazon.de and amazon.fr (UK, USA, Germany and France).
Is that possible? If so, how do I do it?

At the bottom of this page, you will find links to the various Locales where this Product Advertising API works.
However, you need to make a separate subscription to each one of these different APIs. In other words, you need a different AssociateTag, AccessKeyId and a secret key in order to access those different APIs.
You can implement a search engine that uses all of those APIs in sequence. Start by searching for the product in the US API, then UK, then DE, ... You can encapsulate this complexity in a facade, so that your client simply makes a single call to search. You might also encounter some performance issues with this idea, so the use of cache (and common sense) is advisable.

Related

Amazon MWS API: Reliably Detect A Marketplace Offer vs. A Primary Product Listing?

Is there an MWS or AWS API call that I can make using a product ASIN that will tell me whether or not the information being returned from the Amazon servers is coming from the main product listing or from one of the "additional sellers" that are piggybacking off of the main product listing?
What I'm trying to do is programmatically determine if the MerchantId I'm using in the GetMatchingProductForId() call is the same MerchantId that originally created the product listing on Amazon. If they aren't the same it means (in theory, anyway) that I can work with a much smaller subset of the data, and post just the information that's required for the "Condition" and "Condition Note" values in a Marketplace Offering.
And yes, this question is directly related to How to get Seller Name from Amazon in ItemSearch using amazon API, but the API call and parameters in the answer have been deprecated by Amazon. Literally, the request returns <MerchantId>Deprecated</MerchantId> in the response, so I can't compare the Merchant ID value that I'm using to make the call against the <MerchantId> node returned in the response.
After a lot of (very tedious) research and experimentation I've settled on a series of three MWS API calls to determine whether a product is an Amazon Marketplace Listing or an Amazon Marketplace Offering.
GetCompetitivePricingForSKU -- This call returns an XML CompetitivePrice node containing a belongsToRequester attribute set to "true" or "false". The caveat (and the reason why I'm using three different MWS API calls) is this call fails miserably for merchants that have predetermined shipping charges for their products.
GetMyPriceForSKU -- This call will return an error if the merchant doesn't "own" the Marketplace Listing. Purely anecdotal and empirical, though.
GetMyPriceForASIN -- The least reliable call of these three. Sometimes it will return an XML MerchantSKU node... and sometimes it won't.
Since Amazon doesn't provide any definitive answer (or documentation) for this issue, please take all of this advice with a large grain of salt. Run your own use-cases and see which one(s) work for you.
The GetProductForID is intended to give you details about a product. Mainly this is used to get the ASIN by using a UPC code, and other product details such as bullets, image, size, etc.
If you are trying to see if your offer for the same product is competitive you can either use the GetLowestOfferListingForASIN (to get the asin use the GetProductForID (if you have some sort of id like UPC) or ListMatchingProducts to do a text search). That way you will know what type of offer you need to place to try and get the buy box.
If you are looking to get more details to all the unique offers listed for a product (new, used, etc), then you need to use the subscriptions API (its pretty new). This can get pretty complicated.

get info from london2012 like do google

I'm trying develop some app related to the Olympic Games.
Does anybody know how get info from the page www.london2012.com, like google does in results?
Does an API exist? Where can I find an API?
I'd suppose, maybe it could be done with a url like:
www.london2012.com?country=12
(This isn't real, just what I suppose an API might look like)
When I search "london olympics" for example, I see a "gadget" which shows some results, and I believe that these come from www.london2012.com. Does anyone know if that's true?
I'm not sure which programming language you are using, making it hard to provide an appropriate answer. I doubt www.london2012.com has produced an API just for access, so you will need to make queries (like you said in your post). For example, if you are using Python, you can use the urllib module to write your requests.
However, be warned. I just read over the www.london2012.com Terms of Service (http://www.london2012.com/terms-of-use/) , and you may not use this information for non-personal use.
It is possible though probably not allowed (see terms of service of the website).
You need your app to make a HTTP call to the page URL and parse the HTML response. Obviously the way to do it depends heavily on the language/technology you use, which you did not indicate in your question.
The Olympics use a system called ODF - Olympic Data Feed to distribute real time statistics from games to authorized parties, usually in XML format. These authorized parties consist of accredited world news organizations (so, yeah, google counts), Rights holding broadcasters (broadcasters that pay to have the rights to distrute Olympics content - NBC in US, BBC in UK, etc, etc) and international sports federations. They have dictionaries listed here - but you can't access it unless you are one of the authorized parties above. So perhaps going the python or some other web scraping route is best.

Looking for United States Address Validation Web Service

I'm looking for a United States Address Validation web service, as the title says. Also:
I don't need maps
I don't need Geo coding
I do need:
Validation that an address is real
Address parsing
Google's Maps / Bing Maps seemed good, but won't work for me because of these:
Prohibits use if not plotting points on a map image
Low request limits (100,000 / day) for premium account. I need more like 1,000,000 / day
Does Geocoding, which I don't need, which is resource intensive, which means it's slow
Any suggestions?
Maybe USPS?
https://www.usps.com/business/address-management-products.htm
use FedEx's API. They have an API to validate addresses.
Also:
https://webgis.usc.edu/Services/AddressValidation/Default.aspx
You can try Pitney Bowes “IdentifyAddress” Api available at - https://identify.pitneybowes.com/
The service analyses and compares the input addresses against the known address databases around the world to output a standardized detail. It corrects addresses, adds missing postal information and formats it using the format preferred by the applicable postal authority. I also uses additional address databases so it can provide enhanced detail, including address quality, type of address, transliteration (such as from Chinese Kanji to Latin characters) and whether an address is validated to the premise/house number, street, or city level of reference information.
You will find a lot of samples and sdk available on the site and i found it extremely easy to integrate.
You could, in theory, run desktop software and plug into any kind of API it provides, but then you become responsible for things like uptime, data updates, and associated overhead. You may also run into issues with the software threading model--is it multi-threaded or single-threaded software? You don't want to find that out in production.
There are a handful of web services out there that can verify US-based addresses, including the USPS official web service. The USPS one is very limited in the fields that it returns. For example, if you're looking for the "delivery point" which is used to make a full barcode, the USPS API doesn't return that information. I believe the USPS web service also limits the number of queries that you can perform, although I don't remember the exact limit.
A few things that you'll want to look for in a web service include the price (obviously) as well as geo-distribution of their servers. If a company has all of their servers in one location and that data center goes offline (which can and does happen), you're left out in the cold. If they have multiple physical locations, it can help to prevent unnecessary outages. Also, you'll want to make sure that the service call returns all necessary fields as per your requirements--like delivery point code, barcode, and DPV code (which tells you how deliverable an address is).
Lastly, you'll want to determine how you feel about interacting with the company. When you call them on the phone, are they responsive and concerned about your needs? Or are you talking to some front-line person that can't answer questions and is only able to gather information about your company size and revenue so they can evaluate how big of a fish you are and determine which salesman gets to call you back. Can you talk to the engineers that wrote the web service on the phone or via email?
There are a few choices out there and you'll have to choose the one that best fits your requirements and unique situation. Do a Google search to find a list of companies. In the interest of full disclosure, I'm the co-founder of SmartyStreets. We have an address verification web service API called LiveAddress. You're more than welcome to contact me directly with questions on my personal Twitter account or the company Twitter account.

Finding latitude and longitude of many places once

I have a long list of towns and cities, and I'd like to add latitude and longitude information to each of them.
Does anyone know the easiest way to generate this information once?
See also Geocode multiple addresses
The first part of the third video shows how to get latitude and Longitude using Google Refine and geocoding. No need to write a new script. Ideal for doing this kind of change once.
http://code.google.com/p/google-refine/
Or use www.geonames.org - there's language APIs for that. Or Open Street Map's Nominatim: http://wiki.openstreetmap.org/wiki/Nominatim - google have slightly more restrictive terms of service.
You can use the Google Geocoding API. Check the API at this URL: http://code.google.com/apis/maps/documentation/geocoding/
What follows next is writing some code. I am doing something similar in C# and it is quite easy here.
Most geocoding services can handle queries with only administrative names which is what you're after, e.g., municipality and region. So I'd choose one you like that also handles batch or bulk requests, e.g., the Bing Spatial Data API (here's an article on batch geocoding with it.)
An alternative approach that might be useful if you're on a budget and have a lot of these to do would be to download the Geonames database and write a bit of code to import it into your database or index it; then query it however and how often you like, e.g., if you put your places in another table you could SELECT [...] FROM my_places LEFT JOIN geonames [...]. I used to import Geonames DB into a vanilla PostgreSQL nightly and probably still have the code in a git repo somewhere if that's a route you want to try (comment and I'll find it and attach.)
For a service that uses google, which I find most accurate.
Look at http://www.torchproducts.com/tools/geocode

Is there a service or website to get content pertinent to a specified City/State or Zip

I have been looking around for a website that can automatically provide me we content relative to either a city/state combo, or a zip code. Essentially I want to have a bit of content pertinent to where my user actually is. Does anybody know of any online services that provide something like this? I also wouldn't be opposed to spidering content from a site that provides data like this (with their consent obv.)
Thanks!
Addition
I was asked to clarify what I meant by content. Basically all I need is local news for a specified area.
Take a look at http://compass.webservius.com
It's a listing of nearly all businesses in the USA in REST API form, searchable by address / zip code / latitude / longitude / etc. You can also search by industry code (e.g. Restaurants), thus solving the "nearby places to eat" part of your question.
There are actually several providers in this space.
CitySearch which has been renamed to CityGridMedia has a Publisher API where you can get their business listings, reviews, and other services: http://citygridmedia.com/publishers/
fwix's local API also provides basic geographic data along with local news: http://wireapi.pbworks.com/?geo_short=api
GeoAPI was recently purchased by twitter, and it provides a reverse geocoder, business listing information, and a bunch of other services: http://www.geoapi.com/
SimpleGEO also has a very compelling service offering with their mobile SDKs along with their API. You can search by radius, lat/lon, or by address: http://simplegeo.com/
Outside.in also has some great hyperlocal news information which is bundled up into a easy to use API: http://developers.outside.in/
Similar to CityGridMedia, MerchantCircle has an API that provides a listing of states, cities, zips, and categories. Along with business listing information, coupons, and reviews: http://api.merchantcircle.com/api/v1/docs
That's just the tip of the iceberg. There are other API services that specialize in more niche categories like Real Estate, Events, Hotels, etc.