# Changelog of local.ch · Swiss Business Leads by Category or URL (`corent1robert/local-ch-scraper`) Actor

- **URL**: https://apify.com/corent1robert/local-ch-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/corent1robert/local-ch-scraper.md

## Changelog

All notable changes to this Actor are documented in this file.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Actor versions use **MAJOR.MINOR**.

### \[1.5] - 2026-09-07

#### Added

- **Actor Standby:** HTTP lookup `GET`/`POST /lookup` — one local.ch `/d/` fiche URL, or up to **5**. Category and search crawls stay on **Start**.
- OpenAPI spec for the Standby tab (`web_server_openapi.json`)

### \[2026-09-01]

#### Changed

- Free plan cap: 20 rows per run. Anonymous Try off.

### \[1.4] - 2026-08-27

#### Fixed

- Store Try: prefill **5** businesses, skip the listing→details cooldown, stop ~40s before platform timeout, and exit **0** on missing category / helloWorld input (empty dataset, not FAILED).
- Direct dependency on **undici** for proxied fetches.

### \[1.3] - 2026-08-24

#### Fixed

- Default run memory **2048 MB** (minimum **1024 MB**) so city batches no longer hit exit 137 on 512 MB leftovers.
- Saved Console proxy configs that still request the `DATACENTER` group are stripped; if proxy create fails, retry without a group.

### \[1.2] - 2026-08-23

#### Changed

- **Category** is a Console dropdown (Lawyer, Dentist, Restaurant, …) instead of a free-text slug.
- Language-aware slugs: Lawyer + Deutsch → `/de/s/anwalt`. **Other** still accepts any local.ch slug.
- Store PPE scheduled via API for **2026-09-06**: Free **$2 / 1k** (was $4 / 1k), same grid as OneDoc.

#### Fixed

- Listing now stops at **Max rows** (was collecting a full extra page, then OOM on 512 MB detail fetches).
- Default proxy no longer requests the `DATACENTER` group (unavailable on some accounts) — Swiss Apify proxy without a group name.

### \[1.1] - 2026-08-23

#### Changed

- Empty fields are **`null`** (or `[]`), not `"-"`.
- Descriptions: HTML entities decoded, local.ch SEO boilerplate stripped.
- Opening hours: `{ day, opens, closes }` plus `openingHoursText` (no schema.org URLs).
- Images: drop blanks/duplicates, cap at 8, skip logo as primary when a photo exists.
- Websites: ignore Google/Bing/local.ch URLs; Facebook stays in `socialUrls`, not `bookingUrls`.

### \[1.0] - 2026-08-23

#### Added

- Console search by **category + city + language** (no need to copy a listing URL).
- Optional **phone** / **email** filters (skipped rows are not billed).
- `whatsappUrl` and `socialUrls` — WhatsApp is no longer stored as the company website.
- Dataset views Overview / Contacts; four published-task specs (Geneva dentists, Zurich restaurants, Bern lawyers, profile enrich).

#### Changed

- Store listing: benefit-first title/SEO, Try cap **25**, anonymous runs off, categories Lead generation + Business.
- README: personas, honest fill rates, pricing table.

### \[0.3] - 2026-05

#### Changed

- Simpler Console UI: advanced options hidden.

### \[0.2] - 2026-05

#### Added

- Separate Search URL vs Profile URLs inputs; sample CSV.

### \[0.1] - 2026-05

#### Added

- First release: listing pagination + profile enrichment from local.ch.
