Where every number comes from
Every figure on this site comes from FDA's public openFDA datasets, which are US Government works in the public domain (CC0). This page lists each dataset we load, how often, and — more usefully — what we do not have.
Last updated
The datasets
We load FDA's bulk downloads rather than paging the interactive API, because the API caps a query at 1,000 records and 1,000 requests a day, and paging 175,000 clearances through it would be both slow and against the terms. The interactive API is used once a day for the previous day's changes.
| Dataset | openFDA endpoint | What it gives us |
|---|---|---|
| 510(k) clearances | device/510k | Clearance records, applicants, decision and received dates |
| Classification | device/classification | Product codes, device names, regulation numbers, review panels |
| Recalls | device/recall | Recall records, reasons, status, affected K-numbers |
| Enforcement | device/enforcement | Recall class — Class I, II or III — which device/recall does not carry |
| Adverse events | device/event | MAUDE reports, used for monthly volume and baselines |
| Registration & listing | device/registrationlisting | Which firms register which product codes |
How often it refreshes
A delta job runs every night at 04:00 UTC against the interactive API, covering clearances, recalls, enforcement and adverse events. Classification and registration publish no date field, so there is no window to ask for; they are reloaded in full once a week instead. The live status of every load is on the status page, and it is machine-readable at /status.json.
The delta always re-reads a window rather than only what is newer than our latest record, because openFDA backfills: a clearance decided on Monday can appear on Thursday, and a watermark with no overlap would lose it permanently.
What we do not have
This is the section most data pages leave out, and it is the one worth reading.
- Predicate chains are largely missing. FDA publishes the predicate a device was compared to only inside each 510(k) summary PDF, never as data. Where we have read those documents we show the chain; where we have not, we say so rather than showing an empty tree — an empty tree reads as "this device cites nothing", which is false.
- MAUDE runs about a quarter behind. Adverse events arrive as quarterly bulk exports, so the most recent months are always partial. Those months are excluded from baselines rather than reported as a fall in reports, and the exclusion is stated on the page.
- Recall class is missing for some recalls. It lives in device/enforcement, which does not cover every record in device/recall. Where it is absent we show no class rather than guessing one.
- Review time is elapsed calendar days, not FDA review days. The two differ whenever the agency stops the clock for an additional information request, and FDA does not publish the stopped-clock periods.
- Some product codes cited by clearances and recalls do not exist in FDA's own classification file. We keep the code as published and count it, rather than dropping the record.
Two scales that are easy to confuse
Recall class I is the most serious kind of recall — a reasonable probability of serious injury or death. Device class I is the least risky kind of device. They are different scales that happen to share numerals, and nothing on this site ever prints one where the other belongs.
Licence and attribution
openFDA data is a work of the US Government and is in the public domain under CC0 1.0. We are not affiliated with, endorsed by, or acting on behalf of the U.S. Food and Drug Administration. Nothing here is regulatory advice. Verify anything you rely on against open.fda.gov, which every figure on every page links to.