openfda_drug_approvals
Retrieve FDA drug approval records with sponsor, brand, ingredient, and application number filters. Shows product details, submission history, and marketing status.
Instructions
Search openFDA Drugs@FDA DRUG APPROVALS — FDA-approved drug applications (NDA/ANDA/BLA) with the sponsor, application number, each approved product (brand + generic/active-ingredient name, dosage form, route, marketing status), and the submission/approval history (openFDA /drug/drugsfda.json; api.fda.gov). Answers 'what drugs did sponsor X get approved, and which are still marketed' — pharma vendor product/approval intelligence. KEYLESS (an OPTIONAL free OPENFDA_API_KEY only RAISES the rate limit — keyless works at ~1000 requests/day; NEVER throws for a missing key; api_key_status lists every source's key requirement). Input: STRUCTURED filters — sponsorName (→sponsor_name), brandName (→products.brand_name), activeIngredient (→products.active_ingredients.name), applicationNumber (→application_number) — safely escaped into the openFDA search= Lucene string (NO raw passthrough — injection-safe), plus limit (1..100, default 25) and skip (offset ≥0). Returns { applications:[{ applicationNumber, sponsorName, products:[{ brandName, genericIngredients:[{name,strength}], dosageForm, route, marketingStatus }], submissions:[{ submissionType, submissionNumber, submissionStatus, submissionStatusDate, submissionClass }] }] } + honest _meta. HONESTY: totalAvailable is openFDA's EXACT meta.results.total (skip/limit pagination — never results.length); every scalar is null-never-empty-string; a 'Discontinued' marketingStatus is NOT an approval revocation (disclosed in _meta). ★A no-match query returns openFDA HTTP 404 NOT_FOUND ⇒ an HONEST EMPTY (returned:0/total:0), NOT an error; a 400 ⇒ invalid_input surfacing openFDA's message; a 5xx ⇒ THROWS; a 200 non-JSON ⇒ schema_drift. The optional key rides ONLY the &api_key= query param — never logged or echoed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Row offset for pagination (default 0). Page with _meta.pagination.nextOffset. | |
| limit | No | Max application records to return (default 25, max 100). Offset-paginated via skip. | |
| brandName | No | Product brand name (→ products.brand_name), e.g. 'lipitor'. Matched as an escaped Lucene phrase. | |
| sponsorName | No | Sponsor / applicant company name (→ sponsor_name), e.g. 'pfizer'. Matched as an escaped Lucene phrase. | |
| activeIngredient | No | Active ingredient name (→ products.active_ingredients.name), e.g. 'atorvastatin calcium'. Matched as an escaped Lucene phrase. | |
| applicationNumber | No | FDA application number (→ application_number), e.g. 'NDA050347'. Matched as an escaped Lucene phrase. |