A SEER*API Java client
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Build Status Maven Central

A SEER*API client for Java applications. This library supports most of the APIs and makes them easy to incorporate into Java applications.


The Surveillance, Epidemiology and End Results (SEER) Program is a premier source for cancer statistics in the United States. The SEER Program collects information on incidence, prevalence and survival from specific geographic areas representing 28 percent of the US population and reports on all these data plus cancer mortality data for the entire country.

From the SEER*API website:

The SEER*API is a RESTful Web service that supports various SEER Program data sets and algorithms. This service is available to developers who wish to incorporate SEER resources to their own systems. These resources include databases and tools developed to enhance registry operations and quality improvement. The SEER*API is designed for integration into registry computer stems and is not designed to be accessed by end-users.


The library requires Java 8 or greater.

Download the latest JAR or grab via Maven:


or via Gradle:

compile 'com.imsweb:seerapi-client-java:3.13'


SEER*API usage is free, but requires an API key. To get started,

  1. Create a free account from the Account Creation page
  2. Locate your API key on your Account page

Your API key will need to be supplied to make calls. It can be supplied on each call, or it can be stored in a configuration file in your home directory called .seerapi. The file should look like this


To make calls to the API, first get an instance of SeerApi. If your local configuration is set up, then this is how you get a connection.

SeerApi api = new SeerApi.Builder().connect();

or the key can be supplied when constructing the instance.

SeerApi api = new SeerApi.Builder().apiKey("your_api_key").connect();

Each set of APIs are broken into their own service. Here are the services:

Glossary (rest/glossary)

A glossary of cancer-related terms.

api.glossary().getById("latest", "4ffd7623a3dd635c99d38e2d").execute().body()

Disease (rest/disease)

A searchable database of hematopoietic and lymphoid neoplasms and solid tumor diseases.

api.disease().samePrimaries("9870/3", "9872/3", "2010").execute().body()

Multiple Primaries (rest/mph)

The SEER implementation of the Multiple Primary and Histology Coding Rules. The implementation combines Hematopoietic rules, SEER Multiple Primary and Histology Coding Rules. The rules used in the calculation are based on the diagnosis year and histology.

MphInput input1 = new MphInput();

MphInput input2 = new MphInput();

MphResult result = api.mph(new MphInputPair(input1, input2)).execute().body();

NAACCR (rest/naaccr)

The NAACCR API provides programmatic access to documentation for the NAACCR Standards for Cancer Registries Volume II. It includes field level documentation as well as information about file layout.

api.naaccr().field("14", 12).execute().body()

NDC (rest/ndc)

A searchable mirror of the National Drug Code Directory from the FDA website. This database is updated weekly.


RX (rest/rx)

A searchable database for coding oncology drug and regimen treatment categories in cancer registries.

api.rx().getById("latest", "53c44b01102c1290262dc8b2").execute().body()

SEER Incidence Site Recode (rest/recode)

The values of SEER site recode variables are based on the primary site and histology data fields submitted to SEER by the registries. The site recode variables define the major cancer site/histology groups that are commonly used in the reporting of cancer incidence data. For example, there is a section of the SEER Cancer Statistics Review for each major site corresponding to groupings in a site recode variable. The site recode variables are added to SEER databases as a convenience for researchers.

api.siteRecode().siteGroup("C619", "8000").execute().body()

Site-specific Surgery Codes (rest/surgery)

The site-specific surgery tables available on the SEER website.



Cancer staging algorithms. Currently supports Collaborative Stage which is a unified data collection system designed to provide a common data set to meet the needs of all three staging systems (TNM, SEER EOD, and SEER SS). It provides a comprehensive system to improve data quality by standardizing rules for timing, clinical and pathologic assessments, and compatibility across all of the systems for all cancer sites.

api.staging().schemaById("cs", "02.05.50", "brain").execute().body()

For a complete description of all available API inputs and outputs, see the SEER*API Documentation page.