# Changelog of Airbnb Experiences Scraper (`codingfrontend/airbnb-experiences-scraper`) Actor

- **URL**: https://apify.com/codingfrontend/airbnb-experiences-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/codingfrontend/airbnb-experiences-scraper.md

## Changelog

### 1.1.0 - 2026-08-31

- Added strict bounded input and Airbnb-only start-URL validation, direct-by-default proxy support, strict explicit-proxy routing, tests, QA inputs, and stronger dataset validation.
- Corrected raw HTML block detection so Airbnb's normal `disable_google_recaptcha` bootstrap flag is not treated as an access challenge.
- Changed zero-real-record and diagnostic-only outcomes to fail the run after preserving `OUTPUT_SUMMARY` and diagnostic evidence.
- Reduced default browser concurrency to one and changed the Docker install to deterministic `npm ci` flags.

All notable changes to the **Airbnb Experiences Scraper** are listed here.

***

### \[1.2.0] — 2026-07-23

#### Fixed

- Updated extraction for Airbnb's current Experiences search payload
- Removed obsolete nullable host fields that are no longer present in search results
- Added strict complete-record filtering and explicit failures for blocked or empty runs
- Added session retirement, current Chrome fingerprints, and consistent browser headers

#### Added

- Currency selection with USD as the default
- Listing and picture IDs, price qualifiers, image counts/aspect ratios, badge types, and result positions
- Dataset views for complete listings, top-rated experiences, and media metadata

***

### \[1.1.0] — 2026-05-19

#### Improved

- Refactored source into modular architecture: `extractors/`, `filters/`, `routes/`, `errors/`, `schema/`
- Added `deduplicateExperiences()` filter to remove duplicates across paginated results
- Added `ErrorHandler` with typed error categories for clearer failure messages
- Improved blocked-page detection

#### Added

- `validate-datasets.js` helper for smoke-testing local dataset output

***

### \[1.0.0] — 2025-01-01

#### Added

- Initial release
- Location-based Airbnb Experiences search (any city worldwide)
- Category filter support (art, cooking, nature, fitness, tours, entertainment, and more)
- Custom `startUrls` mode to scrape any Experiences search URL directly
- Automatic pagination until `maxItems` limit is reached
- Output: `experienceId`, `url`, `title`, `description`, `location`, `price`, `rating`, `reviewCount`, `duration`, `category`, `hostName`, `badges`, `scrapedAt`
- Residential proxy support via Apify Proxy
