Python wrapper for the Etsy API based on Tornado's IOLoop
Pull request Compare This branch is 12 commits ahead of mcfunley:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Python wrapper for the Etsy API based on Tornado's IOLoop

Based on mcfunley/etsy-python, by Dan McKinley - -


The simplest way to install the module is using setuptools.

$ easy_install etsy-tornado

To install from source, extract the tarball and use the following commands.

$ python build
$ python install

Simple Example

To use, first register for an Etsy developer key. Below is an example session.

from etsy import EtsyV2, Association, env
from tornado import gen
from tornado.ioloop import IOLoop

def example():
    api = yield gen.Task(EtsyV2, 'YOUR-API-KEY-HERE', env=env.ProductionEnv)
    listings = yield gen.Task(
                   includes=[Association('MainImage', fields=['url_75x75'])])
    print listings[0]

io_loop = IOLoop.instance()

See also this blog post on Code as Craft.


This package comes with a reasonably complete unit test suite. In order to run the tests, use:

$ python test

Some of the tests (those that actually call the Etsy API) require your API key to be locally configured. See the Configuration section, above.

Version History

Version 0.4

  • Rewrote to use non-blocking calls to the Etsy API through Tornado's IOLoop.
  • Removed type-checking in favor of native Python function signature validation.
  • Removed method table cache.
  • Removed API key file storage.

Version 0.3.1

  • Allowing Python Longs to be passed for parameters declared as "integers" by the API (thanks to Marc Abramowitz).

Version 0.3

  • Support for Etsy API v2 thanks to Marc Abramowitz.
  • Removed support for now-dead Etsy API v1.

Version 0.2.1

  • Added a cache for the method table json.
  • Added a logging facility.

Version 0.2 - 05-31-2010

  • Added local configuration (~/.etsy) to eliminate cutting & pasting of api keys.
  • Added client-side type checking for parameters.
  • Added support for positional arguments.
  • Added a test suite.
  • Began differentiation between API versions.
  • Added module to PyPI.

Version 0.1 - 05-24-2010

Initial release