# Changelog of DeFiLlama Scraper — TVL, Yields & Stablecoins (`logiover/defillama-scraper`) Actor

- **URL**: https://apify.com/logiover/defillama-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/defillama-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.

### 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

- **Everything is now optional.** Removed the required `mode` field — running with empty input `{}` returns every DeFi protocol ranked by TVL.
- **User-friendly dropdown.** `chainFilter` is now a select menu of the major blockchains (with an "All chains" option) instead of free text.
- **Protocol Detail no longer errors on empty input.** With no `slugs` it falls back to the top protocols so the run still returns data.
- **Numbers are real numbers.** Every numeric field (tvl, tvlUsd, change1d, change7d, mcap, mcapTvl, apy, apyBase, apyReward, circulating, circulatingPrevDay, price) is now a JSON number instead of a string. `stablecoin` is now a real boolean.
- **Fixed proxy handling.** Removed the hand-built proxy URL that defaulted to the (dead) RESIDENTIAL group. Proxy now uses Apify's automatic selection via `Actor.createProxyConfiguration`, and the last retry drops the proxy to connect directly to the public API.
- **Graceful runs & retries.** Added retry-with-backoff on non-200 responses and switched the top-level handler to log errors instead of hard-failing the run.
- **Schemas.** Added a full `fields` JSON-schema (title + description per field) to the dataset schema; the `stablecoin` column now displays as a boolean. Output and dataset schemas are linked in `.actor/actor.json`.
