Skip to content
Eden Engine

RxNorm Related Concepts (Ingredient, Brand, Generic, Dose Form) for an RxCUI

rxnorm/related-concepts

From one RxCUI, returns the RxNorm concepts of the term types you choose that are tied to it, from NLM's RxNav API, unchanged: a product's ingredient (IN), brand name (BN), generic equivalent (SCD) and dose form (DF); an ingredient's brand names, precise salt forms (PIN) and products; a combination tablet's ingredients. Pass `tty` as space-separated codes. Every requested type is listed, empty or not, and a retired or unknown RxCUI returns empty groups, not an error. Relations are not symmetric: precise ingredients hang off the ingredient, not off a product. Source: RxNorm, from the U.S. National Library of Medicine; Omnial is not an NLM product and NLM is not responsible for it.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.

Data source

RxNorm

This product uses publicly available data from the U.S. National Library of Medicine (NLM), National Institutes of Health, Department of Health and Human Services; NLM is not responsible for the product and does not endorse or recommend this or any other product. Source: RxNorm (RxNav API). Served unchanged by Omnial; not an NLM product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "rxnorm/related-concepts" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "rxnorm/related-concepts" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "rxnorm/related-concepts", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "rxnorm/related-concepts", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 20, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "rxcui",
    "tty"
  ],
  "properties": {
    "tty": {
      "type": "string",
      "pattern": "^(IN|PIN|MIN|BN|DF|DFG|SCDC|SCDFP|SCDF|SCDGP|SCDG|SCD|SBDC|SBDFP|SBDF|SBDG|SBD|GPCK|BPCK)( (IN|PIN|MIN|BN|DF|DFG|SCDC|SCDFP|SCDF|SCDGP|SCDG|SCD|SBDC|SBDFP|SBDF|SBDG|SBD|GPCK|BPCK))*$",
      "description": "The term types to return, one or more of the 19 codes separated by single spaces, for example `IN BN` or `SCD`. IN ingredient, PIN precise ingredient (salt or isomer), MIN multiple ingredients, BN brand name, DF dose form, DFG dose form group, SCDC ingredient + strength, SCDF ingredient + dose form, SCDG ingredient + dose form group, SCD ingredient + strength + dose form, SBDC, SBDF, SBDG, SBD the same with a brand name, SCDFP, SCDGP, SBDFP the same with a precise ingredient, GPCK generic pack, BPCK branded pack. Ask for the narrowest types: an ingredient's SCD list can be hundreds of concepts."
    },
    "rxcui": {
      "type": "string",
      "pattern": "^[0-9]{1,10}$",
      "description": "The RxNorm concept identifier to start from, digits only, for example 617314 (atorvastatin 10 MG Oral Tablet [Lipitor]) or 83367 (atorvastatin). Get one from rxnorm/drug-search."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "relatedGroup"
  ],
  "properties": {
    "relatedGroup": {
      "type": "object",
      "required": [
        "conceptGroup"
      ],
      "properties": {
        "rxcui": {
          "type": [
            "string",
            "null"
          ],
          "description": "Always null on the responses seen; the RxCUI asked about is not echoed."
        },
        "conceptGroup": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "tty"
            ],
            "properties": {
              "tty": {
                "type": "string",
                "description": "The term type of this group."
              },
              "conceptProperties": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "rxcui",
                    "name",
                    "tty"
                  ],
                  "properties": {
                    "tty": {
                      "type": "string",
                      "description": "The term type, as the group's."
                    },
                    "name": {
                      "type": "string",
                      "description": "The RxNorm normalized name."
                    },
                    "rxcui": {
                      "type": "string",
                      "description": "The RxNorm concept identifier, digits."
                    },
                    "synonym": {
                      "type": "string",
                      "description": "A display alias; empty on most ingredients, brands and forms."
                    },
                    "umlscui": {
                      "type": "string",
                      "description": "Always empty."
                    },
                    "language": {
                      "type": "string",
                      "description": "Always \"ENG\"."
                    },
                    "suppress": {
                      "type": "string",
                      "description": "Always \"N\"."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The related concepts of this type. Absent when there are none; the order carries no meaning."
              }
            },
            "additionalProperties": true
          },
          "description": "One entry per requested term type, in alphabetical order of the code, listed even when empty."
        }
      },
      "description": "The result wrapper.",
      "additionalProperties": true
    }
  },
  "description": "NLM's relatedGroup response, unchanged.",
  "additionalProperties": true
}