This page describes the representational state transfer application programming interface (REST API) implementations that can be used to access TCIA data and resources. The APIs complement the existing web interfaces and enable developers to build direct access to TCIA data into their applications using only the API documentation provided. The application developer must ensure that they and the users of their applications comply with the TCIA Programmatic Interface REST API Guides. If you are interested in using the APIs and have any questions, please contact the TCIA Help Desk except where otherwise noted.

Access the NBIA v4 REST API Swagger documentation and mapping spreadsheet that compares changes to v4 to previous API versions.

Access our legacy REST API documentation for NBIA (link to 9.4 documentation–at top say These are legacy refer to our Swagger guide)


New NBIA REST API return values were added in recent releases. These changes are detailed here.

TCIA_Utils

The tcia_utils package contains functions to simplify common tasks one might perform when interacting with The Cancer Imaging Archive (TCIA) via Python. If you are using R, please try using this package with reticulate (see example below). Issues with this package should be submitted at https://github.com/kirbyju/tcia_utils/issues. Example notebooks demonstrating tcia_utils functionality can be found at https://github.com/kirbyju/TCIA_Notebooks

Installation can be achieved with this Pip command:

pip install tcia_utils


To import functions related to the Collection Manager (Wordpress) for accessing high-level metadata about our datasets:

from tcia_utils import wordpress


 To import functions related to NBIA for accessing our DICOM radiology data:

from tcia_utils import nbia


To import functions related to pathDB for accessing our digitized pathology data:

from tcia_utils import pathdb


To import functions related to Datacite for querying Collection metadata such as their DOIs, titles, and abstracts:

from tcia_utils import datacite

Using tcia_utils with reticulate in R

If you prefer R to Python, tcia_utils can be used with reticulate. Here's an example:

# install reticulate first if you haven't already
install.packages("reticulate")

# load reticulate
library(reticulate)

# install tcia_utils
py_install("tcia_utils")

# import tcia_utils
nbia <- import("tcia_utils.nbia")  # Equivalent to `from tcia_utils import nbia`

# then you can call its functions directly
results <- tcia$your_function()
print(results)

# e.g.  Equivalent to `nbia.getCollections()`
collections <- nbia$getCollections()  

TCIA Data Usage Policy