Skip to main content

API for interacting with

Project description

iTOL Python API

PyPI PyPI - Python Version PyPI - License

Build Status Test Coverage Maintainability Updates

Notice: Due to iTOL requiring paid subscriptions for batch uploads, this library will be deprecated after October 1, 2020.

Python API for the Interactive Tree of Life (iTOL)

Created by Albert Wang (git at

With Complements to iTOL (Interactive Tree of Life).

This iTOL API allows local software to upload trees to iTOL using and export uploaded trees using using direct Python calls or through shell. An active internet connection to the iTOL website is required.


pip install itolapi

Uploading Trees To iTOL (

From Command Line

(If you need to do anything more than displaying basic tree structures, you must call the Python iTOL API from within a Python program)

$ /path/to/example.tree

From Python

Running from a python program is much more flexible than running from command line and allows access to all iTOL options.

from itolapi import Itol
from pathlib import Path

itol_uploader = Itol()
itol_uploader.params['treeName'] = 'apple'
status = itol_uploader.upload()
assert status != False
# SUCCESS: 1234567890
# 1234567890
# <ItolExport.ItolExport instance at 0x207c5f0>

An example for using the Python iTOL API can found in examples/

Downloading Trees From iTOL (

From Command Line

(If you would like to set any parameters other than the tree id, location to save the file, file format, and whether to display datasets, you must use ItolExport from a Python program)


Options include:

  • -d: show datasets
  • -v: verbose output
  • -h: help

From Python

Running from a Python program allows you to use all the options that iTOL has available.

from itolapi import ItolExport
from pathlib import Path

itol_exporter = ItolExport()
itol_exporter.add_export_param_value('tree', tree_id)
assert format in ['png', 'svg', 'eps', 'ps', 'pdf', 'nexus', 'newick']
itol_exporter.add_export_param_value('format', format)
itol_exporter.add_export_param_value(param_key, param_value)

Valid param_key and param_value values can be found on the iTOL API page.


Send bugs and comments as issues on the itolapi Github repository.


To run tests:

pip install -e .
pip install -r requirements-test.txt
ruff check .
mypy .
coverage run -m unittest

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

itolapi-4.1.4.tar.gz (6.4 kB view hashes)

Uploaded Source

Built Distribution

itolapi-4.1.4-py3-none-any.whl (7.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page