# FDA Recalls API
> Search official US FDA product recalls — food, drugs and medical devices — from the openFDA enforcement reports. Filter by category, recalling firm, US state, hazard classification (Class I/II/III) and recall status, or look up a single recall by its number. Each record includes the firm, product, reason for recall, distribution and dates. Ideal for compliance monitoring, food-safety, pharma QA, insurance and legal research.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/recalls-api/..."
```

## Pricing
- **Free** (Free) — 1,000 calls/Mo, 2 req/s
- **Starter** ($12/Mo) — 30,000 calls/Mo, 5 req/s
- **Pro** ($44/Mo) — 250,000 calls/Mo, 15 req/s
- **Enterprise** ($169/Mo) — 2,000,000 calls/Mo, 50 req/s

## Endpoints

### Recalls

#### `GET /v1/recall` — A single recall by category + recall number

**Parameters:**
- `category` (query, required, string) — food | drug | device
- `number` (query, required, string) — FDA recall number

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recalls-api/v1/recall"
```

#### `GET /v1/recalls` — Search FDA recalls by category & filters

**Parameters:**
- `category` (query, required, string) — food | drug | device Example: `food`
- `q` (query, optional, string) — Free-text search in the recall reason Example: `listeria`
- `firm` (query, optional, string) — Recalling firm name
- `state` (query, optional, string) — US state (2-letter code)
- `classification` (query, optional, string) — Hazard class: 1, 2 or 3 (Class I/II/III) Example: `1`
- `status` (query, optional, string) — ongoing | completed | terminated | pending
- `limit` (query, optional, string) — Results per page (1-100, default 20) Example: `20`
- `skip` (query, optional, string) — Pagination offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recalls-api/v1/recalls?category=food&q=listeria&classification=1&limit=20&skip=0"
```

**Response:**
```json
{
    "data": {
        "skip": 0,
        "count": 20,
        "limit": 20,
        "total": 6117,
        "filters": {
            "q": "listeria",
            "firm": null,
            "state": null,
            "status": null,
            "classification": "1"
        },
        "recalls": [
            {
                "state": "FL",
                "status": "Terminated",
                "country": "United States",
                "report_date": "20141210",
                "recall_number": "F-0609-2015",
                "classification": "Class I",
                "recalling_firm": "Oasis Brands, Inc",
                "product_quantity": "144 pieces",
                "reason_for_recall": "Virginia State (VDACS) found Listeria monocytogenes in Lacteos Santa Martha Quesito Casero Fresh Curd (Best by 9/27/14), FDA made an inspection, were the environmental samples collected came up positive also for Listeria monocytogenes, also the Oasis Brands Inc. sent finish products samples to a private lab, the Lacteos Santa Martha Cuajada en Hoja Queso Casero Hecho a Mano Fresh Curd (Best By dates of 10/18/14 and 11/25/14) came also positive for Listeria monocytogenes.  Oasis Brands Inc.  is voluntarily recalling ALL their Lacteos Santa Martha brand products manufactured that are within expiration date.",
                "voluntary_mandated": "Voluntary: Firm initiated",
                "product_description": "Crema GuateLinda (Guatemalan Style Cream) in individually soft poly/plast
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Categories, classifications & data source

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recalls-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "source": "US FDA openFDA enforcement reports (api.fda.gov)",
        "statuses": [
            "Ongoing",
            "Completed",
            "Terminated",
            "Pending"
        ],
        "endpoints": {
            "/v1/recall": "A single recall by category + recall_number.",
            "/v1/recalls": "Search recalls by category (food/drug/device) with firm, state, classification, status and text filters."
        },
        "categories": [
            "food",
            "drug",
            "device"
        ],
        "classifications": {
            "Class I": "dangerous/defective, could cause serious harm or death",
            "Class II": "might cause temporary/reversible harm",
            "Class III": "unlikely to cause harm"
        }
    },
    "meta": {
        "timestamp": "2026-05-31T00:25:27.153Z",
        "request_id": "d0b562ba-3ac4-48c4-ba5a-9dbaeff7e973"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/recalls-api
OpenAPI spec: https://www.oanor.com/api/recalls-api/openapi.json
