# Fda

> Query openFDA via VenusFactory for drugs, devices, adverse events, recalls, and regulatory submissions (510k, PMA). Use when the user needs FDA pharmacovigilance, labeling, NDC/UNII, or openFDA analytics. Do NOT use for ChEMBL bioactivity (chembl_database) or general biomedical literature (pubmed).

- Skill: `ai4protein/fda` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add ai4protein/fda`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ai4protein/fda/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: Unknown
- Author: ai4protein (https://skillmd.com/u/ai4protein)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ai4protein/fda

---


# FDA / openFDA

## Overview

**Hub tool:** `query_fda` — drug label search with adverse-event fallback (see `FdaDrugLabelSearchInput`). Broader openFDA categories (devices, foods, 510k, …) use `FDAQuery` via **`agent_generated_code`** and modules under `src/tools/search/deepsearch/fda/` (or legacy `references/`).

## Project Tools (VenusFactory2)

| Tool | Args | When |
|------|------|------|
| **query_fda** | `query`, `max_results`, `max_content_length` | Conversational drug label / event lookup |

## Workflow

1. Quick drug question → `query_fda`
2. Devices / foods / recalls / 510k → load `references/devices.md` (etc.) + `agent_generated_code` with `FDAQuery`
3. Set `OPENFDA_API_KEY` when available to raise rate limits

## When NOT to use

- Potency / IC50 / SAR → `chembl_database` + `rdkit`
- Literature review → `pubmed` / `openalex`

## Common mistakes

- Inventing tools like `query_fda_device` / `query_drug_events` as hub names
- Treating `query_fda` as full openFDA coverage

## References (progressive disclosure)

**Trust order:** `SKILL.md` (hub tools & envelopes) → topic refs → `references/legacy_guide.md` (archived; may be outdated).

```text
read_skill(skill_id="fda", relative_path="references/legacy_guide.md")
```

Load legacy only after the hub workflow in this file is insufficient.

