API Reference

All /v1/* endpoints require a Bearer token. Get a free key on the Dashboard or try live calls in the Playground.

Base URL: https://your-domain.com   Format: JSON    Auth: Authorization: Bearer rxb_<key>   Tiers: Free 500 req/mo · Pro 20k req/mo
POST /v1/keys/signup No auth

Create a free API key. Returns the key once — store it securely. Submitting the same email twice returns 409.

FieldTypeDescription
emailstringrequiredYour email. Used as the unique account identifier.
Request
curl -X POST https://your-domain.com/v1/keys/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'
201 Success
{
  "api_key":       "rxb_a3f2d...",
  "email":         "you@example.com",
  "tier":          "free",
  "monthly_quota": 500
}
POST /v1/normalize Auth required

Normalize messy drug free-text to a canonical RxNorm RXCUI, NDC, dosage form, and strength. Handles misspellings, abbreviations (HCTZ, MetXR, Coumadin), and free-text dose noise. Returns the best match with confidence score plus ranked alternates.

FieldTypeDescription
textstringrequiredFree-text drug string, e.g. "metformn 500 tab", "HCTZ 25", "Coumadin 5mg"
Request
curl -X POST https://your-domain.com/v1/normalize \
  -H "Authorization: Bearer rxb_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text": "metformn 500 tab"}'
200 Response
{
  "query": "metformn 500 tab",
  "match": {
    "rxcui":             "861007",
    "ndc":               "00093-7214-01",
    "ingredient":        "metformin",
    "brand":             "Glucophage",
    "dosage_form":       "tablet",
    "strength":          "500 mg",
    "description":       "Metformin is an oral diabetes medicine...",
    "description_source": "rxbridge_curated",
    "confidence":        0.92
  },
  "alternatives": [...]
}
GET /v1/drug/{rxcui} Auth required

Look up all catalog entries for a given RxNorm RXCUI, including lay-level patient description.

FieldTypeDescription
rxcuipath paramrequiredRxNorm Concept Unique Identifier, e.g. 861007
Request
curl https://your-domain.com/v1/drug/861007 \
  -H "Authorization: Bearer rxb_your_key"
200 Response
{
  "rxcui":      "861007",
  "description": "Metformin is an oral diabetes medicine that helps control blood sugar...",
  "results": [
    { "rxcui": "861007", "ingredient": "metformin", "brand": "Glucophage",
      "dosage_form": "tablet", "strength": "500 mg" }
  ]
}
POST /v1/interactions Auth required

Check drug-drug interaction evidence for 2–10 drugs. Returns severity-tagged evidence objects sourced from FDA drug labels. Framed strictly as evidence — not clinical verdicts. Every response includes a mandatory disclaimer field.

FieldTypeDescription
drugsstring[]required2–10 drug texts or RXCUIs, e.g. ["warfarin 5mg", "aspirin 81mg"]
Request
curl -X POST https://your-domain.com/v1/interactions \
  -H "Authorization: Bearer rxb_your_key" \
  -H "Content-Type: application/json" \
  -d '{"drugs": ["warfarin 5mg", "aspirin 81mg"]}'
200 Response
{
  "resolved": [
    { "query": "warfarin 5mg", "rxcui": "855332", "ingredient": "warfarin" },
    { "query": "aspirin 81mg", "rxcui": "1191",   "ingredient": "aspirin" }
  ],
  "interactions": [
    {
      "drug_pair": ["warfarin", "aspirin"],
      "severity": "major",
      "summary":  "Aspirin can potentiate warfarin's anticoagulant effect...",
      "evidence": {
        "source_label":   "Coumadin (warfarin) FDA label",
        "source_section": "Drug Interactions (Section 7)",
        "snippet":        "Aspirin inhibits platelet aggregation..."
      }
    }
  ],
  "disclaimer": "EVIDENCE ONLY — not medical advice..."
}
POST /v1/medication Auth required

The combined one-call endpoint. Accepts messy drug text (single string or list), normalizes each to canonical RXCUI + dosage form + lay description, then cross-checks all drug pairs for severity-tagged interaction evidence — all in a single request. This is the wedge.

FieldTypeDescription
textstringoptionalSingle drug free-text. Provide either text or medications.
medicationsstring[]optionalList of up to 10 drug strings. Used for multi-drug interaction check.
Request
curl -X POST https://your-domain.com/v1/medication \
  -H "Authorization: Bearer rxb_your_key" \
  -H "Content-Type: application/json" \
  -d '{"medications": ["metformn 500 tab", "lisinprl 10mg", "atorvastn 40"]}'
200 Response
{
  "medications": [
    {
      "input":      "metformn 500 tab",
      "resolved":   true,
      "confidence": 0.92,
      "match": {
        "rxcui":       "861007",
        "ingredient":  "metformin",
        "brand":       "Glucophage",
        "dosage_form": "tablet",
        "strength":    "500 mg",
        "description": "Metformin is an oral diabetes medicine..."
      }
    }
  ],
  "interactions": [],
  "disclaimer":   "EVIDENCE ONLY — not medical advice..."
}
GET /v1/usage Auth required

Returns current monthly usage and quota for the authenticated key, with a per-endpoint breakdown.

Request
curl https://your-domain.com/v1/usage \
  -H "Authorization: Bearer rxb_your_key"
200 Response
{
  "email":      "you@example.com",
  "tier":       "free",
  "usage":      14,
  "limit":      500,
  "remaining":  486,
  "period":     "2026-06",
  "by_endpoint": {
    "/v1/normalize":  8,
    "/v1/medication": 6
  }
}

RxBridge is a developer API for evidence aggregation. Interaction data is sourced from FDA drug labels (openFDA). Not a clinical decision support system — do not present interaction evidence as patient-facing verdicts without independent clinical validation.