# Changelog of Gleif Lei Scraper (`normdata/gleif-lei-scraper`) Actor

- **URL**: https://apify.com/normdata/gleif-lei-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/normdata/gleif-lei-scraper.md

## Changelog

### 2026-09-19

- Initial build: 5 modes (registry/search/lookup/subsidiaries/parents) reading GLEIF's own real,
  official REST API directly - no key, no login, zero anti-bot friction confirmed live under
  sustained requests.
- **Real architectural finding that reshaped the build:** GLEIF's own registry has a practical
  result ceiling on large requests that a real competitor works around by manually splitting
  requests into smaller pieces. Found and used GLEIF's own intended, cleaner way to pull large
  result sets in one pass instead, with no gaps and no splitting logic needed.
- **Real, verified edge over the closest competitor:** when a company has no reported parent,
  this Actor surfaces the real, documented reason why - confirmed live against real companies. The
  closest competitor's own documented output doesn't carry this at all.
- **Real bug found and fixed before shipping:** a network hiccup on one country under concurrent
  multi-country load could crash the entire run instead of just skipping that one country. Fixed;
  re-verified with a 10-country, 1,000-row run completing clean afterward.
- **Real correctness fix:** a request failure in `parents`/`subsidiaries` mode was initially
  indistinguishable from a genuine "nothing reported" result, which could have falsely reported a
  reason for a lookup that never actually completed. Fixed by tracking failure state separately
  from a real empty result.
- Bottleneck-tested locally: 2,000 rows across 5 countries in 15s; 1,000 rows across 10 countries in
  40s (perfect per-country fairness confirmed both times, 0 duplicates).
- 8 unit tests, 38 `expect()` calls, against real saved API response fixtures.
- Full live field audit against `dataset_schema.json` across registry and parents modes: 40/40
  fields match with zero discrepancy.
