Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

The Open Tree Of Life API

Build Status

This repository holds the code that runs The Open Tree Of Life API, which talks to the backend datastore phylesystem.


This repo uses peyotl to interact with a copy of the phylesystem data on a server. The code here provides a web services API to that data store. The best description of the phylesystem is in the published paper in Bioinformatics.

See docs/ for examples of how to use the API with curl.


There are a dependencies installable from pypi using pip, and the open tree of life client-side python library is also used on the server side for handling some aspects of NexSON.

$ pip install -r requirements.txt
$ cd ..

The first time you run, you'll need to:

$ git clone
$ cd peyotl
$ pip install -r requirements.txt
$ python develop

Subsequently changing to the peyotl directory and running

$ git pull origin master

should be sufficient to get the latest changes.


$ cp private/config.exampl private/config

then open private/config in a text editor and tweak it.

  • repo_parent should be a file path which holds 1 or more phyleystem-# repositories with the data.

  • git_ssh and pkey

Logging configuration

The behavior of the log for functions run from with a request is determined by the config file. Specifically, the

level = debug
filepath = /tmp/my-api.log
formatter = rich

section of that file.

If you are developer of the phylesystem-api, and you want to see logging for functions that are not called in the context of a request, you can use the environmental variables:

  • OT_API_LOG_FILE_PATH filepath of log file (StreamHandler if omitted)
  • OT_API_LOGGING_LEVEL (NotSet, debug, info, warning, error, or critical)
  • OT_API_LOGGING_FORMAT "rich", "simple" or "None" (None is default)


This git repository is meant to be a "web2py application", so you need to create a symlink in $WEB2PY_ROOT/applications to the API repo directory:

cd $WEB2PY_ROOT/application

this will make the app available under /api

ln -sf /dir/with/ api

Using the API from the command-line

See docs/ for examples of how to use the API with curl.

Using the API from Python

See peyotl has wrappers for accessing phylesystem web services. See the peyotl wiki for details.


See the CREDITS file


API access to Open Tree of Life treestore




No releases published


You can’t perform that action at this time.