fda_drug_events

Pack: openfda · Endpoint: https://gateway.pipeworx.io/openfda/mcp

Search FAERS adverse event reports by drug name, MedDRA reaction term, or date range. Returns report counts, reaction types, seriousness levels, and dates. Natural multi-word reaction phrasing is retried against MedDRA preferred-term word order before an empty result is reported. FAERS reports do not establish incidence or causality.

Parameters

NameTypeRequiredDescription
querystringyesOpenFDA search query. Filter drugs on patient.drug.medicinalproduct — the report’s own drug-name field, present on every record and matching brand or generic. The patient.drug.openfda.* fields are enrichment that is missing for many newer drugs (semaglutide/OZEMPIC among them) and silently match nothing; this tool retries them against medicinalproduct, but naming it directly costs one call instead of two. Examples: ‘patient.drug.medicinalproduct:“OZEMPIC”’, ‘patient.drug.medicinalproduct:“semaglutide”+AND+serious:1’, ‘receivedate:[20240101+TO+20241231]‘
limitnumbernoNumber of results (1-100, default 10)
skipnumbernoOffset for pagination (default 0)

Example call

Arguments

{
  "query": "patient.drug.medicinalproduct:\"OZEMPIC\""
}

curl

curl -X POST https://gateway.pipeworx.io/openfda/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"fda_drug_events","arguments":{"query":"patient.drug.medicinalproduct:\"OZEMPIC\""}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('fda_drug_events', {
  "query": "patient.drug.medicinalproduct:\"OZEMPIC\""
});

More examples

{
  "query": "patient.drug.medicinalproduct:\"semaglutide\"+AND+serious:1",
  "limit": 50
}
{
  "query": "patient.drug.medicinalproduct:\"semaglutide\"+AND+patient.reaction.reactionmeddrapt.exact:\"OPTIC ISCHAEMIC NEUROPATHY\"",
  "limit": 10
}

Response shape

Always returns: total, skip, limit, results

FieldTypeDescription
totalnumberTotal count of matching adverse event reports
skipnumberOffset used in pagination
limitnumberNumber of results returned
resultsarrayArray of adverse event report objects
reaction_requestedstringThe reaction term as the caller supplied it, uppercased
reaction_resolvedstringThe MedDRA preferred term actually used for the filter
reaction_resolutionstringHow the supplied reaction term mapped onto a MedDRA preferred term. not_a_meddra_preferred_term means the filter matched nothing — counts are zero because the term missed, not because no reports exist
reaction_resolution_notestringPresent when word order was corrected; states the substitution made
reaction_resolution_hintstringPresent when the term matched nothing; names a working way to discover the real preferred terms
Full JSON Schema
{
  "type": "object",
  "properties": {
    "total": {
      "type": "number",
      "description": "Total count of matching adverse event reports"
    },
    "skip": {
      "type": "number",
      "description": "Offset used in pagination"
    },
    "limit": {
      "type": "number",
      "description": "Number of results returned"
    },
    "results": {
      "type": "array",
      "description": "Array of adverse event report objects",
      "items": {
        "type": "object"
      }
    },
    "reaction_requested": {
      "type": "string",
      "description": "The reaction term as the caller supplied it, uppercased"
    },
    "reaction_resolved": {
      "type": "string",
      "description": "The MedDRA preferred term actually used for the filter"
    },
    "reaction_resolution": {
      "type": "string",
      "enum": [
        "exact_match",
        "word_order_corrected",
        "not_a_meddra_preferred_term"
      ],
      "description": "How the supplied reaction term mapped onto a MedDRA preferred term. not_a_meddra_preferred_term means the filter matched nothing — counts are zero because the term missed, not because no reports exist"
    },
    "reaction_resolution_note": {
      "type": "string",
      "description": "Present when word order was corrected; states the substitution made"
    },
    "reaction_resolution_hint": {
      "type": "string",
      "description": "Present when the term matched nothing; names a working way to discover the real preferred terms"
    }
  },
  "required": [
    "total",
    "skip",
    "limit",
    "results"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "openfda": {
      "url": "https://gateway.pipeworx.io/openfda/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 10, 2026