Python wrapper for the OnionOO tor status API
Latest commit 3993f9b Nov 1, 2016 @duk3luk3 bump 0.3.3


A comprehensive pure-Python wrapper for the OnionOO Tor status API, with memcached support to cache queried data.

Installing OnionPy

You can install onion-py manually by doing the following (requires setuptools!)::

git clone
cd onion-py
#run tests if desired
PYTHONPATH=. python bin/ test
sudo python install

For the optional memcached support, install pymemcache and six::

sudo pip install six
sudo pip install

The package is also on Pypi.

Beware: OnionPy has been developed and tested exclusively with Python 3. Please let Python 2 rest in peace forevermore. OnionPy is compatible with Python 2.7 upwards.


>>> from onion_py.manager import Manager
>>> from onion_py.caching import OnionSimpleCache
>>> manager = Manager(OnionSimpleCache())
>>> s = manager.query('summary', limit=4)
>>> s.relays[0].fingerprint
>>> s.relays[0].nickname

Accepted Queries

Summary, details, bandwidth, weights, clients, uptime

>>> s = manager.query('summary', limit=4)
>>> s = manager.query('details', limit=4)
>>> s = manager.query('bandwidth', limit=4)
>>> s = manager.query('weights', limit=4)
>>> s = manager.query('clients', limit=4)
>>> s = manager.query('uptime', limit=4)


BSD 3-clause. See LICENSE.
Portions of this work obviously belong to to OnionOO and therefore the Tor Project. See ONIONOO-LICENSE.