# Changelog of FDA Recall Monitor 🚨 (device, drug, food alerts) (`tagadanar/openfda-recall-monitor`) Actor

- **URL**: https://apify.com/tagadanar/openfda-recall-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/tagadanar/openfda-recall-monitor.md

## Changelog

### 2026-09-08

- **A run can no longer spend more time than it has.** The retry ladder booked
  its worst case up front — five attempts at a 30-second timeout plus up to 31
  seconds of backoff, about 181 seconds for a single request — under loops with
  no ceiling. Because everything was collected before anything was delivered, a
  run killed by the platform timeout handed back nothing at all and could not
  even say why.
- Every request now plans against the time actually left, and a run that hits
  its limit delivers what it did read, then says plainly that the result is
  PARTIAL and names what it never reached — rather than reporting an empty
  search, which is a claim it has not earned.
- A request the source rejects outright (a 4xx that is not a rate limit) leaves
  the ladder at once instead of being retried five times.

### 2026-08-30

- Every run now finishes with a status message that says what actually
  happened, chosen from counters rather than from an empty dataset. A run that
  returned nothing now distinguishes: an openFDA category endpoint stopped
  answering (and how many categories had been read when it did, so a partial
  sweep is never passed off as a complete one); the API answered but reported
  an empty enforcement archive on a control query with no search clause (an
  upstream change, ours to fix, never blamed on your search); no recall matches
  your search; the monitor seeded its baseline; the monitor found nothing new
  or changed. Previously an empty result either failed the run outright or left
  the run card blank.
- README: the recall-found price is now stated per 1,000 with the real
  plan-discount steps, and the flat digest fee is named as flat.

### 2026-08-19

- The User-Agent contact is now the actor's own Apify URL instead of an email
  address. Same identification, same reachability (the actor page's Issues tab),
  no published mailbox.

### 2026-07-13

- README: actor-start fee corrected from the old $0.00005 default to the live $0.001 floor, and the "no minimum" claim removed.

### 2026-07-12

- List inputs now accept datasets piped straight from another scraper: entries
  that are objects are read through their usual key names (url/link,
  query/keyword/title, name/company and similar) instead of being rejected.

### 2026-07-11

- Billing: on paid runs every row is billed before it is written, and a run
  now stops visibly if billing fails instead of continuing unbilled.

### 2026-07-09

- Initial public release on Apify Store.
- Monitor US FDA recalls across device, drug and food enforcement databases.
- Filter by recalling firm or product keyword, classification (Class I/II/III),
  status (Ongoing/Completed/Terminated) and a look-back window in days.
- Monitor mode: persistent seen-set returns only new recalls plus any whose
  status changed since the last run, tagged new or status-changed with the
  previous status.
- Slack-compatible webhook digest for new or changed recalls only.
- Official openFDA enforcement REST API, no API key. Zero matches return an
  empty result instead of failing the run.
