# Changelog of Brave Local Results Scraper (`searchapi/brave-local-results-scraper`) Actor

- **URL**: https://apify.com/searchapi/brave-local-results-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/searchapi/brave-local-results-scraper.md

## Changelog

### 3.2.0

- Fixed detail enrichment, which failed for every place (`detailStatus: http429`): Brave answers an out-of-page `APIRequestContext` call to `/api/local/place` with `HTTP 429 text/html` (`Request refused`), so the detail payload is now read with an in-page `fetch` from the loaded Brave Maps document, exactly like the page itself does, with the place's own `coords` and the list's `units_of_measurement`/`search_lang`/`ui_lang` parameters.
- A failed detail request now logs its URL, status, content type and a bounded body preview instead of only a count, so a future refusal is self-describing.
- Detail-only fields (`profiles`, `relatedResults`, `providerUrl`) and detail-completed fields (weekly `openingHours`, `categories`, `servesCuisine`) now populate from Brave's real payload.

### 3.1.0

- Switched local and Docker browser execution from Firefox to Chrome/Chromium.
- Added dataset auditing, schema parity checks, and a generated-by metadata marker.

### \[3.0.0] - 2026-08-30

- Added typed Actor output metadata and a required-field dataset contract.
- Added per-record detail status and optional atomic `requireDetails` enforcement.
- Removed unrelated browser-geolocation metadata and stopped fabricating false source flags, zero-size images, and timezone offsets.
- Added consistent browser context settings, safe resource blocking, stricter proxy validation, and an explicit rejection for incompatible `GOOGLE_SERP` proxies.
- Pinned runtime dependencies and patched transitive advisories; the production dependency audit is clean.

### \[2.0.0] - 2026-07-20

- Replaced generic class-name scraping with validated Brave Maps list and detail API extraction.
- Added user-friendly `location`, detail enrichment, concurrency, retry, timeout, proxy, and headless inputs.
- Expanded output to a normalized 70-field place record with images, profiles, related pages, hours, coordinates, and search context.
- Added stable ID deduplication, strict input/status/content-type validation, a DOM fallback, and clean empty-result behavior.
- Updated Playwright and the Firefox Docker image, added focused tests, and removed dependency audit findings.
