rxnorm read
scidex.forge.rxnorm
Query the NLM RxNorm API for standardized drug names, RxCUI identifiers, and brand↔generic relationships. RxNorm is the normalized drug vocabulary (750K+ concepts) used by FDA, CMS, and EHR systems to canonicalize drug names. Returns the primary RxCUI and canonical name for the queried drug, plus all matching concept variants (ingredient, brand, semantic clinical drug, etc.) with their ingredients and brand name lists. Free NLM API — no authentication required.
Invoke
Calls scidex.tool.invoke on the substrate with
this tool name. Edit the JSON below — it must match the
input schema. The substrate runs the tool, records the call
in substrate_tool_calls, and returns a
structured envelope.
Sign in to invoke this tool. Schema and curl snippet are visible to anyone.
Schemas
Input schema
{
"additionalProperties": false,
"description": "Input schema for ``scidex.forge.rxnorm``.",
"properties": {
"query": {
"description": "Drug name to search. Accepts brand names (e.g. 'Tylenol'), generic names (e.g. 'acetaminophen'), or partial names (e.g. 'aspirin').",
"title": "Query",
"type": "string"
},
"query_type": {
"default": "drug_name",
"description": "Query mode: 'drug_name' (default) — search by drug name.",
"title": "Query Type",
"type": "string"
},
"limit": {
"default": 10,
"description": "Maximum number of drug concepts to return (1–50). Default 10.",
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"required": [
"query"
],
"title": "ForgeRxnormIn",
"type": "object"
}Output schema
{
"$defs": {
"RxnormConcept": {
"description": "One RxNorm drug concept.",
"properties": {
"rxcui": {
"description": "RxNorm Concept Unique Identifier (e.g. '1191').",
"title": "Rxcui",
"type": "string"
},
"name": {
"description": "Normalized drug name (e.g. 'Aspirin').",
"title": "Name",
"type": "string"
},
"term_type": {
"description": "RxNorm term type code (e.g. 'IN'=ingredient, 'BN'=brand name, 'SCD'=semantic clinical drug, 'SBD'=semantic branded drug).",
"title": "Term Type",
"type": "string"
},
"ingredients": {
"description": "Ingredient names for this concept (from related IN-type concepts).",
"items": {
"type": "string"
},
"title": "Ingredients",
"type": "array"
},
"brand_names": {
"description": "Brand names for this concept (from related BN-type concepts).",
"items": {
"type": "string"
},
"title": "Brand Names",
"type": "array"
},
"drug_class": {
"default": "",
"description": "Drug class (e.g. 'NSAID'); empty when not available.",
"title": "Drug Class",
"type": "string"
}
},
"required": [
"rxcui",
"name",
"term_type"
],
"title": "RxnormConcept",
"type": "object"
}
},
"description": "Response shape for ``scidex.forge.rxnorm``.",
"properties": {
"query": {
"description": "The drug name that was queried.",
"title": "Query",
"type": "string"
},
"query_type": {
"description": "Query mode used.",
"title": "Query Type",
"type": "string"
},
"primary_rxcui": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "RxCUI of the primary ingredient (IN-type) concept, or the first concept if no IN-type found. None when not_found.",
"title": "Primary Rxcui"
},
"canonical_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Canonical drug name for the primary_rxcui. None when not_found.",
"title": "Canonical Name"
},
"drug_concepts": {
"description": "All matching drug concepts up to limit, each with term_type, ingredients, and brand_names.",
"items": {
"$ref": "#/$defs/RxnormConcept"
},
"title": "Drug Concepts",
"type": "array"
},
"not_found": {
"default": false,
"description": "True when the query matched no RxNorm concepts.",
"title": "Not Found",
"type": "boolean"
}
},
"required": [
"query",
"query_type"
],
"title": "ForgeRxnormOut",
"type": "object"
}curl snippet
Replace $SCIDEX_JWT with a valid bearer token. Read
verbs are usually accessible without auth in dev; production
requires a JWT.
curl -sS -X POST '/api/scidex/forge/rxnorm' \
-H 'authorization: Bearer $SCIDEX_JWT' \
-H 'content-type: application/json' \
-d '{
"query": ""
}'Discussion
No comments yet — be the first.