# 2s.io FDA Food Recall Enforcement Reports

> 2s.io FDA Food Recall Enforcement Reports is a paid API for AI agents from 2s.io, paid per call via x402, $0.0024/call, status unknown (last checked 2026-09-14, last successful call 2026-07-28).

Fetches FDA food recall enforcement reports from OpenFDA, filterable by product name, classification severity, status, and US state, sorted newest-first.

## Facts

- Endpoint: GET https://2s.io/api/gov/fda-food-recalls
- Price: $0.0024/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Last successful call: 2026-07-28
- Success rate: 100% of calls made through Zero
- Activations on Zero: 52
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-8cb84bb5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_o_kHwb04a0-zqnD-9NEnh

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-8cb84bb5
```

Example prompt: Can you pull the 10 most recent Class I FDA food recalls that are still Ongoing and involve peanut butter, so I can check if any are active right now?

## When to prefer this

Use this endpoint when you need structured, up-to-date FDA food recall enforcement data filtered by product type, severity class, recall status, or recalling firm location. Prefer this over general web search when you need machine-readable recall records with standardized fields like classification, recall number, and distribution pattern. Ideal for food safety monitoring, compliance checks, allergen risk assessment, or public health alerting workflows.

## Known failure modes

- Invalid state code format (not 2 letters) returns a validation error
- Product substring too short (under 2 chars) rejected by schema validation
- No matching records for the given filters returns an empty result list
- OpenFDA upstream unavailability causes a 502/503 error
- Classification value not matching enum (I/II/III) causes a schema rejection
- Limit out of range (below 1 or above 100) returns a validation error

## How this service works

FDA food recall enforcement reports, newest first by report date. All filters optional. Each record includes recall number, status (Ongoing/Completed/Terminated/Pending), classification (Class I/II/III), product description, reason for recall, initial-notification mechanism, voluntary-vs-mandated, recalling firm + city/state/country, distribution pattern, and recall + report dates. Backed by OpenFDA's /food/enforcement endpoint; public-domain US government records.

## Output

A list of FDA food recall records sorted newest-first, each containing recall number, status (Ongoing/Completed/Terminated/Pending), classification (Class I/II/III), product description, reason for recall, initial notification mechanism, whether voluntary or mandated, recalling firm name and location (city/state/country), distribution pattern, and both recall and report dates.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "limit": {
       "type": "integer",
       "default": 20,
       "maximum": 100,
       "minimum": 1,
       "description": "Max recalls (1-100). Default 20."
      },
      "state": {
       "type": "string",
       "maxLength": 2,
       "minLength": 2,
       "description": "Optional 2-letter US state of the recalling firm (e.g., \"CA\", \"TX\")."
      },
      "status": {
       "enum": [
        "Ongoing",
        "Completed",
        "Terminated",
        "Pending"
       ],
       "type": "string",
       "description": "Optional status filter."
      },
      "product": {
       "type": "string",
       "maxLength": 100,
       "minLength": 2,
       "description": "Product-name substring match on the recall description. Examples: \"spinach\", \"peanut butter\", \"infant formula\"."
      },
      "classification": {
       "enum": [
        "I",
        "II",
        "III"
       ],
       "type": "string",
       "description": "Optional class filter. I = life-threatening (e.g., Listeria, undeclared major allergen), II = temporary/reversible health risk, III = unlikely to cause harm (e.g., minor labeling)."
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-8cb84bb5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
