Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Summary

...

This

...

page describes

...

The API is a RESTful interface, accessed through web URLs.  There is no software that an application developer needs to download in order to use the API. The application developer can build their own access routines using just the API documentation provided.  The interface employs a set of predefined query functions (see REST API Directory) that access TCIA databases.

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 Data Usage Policy. If you are interested in using the

...

APIs and have any questions, please contact

...

What's new

The following characteristics apply to all TCIA APIs:

  • You access a resource by sending an HTTP request to the TCIA API server. The server replies with a response that either contains the data you requested, or a status indicator.
  • Every request must contain an API-KEY. The key can be included in the url by adding an extra query parameter api_key or it can be included in the HTTP headers. We strongly recommend that the API-KEY be sent via HTTP headers.
  • You can obtain one API-KEY and use that for your application; you do not need a separate API-KEY for each user of your software..  To obtain an API-Key please send a request to help@cancerimagingarchive.net  or contact TCIA's help desk by phone at: +1 314-747-4254. 
  • You can access the metadata of an API by appending /metadata to the end of a QueryEndpoint, without any QueryParameters (See below). The metadata is in JSON format and conforms to this schema
  • Most APIs can return results as CSV/JSON/XML/HTML. You can specify the return format by including the query parameter format
  • An API request takes the following structure:
    <BaseURL><Resource><QueryEndpoint>?<QueryParameters><Format>

For example, the API shown below is a request to get all studies in the TCGA-GBM collection for patient GBM-0123 as CSV

https://services.cancerimagingarchive.net/services/v2/TCIA/query/getPatientStudy?Collection=TCGA-GBM&PatientID=GBM-0123&format=csv

This can be broken down as follows:

BaseURLhttps://services.cancerimagingarchive.net/services/v2The BaseURL includes the version number of this API (v2 in this example)
Resource/TCIA 
QueryEndpoint/query/getPatientStudy 
Query ParametersCollection=TCGA-GBM
PatientID=GBM-0123
 
Formatformat=csvSome APIs support CSV/HTML/XML/JSON, while others only support a single return type.
Therefore this is required only in instances where multiple return types are supported.

Getting Started with the TCIA API

The following characteristics apply to all TCIA APIs:

    • You access a resource by sending an HTTP request to the TCIA API server. The server replies with a response that either contains the data you requested, or a status indicator.
    • You can access the metadata of an API by appending /metadata to the end of the query. See examples. The metadata is in JSON format and conforms to this schema
    • Most APIs can return results as CSV/JSON/XML/HTML. You can specify the return format by including the query parameter format
    • Every request must contain an API-KEY. The key can be included in the url by adding an extra query parameter api_key or it can be included in the HTTP headers.
      You can obtain one API-KEY and use that for your application; you do not need a separate API-KEY for each user of your software..  To obtain an API-Key please send a request to help@cancerimagingarchive.net  or contact TCIA's help desk by phone at: +1 314-747-4254. 
    • The baseURL for the TCIA API is: 

      Code Block
      languagetext
      titleTCIA BaseURL
      https://services.cancerimagingarchive.net/services/v2

 

API Reference

The full API consists of a base URL followed by the api and the query parameters in that order.

For example, in the following URL:

Code Block
https://services.cancerimagingarchive.net/services/v2/TCIA/query/getSeries?Collection=TCGA-GBM&PatientID=1.2.3&StudyInstanceUID=4.5.6&format=csv

...

NOTE: The order in which the query parameters are provided does not matter

With the exception of the getImage query, all other queries return one of these data formats : CSV,HTML,XML and JSON  file with results. The first line of the file contains the names of the columns in the response. Each subsequent line corresponds to one row from the TCIA database. The getImage query returns a zip of the images.

ResourceResourceURLQueryMetadata QueryDescription
TCIA/TCIA/query

 

  
  /getPatient  
SharedList/SharedList/query/ContentsByName  

 

Return Types

Incorporating the TCIA Programmatic Interface into Your Application

Your software that uses the programmatic interface requires an API-KEY. In this version of the programmatic interface, the API-KEY is used to identify the software application. You can obtain one API-KEY and use that for your application; you do not need a separate API-KEY for each user of your software..  To obtain an API-Key please send a request to help@cancerimagingarchive.net  or contact TCIA's help desk by phone at: +1 314-747-4254.  Please see the coding examples in github: https://github.com/nadirsaghar/TCIA-REST-API-Client for guidance on how to incorporate the API-Key into your code.  Once you have acquired an API-Key you will need to implement a minimal amount of software in your application to invoke the REST API.

REST API URL and Format

The full API consists of a base URL followed by the api and the query parameters in that order.

For example, in the following URL:

Code Block
https://services.cancerimagingarchive.net/services/TCIA/TCIA/query/getSeries?Collection=TCGA-GBM&PatientID=1.2.3&StudyInstanceUID=4.5.6&format=csv

...

the TCIA Help Desk except where otherwise noted.

  • NBIA REST APIsProvided as part of the NBIA software, these APIs provide access to the search and download functions used in the TCIA radiology portal, and allow access to both public and limited access DICOM collections.
    • The NBIA Search REST APIs allow you to perform basic queries and download data for image analysis on public collections.
    • The NBIA Search with Authentication REST APIs allow you to perform basic queries on and download data for image analysis from public and restricted collections.
    • The NBIA Advanced REST APIs also allow access to public and restricted collections, but are geared towards developers seeking to integrate searching and downloading TCIA data into their own web and desktop applications. 
  • DataCite REST APIEach Collection TCIA publishes is issued a Digital Object Identifier (DOI) through DataCite.  This API can be used to programmatically access Collection metadata such as their DOIs, titles and abstracts.  Please note that this API was not developed by TCIA. See https://support.datacite.org/ for any technical questions.  The TCIA Helpdesk may be able to assist if your inquiry is related to the content of the data itself.
  • TCIA REST API: [DEPRECATED 6-22-2022] - The TCIA REST API originally developed using Project Bindaas with Emory University, has been deprecated in favor of the NBIA REST APIs. While the NBIA REST APIs have the same functionality as the Bindaas based TCIA REST APIs, there are some differences that should be noted and tested during conversion from the TCIA REST API to the NBIA REST API. Please see the Migration Guide for details. The existing Bindaas based TCIA REST APIs will remain active but will receive no updates or maintenance going forward.  They also do not contain an up-to-date view of our available datasets, so newer collections will not appear if you use them.

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.  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:

Code Block
pip install tcia_utils


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

Code Block
from tcia_utils import nbia


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

Code Block
from tcia_utils import pathdb


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

Code Block
from tcia_utils import datacite

TCIA Data Usage Policy

Excerpt Include
Data Usage Policies and Restrictions
Data Usage Policies and Restrictions
nopaneltrue

...

NOTE: The order in which the query parameters are provided does not matter

With the exception of the getImage query, all other queries return one of these data formats : CSV,HTML,XML and JSON  file with results. The first line of the file contains the names of the columns in the response. Each subsequent line corresponds to one row from the TCIA database. The getImage query returns a zip of the images.

 

REST API Directory

Query Name

Return Values

Output Format

Query Key 1

Query Key  2

Query Key  3

Query Key  4

Query Key  5

Query Key 6

getCollectionValues

Set of all collection names

CSV/HTML/XML/JSON

NA

NA

NA

NA

 

 

getModalityValues

Set of all modality values (CT, MR, ...) filtered by query keys

CSV/HTML/XML/JSON

Collection (O)

BodyPartExamined (O)

Modality (O)

NA

 

 

getBodyPartValues

Set of all body part names filtered by query keys

CSV/HTML/XML/JSON

Collection (O)

BodyPartExamined (O)

Modality (O)

NA

 

 

getManufacturerValues

Set of all manufacturer names filtered by query keys

CSV/HTML/XML/JSON

Collection (O)

BodyPartExamined (O)

Modality (O)

NA

 

 

getPatientSet of patient objects filtered by query keysCSV/HTML/XML/JSONCollection (O)NANANa  

getPatientStudy

Set of patient/study objects filtered by query keys

CSV/HTML/XML/JSON

Collection (O)

PatientID (O)

StudyInstanceUID (O)

NA

 

 

getSeries

Set of series objects filtered by query keys

CSV/HTML/XML/JSON

Collection (O)

PatientID (O)

StudyInstanceUID (O)

Modality (O)

 

 

getSeriesSizeSet of total byte size and object count filtered by query keyCSV/HTML/XML/JSONSeriesInstanceUID (R)

NA

NA

NA

  

getImage

Set of images in a zip file

ZIP

SeriesInstanceUID (R)

NA

NA

NA

 

 

Return Values

Click here to see more details on the return values.

Testing the API

There are two RESTful servers provided by TCIA. A test system is loaded with a small set of known data to allow you to test your applications. The production system is configured to use the full TCIA database. The query format is the same for both systems. The base URLs are:

Click Here to see the test data that has been loaded on these test servers have the following test data

...