# Changelog of Marktplaats Netherlands Car Scraper (`devilscrapes/marktplaats-netherlands-cars`) Actor

- **URL**: https://apify.com/devilscrapes/marktplaats-netherlands-cars/changelog.md
- **Full Actor documentation**: https://apify.com/devilscrapes/marktplaats-netherlands-cars.md

## Marktplaats Netherlands Car Scraper — Changelog

### 0.3 — 2026-07-28 — restore to main after 30-day success rate 20% (8/10 customer runs failed)

- Root cause: `actors/marktplaats-netherlands-cars/` never actually existed on
  `main` — the 0.2 residential-proxy-guard fix (2026-06-10) was committed and
  QA-passed only on the now-stale branch
  `fix/marktplaats-netherlands-cars-residential-proxy-guard`, which was never
  merged. Whatever build is live on the Apify platform therefore is not
  reproducible from `main`'s git history; the daily-report 403s are consistent
  with the pre-fix (datacenter-proxy) source being what's actually deployed.
- Action: ported the complete actor source (already carrying the 0.2
  residential-proxy guard) from that branch onto `main` so the fix can finally
  ship through the normal publish gates. No functional code changed relative
  to the 0.2 guard — `_REQUIRED_GROUP = "RESIDENTIAL"`,
  `_ensure_residential_groups` override, `_resolve_proxy_url` fail-loud
  `RuntimeError`, `.actor/input_schema.json` + `tests/fixtures/input.qa.json`
  RESIDENTIAL default/prefill all verified intact.
- Local verify: `ruff check` clean, `pyright` clean, `pytest -q` 24/24 green,
  `verify_input_prefill.py` OK. Local `apify run` fails with "Proxy external
  access isn't enabled for your account" — this is the documented FREE-plan
  local-only proxy restriction (not a code regression); cloud runs resolve
  RESIDENTIAL normally, per `project-cloud-recon-unblocks-proxy`.

### 0.2 — 2026-06-10 — Cloud QA PASS (runId=QV30YWZ8DeJ9joHVo, build 0.2.1)

- Force-residential proxy guard: `_resolve_proxy_url` now always injects
  `RESIDENTIAL` into `apifyProxyGroups` (overriding empty/missing/other groups)
  and raises `RuntimeError` instead of returning `None` when the Apify Proxy
  RESIDENTIAL group is unavailable — eliminating the no-proxy footgun.
- `scraper.run` signature updated: `proxy_url: str` (was `str | None`).
- README Limitations updated: notes residential proxy is required.
- Unit tests added: `tests/test_proxy_guard.py` covers RESIDENTIAL injection
  and fail-fast behaviour on unavailable proxy.
- Cloud QA: 5 rows, EUR prices, enrichDetails=true, color + description populated.

### 0.1 — 2026-06-05

- First published release. Cloud QA PASS: 5 rows, EUR prices, enrichment (color + description) populated. Build 0.1.1, runId jQXhmY4GsYhtjYpXG.

### 0.1.0 — 2026-05-15

- Initial scaffolded release.
