NCI Drug Dictionary API

Serves the NCI Drug Dictionary — definitions of drugs and drug combinations used in cancer treatment and prevention, matched across generic names, brand names and code names. Supports autosuggest, search, alphabetical expansion and retrieval by id or pretty URL name. No credential required.

Operations 9

GET /Autosuggest Searches for drug dictionary terms with names matching the query text. #
GET /Autosuggest/status Provides a simple report of system status, suitable for monitoring. (Obsolete. Use /HealthCheck/status instead.) #
GET /Drugs/expand/{character} List all drug dictionary entries starting with the same first character. #
GET /Drugs Get a list of all terms (no search string). #
GET /Drugs/{id} Get the drug definition by its ID #
GET /Drugs/{prettyUrlName} Get the dictionary entry based on Pretty URL Name. #
GET /Drugs/status Provides a simple report of system status, suitable for monitoring. (Obsolete. Use /HealthCheck/status instead.) #
GET /HealthCheck/status Provides an endpoint for checking that the glossary API and underlying Elasticsearch instance are in a good operational state. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/drug-dictionary-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cancer-gov-drug-dictionary-openapi.yml Raw ↑
x-generator: NSwag v13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))
openapi: 3.0.0
info:
  title: Drug Dictionary API
  description: API for Drug Dictionary
  version: 1.0.0
  x-apis-io-source: https://webapis.cancer.gov/drugdictionary/v1/swagger/v1/swagger.json
  x-apis-io-harvested: '2026-09-05'
  x-apis-io-method: searched
servers:
- url: https://webapis.cancer.gov/drugdictionary/v1
  description: Production host (resolved from the URL this specification was served from; the published document
    carries '/drugdictionary/v1')
paths:
  /Autosuggest:
    get:
      tags:
      - Autosuggest
      summary: Searches for drug dictionary terms with names matching the query text.
      operationId: Autosuggest_GetSuggestions
      parameters:
      - name: searchText
        in: query
        description: Text to match against
        schema:
          type: string
          nullable: true
        x-position: 1
      - name: matchType
        in: query
        description: Should the search match items beginning with the search text, or containing it?
        schema:
          default: Begins
          oneOf:
          - $ref: '#/components/schemas/MatchType'
        x-position: 2
      - name: size
        in: query
        description: The number of records to retrieve.
        schema:
          type: integer
          format: int32
          default: 20
        x-position: 3
      - name: includeResourceTypes
        in: query
        style: form
        explode: true
        description: 'The DrugResourceTypes to include. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DrugResourceType'
        x-position: 4
      - name: includeNameTypes
        in: query
        style: form
        explode: true
        description: 'The name types to include. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TermNameType'
        x-position: 5
      - name: excludeNameTypes
        in: query
        style: form
        explode: true
        description: 'The name types to exclude. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TermNameType'
        x-position: 6
      responses:
        '200':
          description: A Suggestion result containing the desired records.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Suggestion'
  /Autosuggest/status:
    get:
      tags:
      - Autosuggest
      summary: Provides a simple report of system status, suitable for monitoring. (Obsolete. Use /HealthCheck/status
        instead.)
      operationId: Autosuggest_GetStatus
      responses:
        '200':
          description: "If the system is healthy, returns an HTTP status 200 with the string \"alive!\".\n     \
            \       Otherwise, an HTTP status 500 with the message \"Service not healthy.\""
          content:
            application/json:
              schema:
                type: string
  /Drugs/expand/{character}:
    get:
      tags:
      - Drugs
      summary: List all drug dictionary entries starting with the same first character.
      operationId: Drugs_Expand
      parameters:
      - name: character
        in: path
        required: true
        description: 'The character to expand. Use # for non-alphabetic.'
        schema:
          type: string
        x-position: 1
      - name: size
        in: query
        description: The number of records to retrieve.
        schema:
          type: integer
          format: int32
          default: 100
        x-position: 2
      - name: from
        in: query
        description: The offset into the overall set to use for the first record.
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 3
      - name: includeResourceTypes
        in: query
        style: form
        explode: true
        description: 'The DrugResourceTypes to include. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DrugResourceType'
        x-position: 4
      - name: includeNameTypes
        in: query
        style: form
        explode: true
        description: 'The name types to include. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TermNameType'
        x-position: 5
      - name: excludeNameTypes
        in: query
        style: form
        explode: true
        description: 'The name types to exclude. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TermNameType'
        x-position: 6
      responses:
        '200':
          description: A DrugTermResults object containing the desired records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DrugTermResults'
  /Drugs:
    get:
      tags:
      - Drugs
      summary: Get a list of all terms (no search string).
      operationId: Drugs_GetAll
      parameters:
      - name: size
        in: query
        description: The number of records to retrieve.
        schema:
          type: integer
          format: int32
          default: 100
        x-position: 1
      - name: from
        in: query
        description: The offset into the overall set to use for the first record.
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 2
      - name: includeResourceTypes
        in: query
        style: form
        explode: true
        description: 'The DrugResourceTypes to include. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/DrugResourceType'
        x-position: 3
      - name: includeNameTypes
        in: query
        style: form
        explode: true
        description: 'The name types to include. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TermNameType'
        x-position: 4
      - name: excludeNameTypes
        in: query
        style: form
        explode: true
        description: 'The name types to exclude. Default: All'
        schema:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/TermNameType'
        x-position: 5
      responses:
        '200':
          description: A DrugTermResults object containing the desired records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DrugTermResults'
  /Drugs/{id}:
    get:
      tags:
      - Drugs
      summary: Get the drug definition by its ID
      operationId: Drugs_GetById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
        x-position: 1
      responses:
        '200':
          description: DrugTerm object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DrugTerm'
  /Drugs/{prettyUrlName}:
    get:
      tags:
      - Drugs
      summary: Get the dictionary entry based on Pretty URL Name.
      operationId: Drugs_GetByName
      parameters:
      - name: prettyUrlName
        in: path
        required: true
        description: The PrettyUrlName of the term to fetch. Required.
        schema:
          type: string
        x-position: 1
      responses:
        '200':
          description: The requested dictionary entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DrugTerm'
  /Drugs/search:
    get:
      tags:
      - Drugs
      summary: 'Retrieves a portion of the overall set of drug definitions that match a specific search criteria.
        This will return

        only DrugTerms, but will match against the Drug Term''s name OR any of its Aliases.'
      operationId: Drugs_Search
      parameters:
      - name: query
        in: query
        description: The search text. Required.
        schema:
          type: string
          nullable: true
        x-position: 1
      - name: matchType
        in: query
        description: 'Should the search match items beginning with the search text, or containing it? Default: Begin.'
        schema:
          default: Begins
          oneOf:
          - $ref: '#/components/schemas/MatchType'
        x-position: 2
      - name: size
        in: query
        description: 'The number of records to retrieve. Default: 100.'
        schema:
          type: integer
          format: int32
          default: 100
        x-position: 3
      - name: from
        in: query
        description: The offset into the overall set to use for the first record.
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 4
      responses:
        '200':
          description: A DrugTermResults object containing the desired records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DrugTermResults'
  /Drugs/status:
    get:
      tags:
      - Drugs
      summary: Provides a simple report of system status, suitable for monitoring. (Obsolete. Use /HealthCheck/status
        instead.)
      operationId: Drugs_GetStatus
      responses:
        '200':
          description: "If the system is healthy, returns an HTTP status 200 with the string \"alive!\".\n     \
            \       Otherwise, an HTTP status 500 with the message \"Service not healthy.\""
          content:
            application/json:
              schema:
                type: string
  /HealthCheck/status:
    get:
      tags:
      - HealthCheck
      summary: 'Provides an endpoint for checking that the glossary API and underlying Elasticsearch instance

        are in a good operational state.'
      operationId: HealthCheck_IsHealthy
      responses:
        '200':
          description: "Status 200 and the message \"alive!\" if the service is healthy.\n            \n       \
            \      Status 500  and the message \"Service not healthy.\" otherwise."
          content:
            application/json:
              schema:
                type: string
components:
  schemas:
    Suggestion:
      type: object
      description: Describes a single suggestion from autosuggest
      additionalProperties: false
      properties:
        termId:
          type: integer
          description: The term's CDR ID.
          format: int64
        termName:
          type: string
          description: Gets or sets the Name of the Drug Dictionary Term.
          nullable: true
    MatchType:
      type: string
      description: Friendly names for the ways to perform a match.
      x-enumNames:
      - Begins
      - Contains
      enum:
      - Begins
      - Contains
    DrugResourceType:
      type: string
      description: Identifies the type of an IDrugResource descendant.
      x-enumNames:
      - DrugTerm
      - DrugAlias
      enum:
      - DrugTerm
      - DrugAlias
    TermNameType:
      type: string
      description: Identifiers for the various types of names a term might have.
      x-enumNames:
      - CodeName
      - ObsoleteName
      - Abbreviation
      - INDCode
      - NSCNumber
      - ForeignBrandName
      - Synonym
      - CASRegistryName
      - Subtype
      - Spanish
      - LexicalVariant
      - ChemicalStructureName
      - CommonUsage
      - Acronym
      - USBrandName
      - Broader
      - RelatedString
      - PreferredName
      enum:
      - CodeName
      - ObsoleteName
      - Abbreviation
      - INDCode
      - NSCNumber
      - ForeignBrandName
      - Synonym
      - CASRegistryName
      - Subtype
      - Spanish
      - LexicalVariant
      - ChemicalStructureName
      - CommonUsage
      - Acronym
      - USBrandName
      - Broader
      - RelatedString
      - PreferredName
    DrugTermResults:
      type: object
      description: Represents the results of a search operation.
      additionalProperties: false
      properties:
        meta:
          description: Metadata about the results.
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/ResultsMetadata'
        results:
          type: array
          description: Array of Drug dictionary entries matching the search. May be empty.
          nullable: true
          items:
            $ref: '#/components/schemas/IDrugResource'
        links:
          description: Link to ????
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/Metalink'
    ResultsMetadata:
      type: object
      description: Metadata about a DrugResults object.
      additionalProperties: false
      properties:
        totalResults:
          type: integer
          description: The total number of results available.
          format: int32
        from:
          type: integer
          description: Offset into the overall list where the current set begins.
          format: int32
    IDrugResource:
      type: object
      description: Interface defining the fields common to all dictionary entries.
      x-abstract: true
      additionalProperties: false
      properties:
        termId:
          type: integer
          description: The CDR ID of the full term for a DrugTerm, or the full term this alias represents.
          format: int64
        name:
          type: string
          description: The name of this resource as it should be displayed on the listing pages
          nullable: true
        firstLetter:
          type: string
          description: The first letter of the term as would be used by the expand endpoint
        type:
          description: The type of this resource.
          oneOf:
          - $ref: '#/components/schemas/DrugResourceType'
        termNameType:
          description: The type of name for this resource.
          oneOf:
          - $ref: '#/components/schemas/TermNameType'
        prettyUrlName:
          type: string
          description: The url fragment used in the full defintion URL of /def/<PrettyUrlName>.
          nullable: true
    Metalink:
      type: object
      description: Metalink
      additionalProperties: false
      properties:
        self:
          type: string
          description: url
          format: uri
          nullable: true
    DrugTerm:
      allOf:
      - $ref: '#/components/schemas/DrugResource'
      - type: object
        description: Data structure representing a single drug dictionary entry.
        additionalProperties: false
        properties:
          aliases:
            type: array
            description: Array of aliases for the drug.
            nullable: true
            items:
              $ref: '#/components/schemas/TermAlias'
          definition:
            description: The drug's definition.
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/Definition'
          drugInfoSummaryLink:
            description: Link to a matching Drug Information Summary.
            nullable: true
            oneOf:
            - $ref: '#/components/schemas/DrugInfoSummaryLink'
          nciConceptId:
            type: string
            description: The NCI Concept ID.
            nullable: true
          nciConceptName:
            type: string
            description: The NCI Concept Name.
            nullable: true
    TermAlias:
      type: object
      description: Data structure representing one alias for a drug term.
      additionalProperties: false
      properties:
        type:
          description: The type of alias.
          oneOf:
          - $ref: '#/components/schemas/TermNameType'
        name:
          type: string
          description: The actual alias name.
          nullable: true
    Definition:
      type: object
      description: Contains the definition of a drug dictionary entry.
      additionalProperties: false
      properties:
        html:
          type: string
          description: The definition, rendered as HTML.
          nullable: true
        text:
          type: string
          description: The definition, rendered as plain text.
          nullable: true
    DrugInfoSummaryLink:
      type: object
      description: Contains information for creating a link to a drug information summary.
      additionalProperties: false
      properties:
        uri:
          type: string
          description: The URL of the drug information summary.
          format: uri
          nullable: true
        text:
          type: string
          description: Link text.
          nullable: true
    DrugResource:
      type: object
      description: 'This class implements the properties defined in IDrugResource, however it

        expressly does *NOT* "implement" IDrugResource. The intent is to enforce the

        use of classes implementing IDrugResource for serializiation, while providing

        a single class for maintaining the NEST attribute mapping data.'
      additionalProperties: false
      properties:
        termId:
          type: integer
          description: The CDR ID of the full term for a DrugTerm, or the full term this alias represents.
          format: int64
        name:
          type: string
          description: The name of this resource as it should be displayed on the listing pages
          nullable: true
        firstLetter:
          type: string
          description: The first letter of the term as would be used by the expand endpoint
        type:
          description: The type of this resource.
          oneOf:
          - $ref: '#/components/schemas/DrugResourceType'
        termNameType:
          description: The type of name for this resource.
          oneOf:
          - $ref: '#/components/schemas/TermNameType'
        prettyUrlName:
          type: string
          description: The url fragment used in the full defintion URL of /def/<PrettyUrlName>.
          nullable: true