# Changelog of BoardGameGeek (BGG) Board Game Reviews Scraper (`thescrapelab/boardgamegeek-reviews-scraper`) Actor

- **URL**: https://apify.com/thescrapelab/boardgamegeek-reviews-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/thescrapelab/boardgamegeek-reviews-scraper.md

## Changelog

### 0.6

- Changed the default run profile for lower scraping cost: no proxy, no artificial request delay, 4-way concurrency, 1 retry, and 30-second request handlers.
- Reduced name-search request waits by using fewer, shorter resolver attempts before falling back or emitting an error.
- Disabled Crawlee session/cookie persistence unless proxying is enabled, reducing default storage and runtime overhead.
- Added `maxRequestRetries` and `requestTimeoutSecs` inputs so users can tune reliability versus cost.
- Documented the lowest-cost input pattern: direct game IDs or URLs, `skipGameMetadata: true`, and `useProxy: false`.

### 0.5

- Added `skipGameMetadata`, enabled by default, so review scraping can start directly from the collections endpoint and avoid one metadata request per game.
- Preserved the old metadata path with `skipGameMetadata: false` for users who prefer canonical BGG metadata over speed.
- Kept resolved names and URL-derived names in output when metadata is skipped.
- Added extra collection-derived fields without extra requests: collection ID, version ID, reviewer country/state/city, owned status, and wishlist priority.

### 0.4

- Added first-class `gameIds` and `gameUrls` inputs so users can bypass name search for larger, more reliable runs.
- Removed the default `Gloomhaven` input to prevent API calls with direct IDs or URLs from scraping an unintended extra game.
- Added a direct BoardGameGeek boardgame-search fallback for cases where the family-search resolver is blocked or cannot expand candidate games.
- Exposed advanced request delay, concurrency, proxy, and debug settings in the input schema.
- Added normal progress logs around name resolution and a minimal `npm test` regression command.

### 0.3

- Switched the public input from BGG IDs and URLs to simple `gameNames` search queries.
- Added `matchMode` so each query can resolve either the first best BoardGameGeek title or all matching titles.
- Added BoardGameGeek name-resolution logic that expands family search results into real boardgame IDs before scraping reviews.
- Updated the client-facing README and Python API example to reflect the new search-by-name workflow.
- Changed `gameNames` to a proper list-style input field in Apify Console.
- Added `reviewText` to the default dataset overview columns so it is visible without opening all fields.

### 0.2

- Reworked review extraction to use the public BoardGameGeek JSON endpoints used by the live site.
- Fixed Apify cloud runs that previously reached game pages but could not discover review entry links in the Angular shell HTML.
- Simplified sorting so the Actor now takes the first `N` reviews in the order returned by BoardGameGeek, with no local ascending or descending re-ranking.
- Added stronger quality filtering to reject low-signal trade notes, component-condition blurbs, and metadata-heavy collection comments.
- Simplified the public input schema and rewrote the README as client-facing product documentation with a Python Apify API example.

### 0.1

- Initial release of BoardGameGeek Reviews Scraper.
- Added strict Cheerio-only crawling with low-memory defaults.
- Added flat review and error dataset schemas.
- Added blocked-page detection for Cloudflare and 404 responses.
- Added README compliance notes, performance guidance, and output examples.
