openFDA is the FDA's public JSON API. It exposes drug approvals, labeling, and recalls (enforcement) through HTTP endpoints — no API key required, no paid tier.
It is the cleanest free source for machine-readable drug data, and the foundation of feeds that turn raw FDA records into structured signals.
Enforcement (`/drug/enforcement.json`) returns recall records: report date, recalling firm, product description, reason, and classification. This is the recall-signal endpoint.
Drugs@FDA (`/drug/drugsfda.json`) returns approval profiles: brand, generic, route, substances, and application data. A brand-name lookup lands on this.
Labeling (`/drug/label.json`) returns structured product labels — the richest free source of structured drug facts for research and compliance.
The API accepts `search=` filters and `limit=`/`skip=` for pagination. Example: `?search=openfda.brand_name:"aspirin"&limit=3` returns matching drug profiles.
Rate limits are generous for this class of API (thousands of requests per hour are fine), so a modest polling loop can track new recalls cost-effectively.
A robust feed sorts by a monotonic field (e.g. `report_date`), filters to the fields you care about (classification, firm, product), and is idempotent — your agent can poll without double-counting.
openFDA is genuinely free and reliable, which makes it the right default for a drug-signal service.
No. openFDA is free and keyless for standard use.
Use the drugs@FDA endpoint with an openfda filter, or resolve the NDC directly.
It reflects FDA published data; enforcement reports are updated as the FDA releases them.