MAGENT

LIVE

Ontology translation

Natural language to current RxNorm, ICD-10-CM, and LOINC codes. Pay-per-request USDC on Base. No API keys.

LIVE $0.005 USDC GET /api/ontology/translate

When to use

Map a natural-language drug, diagnosis, or lab phrase to a current RxNorm, ICD-10-CM, or LOINC code. Use when an agent must not hallucinate or invent a billing/pharmacy code.

Try

Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.

/api/ontology/translate?query=Tylenol%20500mg&system=rxnorm

Full URL: https://api.magentlab.com/api/ontology/translate?query=Tylenol%20500mg&system=rxnorm

Request

GET /api/ontology/translate · x402 V2 · USDC on Base · $0.005 USDC

x402 V2 curl

Expect HTTP 402 and a PAYMENT-REQUIRED header until you retry with PAYMENT-SIGNATURE.

curl -i -H "Accept: application/json" "https://api.magentlab.com/api/ontology/translate?query=Tylenol%20500mg&system=rxnorm"

Cursor mcp.json

Intended config for @magent/mcp. This is not npm @x402/fetch (a payment fetch wrapper).

{
  "mcpServers": {
    "magent": {
      "args": [
        "-y",
        "@magent/mcp"
      ],
      "command": "npx",
      "env": {
        "X402_PRIVATE_KEY": "0xYOUR_SPENDING_KEY"
      }
    }
  }
}

Query parameters

Name Type Required Description
query string required Natural-language drug, diagnosis, or lab description. Max 512 characters. Do not send patient names.
system string optional · rxnorm, icd10, loinc Restrict to rxnorm, icd10 (ICD-10-CM), or loinc. Omit to search all.
tty string optional · SCD, SBD, IN, PIN, MIN, BN, GPCK, BPCK, DF, SCDC, SBDC, SCDF, SBDF, CM, LN Restrict term type. Pharmacy orders typically want SCD. ICD-10-CM is CM; LOINC is LN.
limit integer optional · default 5 Number of ranked matches to return (1-25). Default 5.
min_score integer optional · default 35 Minimum rank score 0-100. Default 35.
include_obsolete boolean optional · default false Include deprecated/obsolete codes. Default false.
billable_only boolean optional · default true ICD-10-CM: return only HIPAA billable codes, not headers. Default true.

Success fields

Field Type Description
query string Echo of the submitted query
system string rxnorm, icd10, loinc, or all
match_count integer Number of ranked matches returned
match_quality string none, low, or high
matches array Ranked codes. First row is the best deterministic hit.
catalog object Seed vs ingested vs full coverage metadata
disclaimer string Not-a-device notice

Example

Frozen fixture. Not a live lookup.

{
  "system": "rxnorm",
  "matches": [
    {
      "code": "198440",
      "status": "current",
      "system": "rxnorm",
      "display": "acetaminophen 500 MG Oral Tablet",
      "tty": "SCD",
      "obsolete": false,
      "billable": null,
      "score": 95
    }
  ],
  "query": "Tylenol 500mg",
  "disclaimer": "Not a medical device. Deterministic published-formula or coded-ontology output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
  "catalog": {
    "coverage": "full",
    "icd10cm_fy": "FY2026-04",
    "license": {
      "icd10cm": "ICD-10-CM from CMS/NCHS. US claims codes, not WHO ICD-10.",
      "loinc": "This material contains content from LOINC (http://loinc.org). LOINC is copyright © Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee and is available at no cost under the license at http://loinc.org/license. LOINC® is a registered United States trademark of Regenstrief Institute, Inc.",
      "rxnorm": "This product uses publicly available data courtesy of 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."
    },
    "loinc_version": "2.82",
    "notes": "ICD-10 entries are ICD-10-CM (US claims), not WHO ICD-10. RxNorm is Current Prescribable Content until a licensed full monthly ingest lands.",
    "rxnorm_release": "2026-08-03",
    "source": "postgres ingest",
    "systems": [
      "rxnorm",
      "icd10",
      "loinc"
    ],
    "version": "icd10:FY2026-04|loinc:2.82|rxnorm:2026-08-03"
  },
  "match_count": 1,
  "match_quality": "high"
}

Payment

Unpaid requests return HTTP 402 with a base64 PAYMENT-REQUIRED header. Retry the same URL with PAYMENT-SIGNATURE. Settlement completes before the tool runs. Full handshake and shared payment errors: Payments.

Errors

HTTP Code When
400 invalid_query query is required and must be 1-512 characters
400 invalid_system system must be rxnorm, icd10, or loinc
400 invalid_tty tty must be a known RxNorm, ICD-10-CM, or LOINC term type
400 invalid_limit limit must be an integer from 1 to 25
400 invalid_min_score min_score must be an integer from 0 to 100
402 payment_required Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header
409 payment_in_progress The same authorization nonce is already being settled; retry shortly
429 rate_limited Too many requests from this client
503 settlement_uncertain Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE
503 facilitator_unavailable Payment facilitator unavailable
503 facilitator_misconfigured Payment facilitator is not configured
503 facilitator_unauthorized Payment facilitator rejected credentials
503 ledger_unavailable Payment ledger unavailable
503 payment_unavailable Payment processing unavailable

Guarantees

  • Settlement finishes before the tool executes. Uncertain settlement fails closed (HTTP 503).
  • Lookups run on our nodes — no third-party data API wrappers.
  • Localhost, IP literals, and metadata hostnames are rejected.
  • Execution is timeout-bounded and concurrency-capped.