# Changelog of Open Food Facts Scraper — Nutrition, Barcode & Labels (`logiover/open-food-facts-scraper`) Actor

- **URL**: https://apify.com/logiover/open-food-facts-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/open-food-facts-scraper.md

## Changelog

### 2026-09-01

- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.

### 2026-08-11

- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.

### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Fixed Unicode brand slugging (for example Nestlé no longer becomes the invalid nestl- tag), verifies degraded brand-facet responses through broader official API pages with exact local brand matching, and makes transport-wide worker failures fail explicitly instead of succeeding empty.

### 2026-07-18

- Maintenance & reliability pass — re-verified end-to-end against live data via the Apify API; confirmed the Actor completes successfully and returns non-empty, well-formed results within the 5-minute quality window on its default input.
- Refreshed build so the latest version is current; no change to inputs, output fields or scraping logic.

### 2026-07-12

- Empty input now returns broad, popular data (search across common categories sorted by popularity) — no field is required.
- Added **Country** filter as a dropdown (`select`) with 50+ comprehensive options and human-readable labels.
- Added **Sort By** dropdown (popularity, product name, newest, recently modified, Nutri-Score, NOVA, scan count); default = most-scanned/popular.
- Output quality: numeric fields (`nova_group`, all `*_100g` nutriments) are now real numbers instead of strings/mixed.
- Added new fields: `saturated_fat_100g`, `carbohydrates_100g`, `fiber_100g`, `sodium_100g`, `allergens`, `ecoscore_grade` (existing keys unchanged).
- Proxy: uses Apify Proxy AUTO (no forced DATACENTER); falls back to a direct connection on the final retry (public API).
- Added a ~4-minute time budget to long paginations — pushes what was collected and exits successfully.
- Dataset schema: added per-field `fields` JSON schema (titles + descriptions) and numeric `format: number` for numeric columns; output & dataset schemas linked in `.actor/actor.json`.
