This page describes the application programming interfaces (APIs) that can be used by developers 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 Data Usage Policy. If you are interested in using the APIs and have any questions, please contact the TCIA Help Desk except where otherwise noted.
An agent skill is a portable bundle of instructions, references, and helper scripts that an AI agent can load when a task matches a domain. The TCIA SKILL.md tells LLMs how to perform a variety of tasks related to our datasets and related publications about them. Simply install this skill in tools that support them (e.g. Codex, Claude Code, Cursor) or ask your favorite browser-based LLM tool to reference https://github.com/kirbyju/tcia-query-skill/blob/main/SKILL.md and ask your questions.
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 the Imaging Data Commons for accessing our public DICOM radiology data: (Note: we are transitioning to NCI's Imaging Data Commons and will be deprecating NBIA – please switch to the idc.py module or use the IDC-Index Python Package for public DICOM data)
from tcia_utils import idc |
To import functions related to pathDB for accessing our non-DICOM 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 |
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() |