fda_drug_events

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

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/fda_drug_events for the schema, then POST the same URL with its arguments for the data.

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 22, 2026