Reference · built on requestCommons signalHazards & public safety

openFDA Enforcement Reports

Food, drug, and device recall enforcement reports from the FDA Recall Enterprise System as JSON via api.fda.gov, updated weekly.

About

openFDA is the U.S. Food and Drug Administration's public API. Its enforcement endpoints return data from the FDA Recall Enterprise System (RES) for food, drug, and device recalls, covering publicly releasable records from 2004 to present and updated weekly. An enforcement report is FDA's record of a classified recall, with a classification of Class I, II, or III, a status of On-Going, Completed, Terminated, or Pending, and fields such as recalling_firm, product_description, reason_for_recall, code_info, distribution_pattern, and report_date. Queries use search=field:term with limit and skip against https://api.fda.gov/food/enforcement.json, /drug/enforcement.json, and /device/enforcement.json.

On Fibric, an operator matches new reports to the lots you hold or the SKUs you sell and proposes a quarantine, a hold, or a return routing for your approval, with the recall_number and reason attached.

This is a reference listing. It documents what Fibric would read from openFDA Enforcement Reports and what it could propose, based on the publisher's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • Food enforcement reports from /food/enforcement.json; drug and device reports from /drug/enforcement.json and /device/enforcement.json
  • classification (Class I, II, III), status (On-Going, Completed, Terminated, Pending), and voluntary_mandated on every record
  • recalling_firm, city, state, country, product_description, product_quantity, product_type, and product_code
  • reason_for_recall, code_info with lot and serial numbers, and distribution_pattern for the initial distribution area
  • recall_initiation_date, center_classification_date, report_date, and termination_date
  • recall_number and event_id, the FDA designations used to track a recall and its event
  • Query parameters search, count, limit, and skip, with a maximum limit of 1000 per call

Proposed actions

Read-only. This feed informs operators; it changes nothing.

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Quarantine a lot named in a new report

    Search food enforcement with report_date in your polling window and match code_info to lots on hand. On a match, the operator proposes a quarantine and cites recall_number and classification.

    With Lot Quarantine

  • Log the recall check in the food safety record

    Each run, record which reports were checked and which matched. The operator proposes the log entry, with the report_date range and the openFDA query used.

    With Food Safety Log

  • Hold a SKU while the recall is On-Going

    When product_description matches a SKU you sell and status is On-Going, the operator proposes a hold on the SKU and lists the affected lots from code_info.

    With Quality Hold

  • Route returns of a recalled product

    Match open return requests to recalling_firm and product_description. The operator proposes routing them under the recall reason instead of the standard return flow.

    With Returns Triage

Requirements

  • HTTPS calls to https://api.fda.gov; openFDA states it requires HTTPS for all queries
  • A free API key if you poll regularly; signing up means accepting the openFDA terms of service
  • Your lot codes, product names, or firm names to match against code_info, product_description, and recalling_firm
  • Request pacing within 240 requests per minute, and 1,000 per day without a key or 120,000 per day with one
Authentication
A free openFDA api_key, passed as the api_key query parameter or as a basic auth username; requests without a key are allowed at a lower daily limit.

Limits

  • FDA does not update recall status after initial classification, so status in the API may lag the recall's real state
  • openFDA says not to use the data to issue alerts to the public or to track the lifecycle of a recall
  • The API returns one record unless limit is set, and no more than 1000 per call; large pulls need skip or the bulk downloads
  • distribution_pattern is free text such as nationwide or a list of states, not a structured geography

Access and pricing

Reference listing. Public feed access is separate from Fibric integration. If you request this feed, your quote covers the build, usage, and support.

Request openFDA Enforcement Reports ↗

Questions and answers

Is an openFDA key required?
The authentication page says a key is required, then lists limits for calls without one: 240 requests per minute and 1,000 per day per IP address. With a key the daily limit is 120,000 per key. The key is free and passed as api_key or as a basic auth username.
What do the classifications mean?
Class I covers products that could cause serious health problems or death, such as food with undeclared allergens. Class II covers products that might cause a temporary health problem. Class III covers products unlikely to cause harm but that violate FDA labeling or manufacturing rules. These are FDA's definitions in the field reference.
Can I use the data commercially?
Yes. The openFDA terms say the content, data, documentation, and code are public domain under a Creative Commons CC0 1.0 Universal dedication unless otherwise noted. FDA asks for credit but does not require it, and marks any third-party content that is not public domain.
Ask about openFDA Enforcement Reports

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.