0.2.8 (2014-03-30)

  • Fixed #31: Using generic error factory _e(), the original parsed XML can be accessed in case of failure.
  • Added InvalidAccount and InvalidSignature exceptions (thanks to Jannis Gebauer)

0.2.7 (2013-10-08)

Small bugfix release!

  • Examples fixed. Processors can now be processor instances again.

0.2.6 (2013-09-14) “Humperdinck”

  • Supports API version 2011-08-01
  • Config files added
  • Almost total rewrite of processors backend. Will work now with elementtree from stdlib, too.
  • #26: Added endpoints for CN, ES and IT.
  • Added RetryAPI to contrib package thanks to Jerry Ji.
  • Documentation was overhauled.
  • As of 2012-10-01 there are no more XSLT endpoints!

0.2.5 (2011-09-19) “Buttercup”

  • Support for XSLT requests.
  • Support for Associate tags thanks to Kilian Valkhof.
  • New API versions 2010-12-01, 2010-11-01, 2010-10-01, 2010-09-01 and 2010-08-06 added.
  • Fixed #16: Cannot install module under Python 2.4 without pycrypto being installed first.
  • tox (and hudson) are now used for testing all supported Python versions (which includes Python 2.7 now, too).
  • Test server is replaced with pytest-localserver.
  • Fixed #18: Throttling no longer block CPU (Thanks to Benoit C).
  • Added response-caching API (in amazonproduct.contrib.caching) to ease development (Thanks to Dmitry Chaplinsky for the idea).
  • API explicitly warns about deprecated operations.


The following operations are deprecated since 15 July 2010 and are now answered with a ‘410 Gone’ (and a DeprecatedOperation exception):

  • CustomerContentLookup
  • CustomerContentSearch
  • Help
  • ListLookup
  • ListSearch
  • TagLookup
  • TransactionLookup
  • VehiclePartLookup
  • VehiclePartSearch
  • VehicleSearch
  • Added new exceptions InvalidClientTokenId and MissingClientTokenId.
  • REQUESTS_PER_SECONDS can now be floats as well (e.g. 2500/3600.0).
  • Added test options options --api-version, --locale and --refetch. (2010-06-23)

Bugfix release! High time I get some continuous integration set up!

  • Fixed #13: The module did not run under Python 2.4. Ooops!

0.2.4 (2010-06-13)

  • Locale parameter is now required at initialisation.

    # before you could write
    # now you have to specify your locale
    api = API(AWS_KEY, SECRET_KEY, 'de')
  • Custom test server (tests.server.TestServer) added. It runs on localhost and mimicks the Amazon webservice by replaying local XML files.

  • Testing now supports multiple locales. Please not that you have to run python test to run the unittests.

  • ResultPaginator now also works with XPath expressions for attributes (Bug reported Giacomo Lacava).

  • Custom lookup for XML elements (during parsing) ensures that <ItemId/> and <ASIN> are now always objectify.StringElement (Bug reported by Brian Browning).

  • Fixed #11: Module can now be installed library without lxml being installed first.

  • Regular expressions for parsing error messages can now deal with the Japanese version.


    The support for the Japanese locale (jp) is still very experimental! A few error messages have still to be translated and the functionality has to be confirmed. If you know Japanese, get in touch!

0.2.3 (2010-03-20)

  • Tests run now for all API versions. Test cases can now be told which versions to use (class attribute api_versions set to i.e. ['2009-10-01']).

  • A custom AWS response processor can now be defined. For instance, here is one using xml.minidom instead of lxml:

    def minidom_response_parser(fp):
        root = parse(fp)
        # parse errors
        for error in root.getElementsByTagName('Error'):
            code = error.getElementsByTagName('Code')[0].firstChild.nodeValue
            msg = error.getElementsByTagName('Message')[0].firstChild.nodeValue
                raise AWSError(code, msg)
            return root
        api = API(AWS_KEY, SECRET_KEY, processor=minidom_response_parser)
        root = api.item_lookup('0718155157')
        print root.toprettyxml()
        # ...
  • Fixed #3: Support for API Version 2009-11-01.

  • Fixed #4: When using a bad parameter combination, an InvalidParameterCombination exception is raised.

  • Fixed #5: InvalidSearchIndex is raised when unknown SearchIndex is specified.

  • Fixed #7: Specifying API versions works now for more than just one test per test case.

  • The command has been empowered a bit with the following additional options: test, build_sphinx, upload_sphinx.

  • ResultPaginator attributes _get_current_page_numer, _get_total_results and _get_total_page_numer are now private.

0.2.2 (2010-01-30)

  • browse_node_lookup operation added.
  • help operation added.
  • list_lookup and list_search operations added.
  • Default timeout for API calls is set to 5 sec.
  • Test cases for correct parsing of XML responses added. Local XML files are used for testing (if available) stored in separate directories according to API version. These can be overwritten when config value OVERWRITE_TESTS is set to True.
  • InvalidItemId exception is replaced by more general InvalidParameterValue exception.

0.2.1 (2009-11-20)

  • Support for Python 2.4 added.
  • Fixed #2: ResultPaginator now returns None if the XPath expression doesn’t find the node it’s looking for.

0.2.0 (2009-11-07) “Westley”

This is the first public release. We’re now available via the Cheeseshop!

  • The module is no longer a package. Please use import amazonproduct (instead of import amazon.product) now.
  • SimilarityLookup is now supported.
  • Updated to support version 2009-10-01.
  • Documentation added (made with
  • New artwork.

0.1 (2009-09-30) “Fezzik”

Initial release.