Scrape used-car listings from FINN.no — Norway's dominant classifieds. Get make, model, year, price in NOK, mileage in km, fuel, gearbox, power (hp), body type, colour, first registration, seller type (dealer/private), location and photos. Export to JSON or CSV.
Force-RESIDENTIAL proxy guard (preventive):_resolve_proxy_url now always
enforces apifyProxyGroups: ["RESIDENTIAL"] — if the caller omits or clears the
group the Actor auto-injects it and logs the override. If proxy is entirely
unavailable (returns None or raises), the Actor fails fast with a clear
RuntimeError instead of silently falling through to a datacenter IP.
Updated models.py default + input_schema.json description to document the
RESIDENTIAL requirement. QA fixture (tests/fixtures/input.qa.json) now
explicitly carries the group.
Added 9 unit tests: _ensure_residential group injection, country-code
preservation, _resolve_proxy_url raises on unavailable proxy, and
schema/fixture assertions.
0.2 — 2026-06-07
Fix "Under maintenance" risk: proxy default/prefill in input_schema.json was {useApifyProxy: true} with no group, so Apify's daily auto-QA ran on a datacenter IP and FINN.no 403'd. Both now pin apifyProxyGroups: ["RESIDENTIAL"]. Mirrors the willhaben-austria-cars fix.
Build 0.2.1 (id: 7iHKQCHFHgYWQiwNy). QA PASS: cloud run duVgMgxEOUzdbEdcX returned 5 Tesla listings, proxy resolved via RESIDENTIAL (PROXY_RESIDENTIAL_TRANSFER_GBYTES=0.000659, zero 403/429), PPE charges fired (actor-start x1, result-row x5).
0.1 — 2026-06-02
First cloud push. Build 0.1.1 (id: c6h5W2tSjkNGhSh30) succeeded.
QA PASS: cloud run m4igZtaSkbeyqSguf returned 5 Tesla listings with title, price (NOK), mileage, fuel type, seller type populated.
Proxy resolved cleanly via Apify (no blocks, no 403/429).
PPE charge calls fire correctly; tier activation required in Console.