# FDA API

> FDA returns drug, food, and device recalls, medicine labels, and reported side effects as a workflow and API.

FDA (openFDA) searches drug, food, and device recalls using a medicine, company, product, allergen, or device name. Get drug label uses a brand or generic medicine name to return label uses, directions, ingredients, and safety sections. Get reported side effects uses a brand or generic medicine name to return frequently reported reactions and report counts.

- Page: https://fous.com/workflows/fda
- Handle: `@fda`
- Category: [Health](https://fous.com/workflows/category/health)
- Source website: https://open.fda.gov
- Last verified: Sep 28, 2026
- Fous is not affiliated with FDA.

## Methods

### Get drug label

Operation `get_drug_label`, version 1. 1 credit per call.

Get the latest matching FDA drug label for a brand or generic medicine, including uses, directions, safety sections, ingredients and a DailyMed link. Some sections are absent from individual labels.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `medicine` | string | yes | `"Tylenol"` | The brand or generic medicine name, for example Tylenol or sertraline. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "medicine"
  ],
  "properties": {
    "medicine": {
      "type": "string",
      "minLength": 1,
      "description": "The brand or generic medicine name, for example Tylenol or sertraline.",
      "examples": [
        "Tylenol",
        "sertraline",
        "Zoloft"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "medicine": "Tylenol"
    },
    {
      "medicine": "sertraline"
    },
    {
      "medicine": "Zoloft"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `type` | string or null | `"Over the counter"` | Prescription or over the counter. |
| `used_for` | string or null | `"Uses temporarily relieves the following cold/flu symptoms: minor aches and pains headache sore throat sneezing and runn` | Uses and indications from the label. |
| `warnings` | string or null |  | Warnings or warnings and precautions from the label. |
| `brand_name` | string or null | `"Childrens TYLENOL COLD plus COUGH plus RUNNY NOSE"` | Brand name on the selected label. |
| `how_to_take` | string or null |  | Directions or dosage and administration from the label. |
| `generic_name` | string or null | `"ACETAMINOPHEN, CHLORPHENIRAMINE MALEATE, AND DEXTROMETHORPHAN HYDROBROMIDE"` | Generic name on the label. |
| `manufacturer` | string or null | `"Kenvue Brands LLC"` | Manufacturer or labeler listed by the FDA. |
| `boxed_warning` | string or null |  | Boxed warning, if any. |
| `dailymed_link` | string or null | `"https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=5b95905e-b729-4caf-921a-fc4ef815289c"` | Link to the label on DailyMed. |
| `active_ingredients` | string or null | `"Active ingredients (in each 5 mL) Purposes Acetaminophen 160 mg Pain reliever/fever reducer Chlorpheniramine maleate 1 ` | Active ingredients and strengths from the label, when available. |
| `common_side_effects` | string or null | `"When using this product do not exceed recommended dose (see overdose warning ) marked drowsiness may occur sedatives an` | Adverse reactions or side effects listed on the label. |
| `label_effective_date` | string or null | `"2026-08-25"` | Date this label became effective, in YYYY-MM-DD format. |
| `pregnancy_information` | string or null |  | Pregnancy information in the label. |

**Example input**

```json
{
  "medicine": "Tylenol"
}
```

**Example output**

```json
{
  "type": "Over the counter",
  "used_for": "Uses temporarily relieves the following cold/flu symptoms: minor aches and pains headache sore throat sneezing and runny nose cough temporarily reduces fever",
  "warnings": "Warnings Liver warning This product contains acetaminophen. Severe liver damage may occur if your child takes more than 5 doses in 24 hours, which is the maximum daily amount with other drugs containi…",
  "brand_name": "Childrens TYLENOL COLD plus COUGH plus RUNNY NOSE",
  "how_to_take": "Directions this product does not contain directions or complete warnings for adult use do not give more than directed (see overdose warning ) shake well before using mL = milliliter find right dose on…",
  "generic_name": "ACETAMINOPHEN, CHLORPHENIRAMINE MALEATE, AND DEXTROMETHORPHAN HYDROBROMIDE",
  "manufacturer": "Kenvue Brands LLC",
  "boxed_warning": null,
  "dailymed_link": "https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=5b95905e-b729-4caf-921a-fc4ef815289c",
  "active_ingredients": "Active ingredients (in each 5 mL) Purposes Acetaminophen 160 mg Pain reliever/fever reducer Chlorpheniramine maleate 1 mg Antihistamine Dextromethorphan HBr 5 mg Cough suppressant",
  "common_side_effects": "When using this product do not exceed recommended dose (see overdose warning ) marked drowsiness may occur sedatives and tranquilizers may increase drowsiness excitability may occur, especially in chi…",
  "label_effective_date": "2026-08-25",
  "pregnancy_information": null
}
```

### Get reported side effects

Operation `get_reported_side_effects`, version 1. 1 credit per call.

Get the most frequently reported reaction terms for a brand or generic medicine in FDA adverse-event reports. Reports can include non-symptom terms and do not establish causation.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `medicine` | string | yes | `"semaglutide"` | Brand or generic medicine name, for example Ozempic. |
| `max_results` | integer | no | `3` | Maximum number of reaction terms to show, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "medicine"
  ],
  "properties": {
    "medicine": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "Brand or generic medicine name, for example Ozempic.",
      "examples": [
        "semaglutide",
        "Ozempic",
        "Tylenol"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of reaction terms to show, for example 20.",
      "x-fous-developer": true,
      "examples": [
        3,
        100
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "medicine": "semaglutide",
      "max_results": 3
    },
    {
      "medicine": "Ozempic"
    },
    {
      "medicine": "Tylenol",
      "max_results": 100
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `reactions` | array |  | Reaction terms, ordered by report count from highest to lowest. Some terms describe use or reporting rather than symptoms. |
| `reactions[].page_url` | string | `"https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.o` | FDA results for reports matching this medicine and reaction. |
| `reactions[].reaction` | string | `"Nausea"` | FDA reaction term in words. |
| `reactions[].report_count` | integer | `11534` | Number of matching reports listing this reaction. |
| `reactions[].share_of_all_reports_percent` | number | `14.46` | Percentage of all matching reports listing this reaction. |
| `total_reports` | integer | `79767` | Total FDA adverse-event reports mentioning the medicine. |
| `causality_note` | string | `"These reports do not prove the medicine caused the reaction. Reporting rates cannot be used to estimate the chance of a` | Caution about interpreting reports. |
| `medicine_name_matched` | string | `"semaglutide"` | Medicine name used to find matching reports. |
| `serious_reports_percent` | number | `51.96` | Percentage of matching reports marked serious. |

**Example input**

```json
{
  "medicine": "semaglutide",
  "max_results": 3
}
```

**Example output**

```json
{
  "reactions": [
    {
      "page_url": "https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.openfda.brand_name.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.openfda.generic_name%…",
      "reaction": "Nausea",
      "report_count": 11534,
      "share_of_all_reports_percent": 14.46
    },
    {
      "page_url": "https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.openfda.brand_name.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.openfda.generic_name%…",
      "reaction": "Off label use",
      "report_count": 7774,
      "share_of_all_reports_percent": 9.75
    },
    {
      "page_url": "https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.openfda.brand_name.exact%3A%22SEMAGLUTIDE%22+OR+patient.drug.openfda.generic_name%…",
      "reaction": "Vomiting",
      "report_count": 7693,
      "share_of_all_reports_percent": 9.64
    }
  ],
  "total_reports": 79767,
  "causality_note": "These reports do not prove the medicine caused the reaction. Reporting rates cannot be used to estimate the chance of a side effect.",
  "medicine_name_matched": "semaglutide",
  "serious_reports_percent": 51.96
}
```

### Search device recalls

Operation `search_device_recalls`, version 1. 1 credit per call.

Find FDA medical device recalls by device or company name, newest first. Records may lag recent recall activity; consult the FDA record for current guidance.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"insulin pump"` | Device or company name to search, for example insulin pump or Philips. |
| `since_date` | string | no | `"2026-08-01"` | Include recalls initiated on or after this date, for example 2025-01-01. Leave blank for no date limit. |
| `max_results` | integer | no | `5` | Most recalls to return, for example 20. Maximum 100. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Device or company name to search, for example insulin pump or Philips.",
      "examples": [
        "insulin pump",
        "Philips",
        "nonsuchimpossibledevicename482907"
      ]
    },
    "since_date": {
      "type": "string",
      "format": "date",
      "description": "Include recalls initiated on or after this date, for example 2025-01-01. Leave blank for no date limit.",
      "examples": [
        "2026-08-01"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Most recalls to return, for example 20. Maximum 100.",
      "x-fous-developer": true,
      "examples": [
        5,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "insulin pump"
    },
    {
      "query": "Philips",
      "since_date": "2026-08-01",
      "max_results": 5
    },
    {
      "query": "nonsuchimpossibledevicename482907",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `device_recalls` | array |  | Medical device recalls ordered by initiation date, newest first. |
| `device_recalls[].reason` | string or null |  | Reason for the recall. |
| `device_recalls[].status` | string or null |  | FDA-published recall status. |
| `device_recalls[].company` | string or null |  | Company recalling the device. |
| `device_recalls[].page_url` | string |  | FDA page for this individual recalled device. |
| `device_recalls[].what_to_do` | string or null |  | FDA-published recall action or instructions, when stated. |
| `device_recalls[].device_name` | string or null |  | FDA product description of the recalled device. |
| `device_recalls[].recall_date` | string or null |  | Date the firm initiated the recall. |
| `device_recalls[].seriousness` | string or null |  | FDA recall class and its health-risk meaning, when classified. |
| `device_recalls[].product_code` | string or null |  | FDA product code. |
| `device_recalls[].recall_number` | string or null |  | FDA recall number. |

**Example input**

```json
{
  "query": "nonsuchimpossibledevicename482907",
  "max_results": 3
}
```

**Example output**

```json
{
  "device_recalls": []
}
```

### Search drug recalls

Operation `search_drug_recalls`, version 1. 1 credit per call.

Find FDA drug recalls by medicine or company name, newest first. Covers FDA drug enforcement records; recent recalls may not yet appear.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"metformin"` | Medicine or company name, for example metformin or Pfizer. |
| `status` | string | no | `"ongoing"` | Recall status to include, for example ongoing. |
| `since_date` | string | no | `"2024-01-01"` | Include recalls started on or after this date, for example 2024-01-01. |
| `max_results` | integer | no | `5` | Maximum number of recalls to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Medicine or company name, for example metformin or Pfizer.",
      "examples": [
        "metformin",
        "Pfizer",
        "xyznosuchdrugqxx"
      ]
    },
    "status": {
      "enum": [
        "any",
        "ongoing",
        "completed"
      ],
      "type": "string",
      "default": "any",
      "description": "Recall status to include, for example ongoing.",
      "examples": [
        "ongoing",
        "completed"
      ]
    },
    "since_date": {
      "type": "string",
      "format": "date",
      "description": "Include recalls started on or after this date, for example 2024-01-01.",
      "examples": [
        "2024-01-01"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of recalls to return, for example 20.",
      "x-fous-developer": true,
      "examples": [
        5,
        3,
        2
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "metformin"
    },
    {
      "query": "Pfizer",
      "status": "ongoing",
      "since_date": "2024-01-01",
      "max_results": 5
    },
    {
      "query": "xyznosuchdrugqxx"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `recalls` | array |  |  |
| `recalls[].reason` | string or null | `"Lack of Assurance of Sterility."` | Reason for the recall. |
| `recalls[].status` | string or null | `"Ongoing"` | Current recall status in words. |
| `recalls[].company` | string or null | `"PFIZER INC"` | Recalling company. |
| `recalls[].page_url` | string | `"https://api.fda.gov/drug/enforcement.json?search=recall_number%3A%22D-0590-2025%22&limit=1"` | Link to this FDA recall record. |
| `recalls[].seriousness` | string or null | `"Class II: may cause temporary or reversible health problems"` | FDA recall class and what it means. |
| `recalls[].recall_number` | string or null | `"D-0590-2025"` | FDA recall number. |
| `recalls[].distributed_in` | string or null | `"U.S. Nationwide"` | Areas where the medicine was distributed. |
| `recalls[].quantity_recalled` | string or null | `"49,620 vials"` | Quantity recalled, including units. |
| `recalls[].recall_start_date` | string or null | `"2025-08-04"` | Date the recall began, YYYY-MM-DD. |
| `recalls[].product_description` | string or null | `"Vial Label: Epinephrine Injection, USP, 1mg/10mL (0.1 mg/mL), Rx only, Distributed by Hospira, Inc., Lake Forest, IL 60` | Recalled medicine and packaging description. |

**Example input**

```json
{
  "query": "Pfizer",
  "status": "ongoing",
  "since_date": "2024-01-01",
  "max_results": 5
}
```

**Example output**

```json
{
  "recalls": [
    {
      "reason": "Lack of Assurance of Sterility.",
      "status": "Ongoing",
      "company": "PFIZER INC",
      "page_url": "https://api.fda.gov/drug/enforcement.json?search=recall_number%3A%22D-0590-2025%22&limit=1",
      "seriousness": "Class II: may cause temporary or reversible health problems",
      "recall_number": "D-0590-2025",
      "distributed_in": "U.S. Nationwide",
      "quantity_recalled": "49,620 vials",
      "recall_start_date": "2025-08-04",
      "product_description": "Vial Label: Epinephrine Injection, USP, 1mg/10mL (0.1 mg/mL), Rx only, Distributed by Hospira, Inc., Lake Forest, IL 60045, USA. NDC 0409-4933-05.  Case: NDC 0409-4933-10."
    },
    {
      "reason": "Lack of Assurance of Sterility.",
      "status": "Ongoing",
      "company": "PFIZER INC",
      "page_url": "https://api.fda.gov/drug/enforcement.json?search=recall_number%3A%22D-0591-2025%22&limit=1",
      "seriousness": "Class II: may cause temporary or reversible health problems",
      "recall_number": "D-0591-2025",
      "distributed_in": "U.S. Nationwide",
      "quantity_recalled": "15,750 vials",
      "recall_start_date": "2025-08-04",
      "product_description": "Vial Label: 8.4% Sodium Bicarbonate Injection, USP, 50mEq/50 mL (1 mEq/mL), Rx only, Hospira, Inc., Lake Forest, IL 60045, USA, NDC 0409-6637-24.  Case NDC: 00409-6637-14."
    }
  ]
}
```

### Search food recalls

Operation `search_food_recalls`, version 1. 1 credit per call.

Find FDA food recall enforcement reports by product, brand, or allergen, newest first. Reports are updated weekly and recall statuses may lag.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"ice cream"` | Product, brand, or allergen to search for, for example peanut or ice cream. |
| `state` | string | no | `"New York"` | State name or two-letter code where the recall was distributed, for example California or CA. |
| `since_date` | string | no | `"2025-01-01"` | Earliest recall start date in YYYY-MM-DD, for example 2025-01-01. |
| `max_results` | integer | no | `5` | Most recalls to return, for example 20 (maximum 100). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Product, brand, or allergen to search for, for example peanut or ice cream.",
      "examples": [
        "ice cream",
        "peanut",
        "unlikelywordneverfda12345"
      ]
    },
    "state": {
      "type": "string",
      "description": "State name or two-letter code where the recall was distributed, for example California or CA.",
      "examples": [
        "New York",
        "NY"
      ]
    },
    "since_date": {
      "type": "string",
      "format": "date",
      "description": "Earliest recall start date in YYYY-MM-DD, for example 2025-01-01.",
      "examples": [
        "2025-01-01"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Most recalls to return, for example 20 (maximum 100).",
      "x-fous-developer": true,
      "examples": [
        5,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "ice cream",
      "state": "New York",
      "since_date": "2025-01-01",
      "max_results": 5
    },
    {
      "query": "peanut"
    },
    {
      "query": "unlikelywordneverfda12345",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `recalls` | array |  | Matching food recalls, newest first. |
| `recalls[].reason` | string or null | `"Foreign object: products may contain glass pieces"` | Reason for the recall. |
| `recalls[].status` | string or null | `"Ongoing"` | Recall status in words. |
| `recalls[].company` | string or null | `"Dreyer's Grand  Ice Cream Inc."` | Recalling company. |
| `recalls[].page_url` | string or null | `"https://api.fda.gov/food/enforcement.json?search=recall_number%3A%22H-1265-2026%22"` | Link to this recall record. |
| `recalls[].seriousness` | string or null | `"Class II: may cause temporary or reversible health problems"` | Health risk classification explained in words. |
| `recalls[].recall_number` | string or null | `"H-1265-2026"` | FDA recall number. |
| `recalls[].distributed_in` | string or null | `"The adulterated product was distributed to the following States: AL, AR, AZ, CA,CO,CT, FL,GA, IA,ID, IL, KS, LA, MA,MD,` | Where the recalled product was distributed. |
| `recalls[].recall_start_date` | string or null | `"2026-08-18"` | Date the recall began. |
| `recalls[].product_description` | string or null | `"Outshine Fruit Bar Watermelon, 6-Count 2.5 ounce with UPC 041548413624, packaged in paper outer cartons; individual fru` | Recalled product. |

**Example input**

```json
{
  "query": "ice cream",
  "state": "New York",
  "since_date": "2025-01-01",
  "max_results": 5
}
```

**Example output**

```json
{
  "recalls": [
    {
      "reason": "Foreign object: products may contain glass pieces",
      "status": "Ongoing",
      "company": "Dreyer's Grand  Ice Cream Inc.",
      "page_url": "https://api.fda.gov/food/enforcement.json?search=recall_number%3A%22H-1265-2026%22",
      "seriousness": "Class II: may cause temporary or reversible health problems",
      "recall_number": "H-1265-2026",
      "distributed_in": "The adulterated product was distributed to the following States: AL, AR, AZ, CA,CO,CT, FL,GA, IA,ID, IL, KS, LA, MA,MD,MI, MN,MO, NC, ND, NH, NJ, NV, NY, OH, PA, PR, TN TX, UT, VA, VI, WA, and WI.",
      "recall_start_date": "2026-08-18",
      "product_description": "Outshine Fruit Bar Watermelon, 6-Count 2.5 ounce with UPC 041548413624, packaged in paper outer cartons; individual fruit bars in plastic wrapper.  Keep at 0F (-18C) or colder."
    },
    {
      "reason": "Foreign object: products may contain glass pieces",
      "status": "Ongoing",
      "company": "Dreyer's Grand  Ice Cream Inc.",
      "page_url": "https://api.fda.gov/food/enforcement.json?search=recall_number%3A%22H-1266-2026%22",
      "seriousness": "Class II: may cause temporary or reversible health problems",
      "recall_number": "H-1266-2026",
      "distributed_in": "The adulterated product was distributed to the following States: AL, AR, AZ, CA,CO,CT, FL,GA, IA,ID, IL, KS, LA, MA,MD,MI, MN,MO, NC, ND, NH, NJ, NV, NY, OH, PA, PR, TN TX, UT, VA, VI, WA, and WI.",
      "recall_start_date": "2026-08-18",
      "product_description": "Outshine Fruit Bars Grape, 6-Count 2.5 ounce, with UPC 041548244044, packaged in paper outer cartons; individual fruit bars in plastic wrapper.  Keep at 0F (-18C) or colder."
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@fda",
  "visibility": "public",
  "operation": "get_drug_label",
  "version": 1,
  "input": {
    "medicine": "Tylenol"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@fda\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_drug_label\",\n  \"version\": 1,\n  \"input\": {\n    \"medicine\": \"Tylenol\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@fda",
  "visibility": "public",
  "operation": "get_drug_label",
  "version": 1,
  "input": {
    "medicine": "Tylenol"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@fda","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Track recalls affecting medicines, foods, or medical devices
- Review recalled product details and health-risk classifications
- Find medicine label directions, ingredients, and warnings
- Compare frequently reported reactions for a medicine
- Filter recall searches by date, status, or location

## FAQ

### Is Fous affiliated with FDA?

No. Fous is not affiliated with FDA. This workflow reads the public open.fda.gov website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a FDA account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from open.fda.gov when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 28, 2026.

### Has a medicine been recalled?

Search drug recalls by medicine or company name with Search drug recalls.

### Has a food product been recalled?

Search food recalls by product, brand, or allergen with Search food recalls.

### What warnings are on a medicine's label?

Get drug label returns label warnings, boxed warnings when present, and other available sections.

## Related

- [Drugs.com API](https://fous.com/workflows/drugs-com.md): Drugs.com provides public medicine guides, interaction and food or lifestyle warnings for 2–10 medicines, pill matches by imprint, color, or shape, and listed US cash prices by strength, form, and quantity.
- [CPSC API](https://fous.com/workflows/cpsc.md): U.S. Consumer Product Safety Commission recalls and product safety information.
- [USDA FoodData Central API](https://fous.com/workflows/usda-fooddata-central.md): USDA FoodData Central provides food composition, nutrition facts per 100 g or chosen listed portions, and relevant food and branded-product search results; missing data may be unavailable.
- [Open Food Facts API](https://fous.com/workflows/open-food-facts.md): Open Food Facts provides public packaged-food information, including ingredients, allergens, nutrition, and product classifications; coverage varies, and search results favor popular products.
- [ClinicalTrials.gov API](https://fous.com/workflows/clinicaltrials-gov.md): ClinicalTrials.gov helps users find studies and view public trial records, including sponsor-run or funded studies; site distances are approximate, and contacts, eligibility, or exact dates may be missing.
- [NHTSA API](https://fous.com/workflows/nhtsa.md): NHTSA provides vehicle details, model-level recalls, 5-Star Safety Ratings, owner complaints, and listed car, SUV, and truck models; data may be missing, and recalls do not confirm repairs.
- [Carfax API](https://fous.com/workflows/carfax.md): Carfax provides used-car listings near a US ZIP code with free history highlights, plus open safety recalls reported by CARFAX for a VIN or US plate.
- [NHS API](https://fous.com/workflows/nhs.md): NHS provides condition and medicine guidance, with condition dates reflecting the latest pages used, and nearby England service listings ordered by distance; availability details may be missing.
- [All Health workflows](https://fous.com/workflows/category/health)
