# Changelog of Imovirtual Scraper — Portugal Real Estate Data (`logiover/imovirtual-pt-scraper-portugal-real-estate`) Actor

- **URL**: https://apify.com/logiover/imovirtual-pt-scraper-portugal-real-estate/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/imovirtual-pt-scraper-portugal-real-estate.md

## Changelog

### 2026-09-23

- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 57 columns returned, 76.3% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
- Noted that 12 column(s) came back empty in this sample (`shortDescription`, `market`, `monthlyRent`, `additionalMonthlyCosts`, `terrainAreaSqm`, `totalFloors` and others); these are under review.

### 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.
- Declared 57 dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.
- Declared 57 nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder or brittle to sparse modes.

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

- **Reliability fix — no more silent empty runs.** The default proxy is now plain
  Apify Proxy (datacenter), which works out of the box, instead of RESIDENTIAL +
  country = PT. On accounts without residential-proxy availability the old default
  made every request fail with proxy 407 ("no usable proxies from country 'PT'"),
  and the run exited SUCCEEDED with 0 results. RESIDENTIAL / PT is still available
  as a one-click option in the Proxy input for large or heavily-throttled runs.
- If **every** request is blocked (proxy 407 / throttle / anti-bot) and not a
  single page can be fetched, the run now **fails loudly** with an actionable
  message ("enable Apify Proxy / switch to RESIDENTIAL") instead of silently
  returning an empty success. A genuine no-matches search still exits friendly.
- Proxy IPs are rotated on 403 / 407 / 429 / 5xx and on network errors, with
  exponential backoff between attempts.

### 2026-07-12

- **All filters are now optional** — running with empty input `{}` returns a broad, recent set of listings (defaults to Lisbon) bounded by `maxListings`. `locationSlugs` is no longer required and the run no longer aborts on empty input.
- Added a **Region / District dropdown** (Portuguese distritos + island regions) so you can pick a location without hunting for URL slugs. The advanced `locationSlugs` field still works and takes precedence for councils / parishes.
- **Rooms** (min/max, T-typology), **Distance radius** and **Listings per page** are now user-friendly dropdowns instead of free-typed numbers.
- Numeric values from the new dropdowns are parsed to real numbers internally; output fields and types are unchanged.
- Proxy defaults to Apify RESIDENTIAL (Portugal) for reliable access.

### 2026-07-06

- Initial release. Scrapes Imovirtual.com (Portugal, OLX Group) real estate
  listings via direct HTTP + `__NEXT_DATA__` JSON extraction — no browser.
- Filters: location slugs (distrito/concelho/freguesia), transaction
  (buy/rent), property type, price (EUR), area, rooms, market, owner type,
  distance radius, sort order.
- Verified end-to-end on live data within the 5-minute quality window on the
  default input (Lisboa apartments, 1 page).
