How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

NCI SEER API

RESTful API for the Surveillance, Epidemiology, and End Results (SEER) Program. Supports SEER datasets plus staging APIs for cancer staging (TNM and Collaborative Stage algorithms), enabling developers to embed authoritative incidence, survival, and staging logic into their own systems.

NCI SEER API is one of 15 APIs that Cancer.gov publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Surveillance, Epidemiology, Staging, and SEER. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, rate-limit docs, and an API reference.

This API exposes 106 operations across 93 paths, organized into 10 resource areas, and defines 67 schemas. It is described by OpenAPI 3.1.0, at version 1.0.

Requests are made against a single base URL, https://api.seer.cancer.gov.

106 operations 93 paths 67 schemas 11 DELETE53 GET30 POST12 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.0
Base URL
https://api.seer.cancer.gov
Authentication
API Key
Terms of Service
Resource Areas
10

Authentication & Security 1

NCI SEER API declares 1 security scheme for authenticating requests. An API key is passed in the header as X-SEERAPI-Key (apiKeyScheme). By default, every request must be authenticated.

Paths & Operations 106

Across 93 paths, the API surfaces 106 operations — 11 DELETE, 53 GET, 30 POST, 12 PUT. They span 10 resource areas: staging, rx, ndc, hcpcs, glossary, disease, mph, surgery, recode, naaccr. Each is listed below with its method, path, parameters, and response codes.

staging 35

Staging Algorithms

GET
/rest/staging/{algorithm}/{version}
Return information about a specific algorithm version
getVersion 2 params → 200404
PUT
/rest/staging/{algorithm}/{version}
Update an algorithm version
updateVersion 2 params body → 200400404
POST
/rest/staging/{algorithm}/{version}
Create a new version for an algorithm
createVersion 2 params body → 201400404
DELETE
/rest/staging/{algorithm}/{version}
Delete an algorithm version
deleteVersion 2 params → 204404
GET
/rest/staging/{algorithm}/{version}/table/{id}
Return a single table
getTable 3 params → 200404
PUT
/rest/staging/{algorithm}/{version}/table/{id}
Update a table
updateTable 4 params body → 200400404
DELETE
/rest/staging/{algorithm}/{version}/table/{id}
Delete a table
deleteTable 4 params → 204400404
GET
/rest/staging/{algorithm}/{version}/schema/{id}
Return a single schema
getSchema 3 params → 200404
PUT
/rest/staging/{algorithm}/{version}/schema/{id}
Update a schema
updateSchema 4 params body → 200400404
DELETE
/rest/staging/{algorithm}/{version}/schema/{id}
Delete a schema
deleteSchema 4 params → 204400404
GET
/rest/staging/{algorithm}
Return information about a specific algorithm
getAlgorithm 1 param → 200404
PUT
/rest/staging/{algorithm}
Update an algorithm
updateAlgorithm 1 param body → 200400404
POST
/rest/staging/{algorithm}
Create a new algorithm
createAlgorithm 1 param body → 201400
DELETE
/rest/staging/{algorithm}
Delete an algorithm
deleteAlgorithm 1 param → 204400404
POST
/rest/staging/{algorithm}/{version}/{id}/defaults
Get all schema defaults
getSchemaInputDefaults 3 params body → 200400404
POST
/rest/staging/{algorithm}/{version}/table
Create a new table
createTable 3 params body → 201400
POST
/rest/staging/{algorithm}/{version}/table/{id}/match
Checks whether a set of key/value pairs match any row in a table
matchTable 3 params body → 200404
POST
/rest/staging/{algorithm}/{version}/stage
Stage a case
stageSchema 2 params body → 200400
POST
/rest/staging/{algorithm}/{version}/schemas/lookup
Perform a schema lookup
listSchemas 2 params body → 200404
POST
/rest/staging/{algorithm}/{version}/schema
Create a new schema
createSchema 3 params body → 201400
POST
/rest/staging/{algorithm}/{version}/invalidate_cache
Invalidate algorithm version cache
invalidateCache 2 params → 204404
POST
/rest/staging/{algorithm}/{version}/fill_cache
Fill algorithm version cache
fillCache 2 params → 204404
POST
/rest/staging/{algorithm}/{version}/copy
Copies all schemas and tables to another algorithm/version
copyVersion 2 params body → 204400404
GET
/rest/staging/{algorithm}/{version}/tables
Return a list of matching tables
listTables 4 params → 200404
GET
/rest/staging/{algorithm}/{version}/tables/history
Return a list of table history entries
listTablesHistory 5 params → 200400404
GET
/rest/staging/{algorithm}/{version}/table/{id}/schemas
Return a list of the schemas which use a specific table
getInvolvedSchema 3 params → 200404
GET
/rest/staging/{algorithm}/{version}/table/{id}/history
Return the history of single schema
getTableHistory 6 params → 200400404
GET
/rest/staging/{algorithm}/{version}/table/{id}/glossary
Return a matching glossary keywords from the table
getTableGlossary 5 params → 200404
GET
/rest/staging/{algorithm}/{version}/schemas
Return a list of schemas
listSchemas_1 3 params → 200404
GET
/rest/staging/{algorithm}/{version}/schemas/history
Return a list of schema history entries
listSchemasHistory 5 params → 200400404
GET
/rest/staging/{algorithm}/{version}/schema/{id}/tables
Return a list of the tables involved in a specific schema
getInvolvedTables 3 params → 200404
GET
/rest/staging/{algorithm}/{version}/schema/{id}/history
Return the history of single schema
getSchemaHistory 6 params → 200400404
GET
/rest/staging/{algorithm}/{version}/schema/{id}/glossary
Return a matching glossary keywords from the schema
getSchemaGlossary 5 params → 200404
GET
/rest/staging/{algorithm}/versions
Return information about all the supported versions of an algorithm
getVersions 1 param → 200404
GET
/rest/staging/algorithms
Return a list of all staging algorithms
getAlgorithms → 200
rx 16

Antineoplastic drugs database

PUT
/rest/rx/{version}/update
Update an Rx entry
updateRx 1 param body → 201400404
PUT
/rest/rx/{version}/reset/{id}
Reset an Rx entry
resetRx 2 params → 201400404204
POST
/rest/rx/{version}/unhide/{id}
Unhide an Rx item
unhideRx 3 params → 201400404204
POST
/rest/rx/{version}/publish
Publish the specified Rx entities into the associated production database
publishRx 1 param body → 201400404204
POST
/rest/rx/{version}/hide/{id}
Hide an Rx item
hideRx 3 params → 201400404204
POST
/rest/rx/{version}/create
Save a new Rx entry
createRx 1 param body → 201400404
POST
/rest/rx/versions/create
Creates a new BETA version database
createBetaVersion 1 param → 201
GET
/rest/rx/{version}
Return a list of Rx entries
searchRx 19 params → 200400
GET
/rest/rx/{version}/status_summary
Return a list of Rx entries
rxStatus 1 param → 200404
GET
/rest/rx/{version}/keywords
Return a list of keywords contained in the Rx entries
getKeywords 3 params → 200
GET
/rest/rx/{version}/id/{id}
Return an Rx entry
getRxById 3 params → 200404
GET
/rest/rx/{version}/id/{id}/regimens
Return a list of regimens containing the passed drug
getRegimensForDrug 2 params → 200404
GET
/rest/rx/{version}/changelog
Return a list of Rx changelog entries
getChangelog 7 params → 200400
GET
/rest/rx/versions
Return a list of all versions of the Rx database
getRxVersions → 200
DELETE
/rest/rx/{version}/delete/{id}
Delete an Rx entry
deleteRx 3 params → 201400404204
DELETE
/rest/rx/versions/delete
Deletes an existing BETA version and all associated glossary entries
deleteBetaVersion 1 param → 204
ndc 3

A searchable mirror of National Drug Codes (NDC)

GET
/rest/ndc/code/{code}
Return a single drug product
getByNdcId 1 param → 200400404
PUT
/rest/ndc/code/{code}
Update a drug with SEER-specific information
updateNdc 1 param body → 200400404
GET
/rest/ndc
Return matching drugs
getNdcProducts 10 params → 200400
hcpcs 5

Healthcare Common Procedure Coding Systems (HCPCS) nomenclatures

GET
/rest/hcpcs/code/{code}
Return a single procedure
getById 1 param → 200404
PUT
/rest/hcpcs/code/{code}
Update a procedure
updateProcedure 1 param body → 200404
DELETE
/rest/hcpcs/code/{code}
Delete a procedure
deleteProcedure 1 param → 200409204
POST
/rest/hcpcs/code
Save a new procedure
saveProcedure body → 200409201
GET
/rest/hcpcs
Return matching procedures
getProcedures 7 params → 200400
glossary 16

A glossary of cancer-related terms

PUT
/rest/glossary/{version}/update
Update a glossary entry
updateGlossaryItem 1 param body → 201400404
PUT
/rest/glossary/{version}/reset/{id}
Reset a glossary entry
resetGlossaryItem 2 params → 201400404204
POST
/rest/glossary/{version}/unhide/{id}
Unhide a glossary item
unhideGlossaryItem 3 params → 201400404204
POST
/rest/glossary/{version}/publish
Publish the specified glossary items into the associated production database
publishGlossaryItems 1 param body → 201400404204
POST
/rest/glossary/{version}/hide/{id}
Hide a glossary item
hideGlossaryItem 3 params → 201400404204
POST
/rest/glossary/{version}/create
Save a new glossary entry
createGlossaryItem 1 param body → 201400404
POST
/rest/glossary/versions/create
Creates a new BETA version database
createBetaVersion_1 1 param → 201
POST
/rest/glossary/match
Match supplied text against the glossary
match 2 params body → 201415
GET
/rest/glossary/{version}
Return a list of glossary entries
searchGlossaryItems 17 params → 200400
GET
/rest/glossary/{version}/status_summary
Return a list of glossary entries
glossaryItemStatus 1 param → 200404
GET
/rest/glossary/{version}/keywords
Return a list of keywords contained in the glossary entries
getKeywords_1 3 params → 200
GET
/rest/glossary/{version}/id/{id}
Return a glossary entry
getGlossaryItem 3 params → 200404
GET
/rest/glossary/{version}/changelog
Return a list of glossary changelog entries
getChangelog_1 7 params → 200400
GET
/rest/glossary/versions
Return a list of all versions of the glossary database
getGlossaryVersions → 200
DELETE
/rest/glossary/{version}/delete/{id}
Delete a glossary entry
deleteGlossaryItem 3 params → 201400404204
DELETE
/rest/glossary/versions/delete
Deletes an existing BETA version and all associated glossary entries
deleteBetaVersion_1 1 param → 204
disease 21

Hematopoietic, lymphoid neoplasms and solid tumor diseases

PUT
/rest/disease/{version}/update
Update a disease entry
updateDisease 1 param body → 201400404
PUT
/rest/disease/{version}/reset/{id}
Reset a disease entry
resetDisease 2 params → 201400404204
POST
/rest/disease/{version}/unhide/{id}
Unhide a disease item
unhideDisease 3 params → 201400404204
POST
/rest/disease/{version}/publish
Publish the specified disease entities into the associated production database
publishDisease 1 param body → 201400404204
POST
/rest/disease/{version}/hide/{id}
Hide a disease item
hideDisease 3 params → 201400404204
POST
/rest/disease/{version}/create
Save a new disease entry
createDisease 1 param body → 201400404
POST
/rest/disease/versions/create
Creates a new BETA version database
createBetaVersion_2 1 param → 201
POST
/rest/disease/reportability
Returns the reportable year range of the supplied disease
getReportability body → 200400
GET
/rest/disease/{version}
Return a list of Disease entries
searchDiseases 18 params → 200400
GET
/rest/disease/{version}/status_summary
Return a list of disease entries
diseaseStatus 1 param → 200404
GET
/rest/disease/{version}/same_primary
Indicate whether 2 morphologies (and diagnosis years) represent the same primary
isSame 5 params → 200404
GET
/rest/disease/{version}/keywords
Return a list of keywords contained in the disease entries
getKeywords_2 3 params → 200
GET
/rest/disease/{version}/id/{id}
Return a single disease
getDiseaseById 3 params → 200404
GET
/rest/disease/{version}/id/{id}/{year}
Return a single disease with only year-based information for the passed year included
getDiseaseByIdWithYear 3 params → 200404
GET
/rest/disease/{version}/changelog
Return a list of Disease changelog entries
getChangelog_2 7 params → 200400
GET
/rest/disease/versions
Return a list of all versions of the disease database
getDiseaseVersions → 200
GET
/rest/disease/site_categories
Return the complete list of site categories for use in the search API
getSiteCategories → 200
GET
/rest/disease/primary_site
Return the list of ICDO2/ICDO3 primary site codes and labels
getPrimarySites → 200
GET
/rest/disease/primary_site/{code}
Return the list of ICDO2/ICDO3 primary sites matching a code
getPrimarySites_1 1 param → 200404
DELETE
/rest/disease/{version}/delete/{id}
Delete a disease entry
deleteDisease 3 params → 201400404204
DELETE
/rest/disease/versions/delete
Deletes an existing BETA version and all associated glossary entries
deleteBetaVersion_2 1 param → 204
mph 3

Multiple Primary and Histology Coding Rules

POST
/rest/mph
Compares two tumors and determines if they are multiple primaries
getMph body → 200400
GET
/rest/mph/groups
Returns a list of all MPH groups
getMphGroups → 200
GET
/rest/mph/group/{id}
Returns the group information for a given group ID
getMphGroupInfo 1 param → 200404
surgery 2

SEER Site-Specific Surgery Codes

GET
/rest/surgery/{year}/tables
Return all the available table titles for the specified year
getTableTitles 1 param → 200400
GET
/rest/surgery/{year}/table
Return a single surgery table
getTable_1 4 params → 200400
recode 2

Recode algorithms

GET
/rest/recode/sitegroup/{algorithm}
Return the site group for the site/histology/behavior combination based on a specified algorithm
getSiteGroup 4 params → 200400
GET
/rest/recode/sitegroup/algorithms
Return the supported site group algorithms and versions
getSiteRecodeAlgorithms → 200
naaccr 3

NAACCR Documentation

GET
/rest/naaccr/{version}
Return all NAACCR item identifiers and names
getAllFieldNames 4 params → 200400
GET
/rest/naaccr/{version}/{id}
Return a single NAACCR item by XML ID or item number
getNaaccrFieldById 2 params → 200404
GET
/rest/naaccr/versions
Return a list of information about all supported NAACCR versions
getVersions_1 → 200

Schemas 67

The contract defines 67 schemas that model the data the API accepts and returns. The most detailed are Disease (55 properties), NaaccrItemDto (29 properties), Rx (26 properties), Glossary (21 properties). Each schema is shown below with its type and property counts.

StagingAlgorithmVersion
object
Target algorithm/version
6 properties
StagingColumnDefinition
object
4 properties
StagingTable
object
Table
16 properties
StagingKeyMapping
object
2 properties
StagingKeyValue
object
2 properties
StagingMapping
object
6 properties
StagingMetadata
object
3 properties
StagingSchema
object
Schema
18 properties
StagingSchemaInput
object
12 properties
StagingSchemaOutput
object
8 properties
StagingTablePath
object
5 properties
StagingAlgorithm
object
Algorithm information
3 properties
ApiKeywordMatch
object
6 properties
Rx
object
Rx entity
26 properties
NdcPackage
object
4 properties
NdcProduct
object
21 properties
NdcSeerInfo
object
8 properties
Substance
object
3 properties
HcpcsProcedure
object
16 properties
Glossary
object
Glossary entity
21 properties
GlossaryResource
object
8 properties
DateRangeString
object
3 properties
Disease
object
Disease entity
55 properties
DiseaseSource
object
3 properties
SiteRange
object
2 properties
YearRange
object
2 properties
YearRangeInteger
object
3 properties
YearRangeString
object
3 properties
TableMatch
object
2 properties
Error
object
5 properties
StagingData
object
6 properties
Input
object
12 properties
Metadata
object
3 properties
StagingSchemaInfo
object
7 properties
PublishInfo
object
Publish info
5 properties
RxVersion
object
5 properties
MphInput
object
9 properties
MphInputPair
object
2 properties
MphResult
object
6 properties
MphRule
object
5 properties
GlossaryVersion
object
5 properties
DiseaseVersion
object
5 properties
SurgeryRow
object
4 properties
SurgeryTable
object
7 properties
TableProjection
object
3 properties
StagingTableHistory
object
9 properties
SchemaProjection
object
4 properties
StagingSchemaHistory
object
9 properties
PublishableEntity
object
13 properties
PublishableSearchResults
object
7 properties
PublishStatus
object
3 properties
SummaryCount
object
3 properties
KeywordInfo
object
2 properties
PublishableChangelog
object
7 properties
PublishableChangelogEntry
object
4 properties
PublishableChangelogResults
object
4 properties
SiteRecode
object
4 properties
SiteGroupAlgorithm
object
4 properties
NaaccrItemInfo
object
3 properties
AllowedCode
object
2 properties
NaaccrItemDto
object
29 properties
NaaccrVersion
object
3 properties
MphGroup
object
9 properties
MphRuleInfo
object
3 properties
SamePrimaries
object
5 properties
SiteCategory
object
3 properties
Lookup
object
2 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

cancer-gov-seer-openapi.yml Raw ↑

Other APIs Cancer.gov publishes across the network.

NCI Clinical Trials Search API
NCI Genomic Data Commons (GDC) API
NCI MoDaC API
NCI EVS Terminology API
NCI Content Syndication Services
Cancer.gov Diseases API
Cancer.gov Interventions API
Cancer.gov Terms API
Cancer.gov Trials API
NCI Glossary Term API
NCI Drug Dictionary API
Cancer.gov Site-Wide Search API
Where this information came from

This is an independent, third-party profile of NCI SEER API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.