Python wrapper for the OnionOO tor status API
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore ignore build artifacts Aug 31, 2014
LICENSE.txt fixed year Apr 5, 2014
ONIONOO-LICENSE.txt Added a for github Mar 30, 2014


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.