openFDA API
Free FDA openFDA API with no key: drug labels, adverse event reports, recalls, device and food safety data from official US regulatory records. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the openFDA API?
openFDA is the US Food and Drug Administration's free public API, providing drug labelling, adverse event reports, recalls and enforcement actions across drugs, medical devices and food, with no API key required.
openFDA exposes the FDA's own regulatory datasets — full prescribing information from drug labels, adverse event reports submitted to FAERS, and recall and enforcement records for drugs, devices and food.
Its query syntax is Lucene-based and unusual: field names are dotted paths and searches use `search=field:value` with `+AND+` between terms. It takes some getting used to, but it makes precise filtering possible across genuinely large datasets.
Quick facts
- Base URL
https://api.fda.gov- Authentication
- Works with no key at a lower limit. A free API key raises the allowance considerably.
- Rate limit
- 240 requests per minute and 1,000 per day without a key; 240 per minute and 120,000 per day with a free key.
- Pricing
- Free public domain US government data.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the openFDA API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Fetch a drug label record
GET https://api.fda.gov/drug/label.json?limit=1
curl 'https://api.fda.gov/drug/label.json?limit=1'const res = await fetch("https://api.fda.gov/drug/label.json?limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.fda.gov/drug/label.json?limit=1", timeout=20)
res.raise_for_status()
print(res.json()){
"meta": {
"disclaimer": "Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated. We may limit or otherwise restrict your access to the API in line with our Terms of Service.",
"terms": "https://open.fda.gov/terms/",
"license": "https://open.fda.gov/license/",
"last_updated": "2026-08-19",
"results": {
"skip": 0,
"limit": 1,
"total": 261924
}
},
"results": [
{
"effective_time": "20210902",
"inactive_ingredient": [
"INACTIVE INGREDIENTS Sucrose"
],
"purpose": [
"USES USES: Temporary Relief - Acne, Boils* * Claims based on traditional homeopathic practice, not accepted medical evidence. Not FDA evaluated."
],
"keep_out_of_reach_of_children": [
"Keep this and all medication out of reach of children"
],
"warnings": [
"WARNINGS This product is to be used for self-limiting conditions If symptoms do not improve in 4 days, or worsen, discontinue use and seek assistance of health professional. As with any drug, if you are pregnant, or nursing a baby, seek professional advice before taking this product. Keep this and all medication out of reach of children Do not use if capseal is broken or missing. Close the cap tightly after use."
],
"questions": [
"QUESTIONS OR COMMENTS www.Rxhomeo.com | 1.888.2796642 | info@rxhomeo.com Rxhomeo, Inc 3200 Commander Dr, Ste 100-W1, Carrollton, TX 75006 USA"
],
"spl_product_Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
<endpoint> | path | Required | drug/label, drug/event, device/recall, food/enforcement and others. drug/label |
search | string | Optional | Lucene query, e.g. field:value with +AND+ between terms. openfda.brand_name:aspirin |
limit | integer | Optional | Results per page, max 1000. 10 |
skip | integer | Optional | Pagination offset, max 25000. 10 |
count | string | Optional | Aggregate counts by a field instead of returning records. patient.reaction.reactionmeddrapt.exact |
Response fields
meta.disclaimerstring- FDA's explicit warning not to use this for medical decisions — read it.
meta.results.totalinteger- Total matching records.
results[]array- The records; shape differs entirely by endpoint.
results[].openfdaobject- Normalised drug identifiers — brand name, generic name, manufacturer.
results[].indications_and_usagearray- On drug labels, the approved uses.
results[].warningsarray- Label warnings and precautions.
What you can build with the openFDA API
- Look up official prescribing information for a medication
- Analyse adverse event reports for a drug or device
- Monitor food and drug recalls
- Support pharmacovigilance and health research
Common errors and how to fix them
404 with NOT_FOUND
No records matched — returned as an error rather than an empty array.
Fix: Handle 404 as 'no results' rather than a failure.
400 on the search syntax
Malformed Lucene query.
Fix: Use field:value with +AND+ between terms, and append .exact for exact matching on some fields.
429
Rate limit exceeded.
Fix: Without a key you get 1,000 requests per day. Register a free key for 120,000.
openFDA API — frequently asked questions
Is the openFDA API free?
Yes, free with no API key at a lower limit of 1,000 requests per day. A free API key raises that to 120,000 per day.
Can I use this for medical advice?
No. The FDA includes an explicit disclaimer in every response stating the data must not be used for decisions about medical care. Adverse event reports in particular are unverified submissions, not proven causal links.
Why does a search with no matches return 404?
openFDA signals an empty result set with a 404 and a NOT_FOUND error rather than an empty array. Handle it as a normal no-results case.
What does the count parameter do?
It returns aggregated counts grouped by a field instead of individual records — useful for finding the most frequently reported adverse reactions for a drug, for example.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
openFDA is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.