I’ve recently experimented with Amazon’s E-Commerce Service.

In general, it’s a very complete API giving you access to almost every piece of information including titles, images, prices (and historical prices) that Amazon stores.

There were two things that were a bit problematic, in my opinion, which I think should be addressed.

The first thing is the ItemSearch method. This method allows you to search for items answering a set of criterias.

I need to find a few books according to some keywords I got as input.

After looking in the documentation, I’ve started to use the “Keywords” property. The nice thing about it, is that you simply give a least of words (seperated by spaces) and it will return the results.

The problem with it is that its not a “smart” search. It says it will try treat these keywords as keywords or pharses. I searched on two keywords “saw” and “deck” so I inputed “saw deck” and got nothing.

It took me a while to search in the API and find out that what I really wanted was to use the “Power” property which allows entering a more sophisitcated search phrase such as “subject:(saw or deck)”.

This is really annoying and VERY unintuitive. How can I actually know that a property named “Power” is for the advanced search?!

Another issue that troubled me is related to the structure of the API. It seems there is a specific attribute for a lot of the things Amazon is exposing. Perhaps there is a place for a more generic version of this web service. On that will allow a user to get a more “Generic” object or data representation of all the various items Amazon have that will enable Amazon (and other users) to not change the various item specific structures whenever they add new types of items.

Look at the WSDL and the API samples yourself and tell me what you think.