# Changelog of OLX Brasil Carros Data Scraper (`israeloriente/olx-cars-scraper`) Actor

- **URL**: https://apify.com/israeloriente/olx-cars-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/israeloriente/olx-cars-scraper.md

## Changelog

All notable changes to the OLX Brazil Car Scraper will be documented in this file.

### \[1.0.0] - 2025-10-09

#### 🎉 Major Release - Production Ready

##### Added

- **Advanced Price Filtering**
  - `ps` parameter: Minimum price in BRL
  - `pe` parameter: Maximum price in BRL
  - Price range validation and URL construction

- **Multi-Color Selection**
  - Support for 10 color options (Preto, Branco, Prata, Cinza, Azul, Vermelho, Verde, Amarelo, Laranja, Outra)
  - Multi-select capability with OLX color code mapping (cac parameter)
  - Case-insensitive color matching

- **FIPE Price Comparison Filter**
  - `fpdll` boolean parameter to filter vehicles below FIPE table value
  - Ideal for finding investment opportunities and deals

- **Complete Brazilian State Coverage**
  - All 27 Brazilian states supported (AC through TO)
  - State selection via dropdown

- **180+ Car Brands**
  - Comprehensive brand list from Acura to Zeekr
  - Includes luxury, economy, and international brands

- **Unlimited Pagination**
  - Smart pagination with multiple detection strategies
  - Automatic end-of-listings detection via `noNewAdsCount` tracker
  - Support for `.listing-pagination` and `#listing-pagination` elements
  - Fallback to URL parameter navigation (`?o=pageIndex`)

- **Anti-Bot Protection**
  - Integration with `puppeteer-real-browser` v1.4.4
  - Turnstile bypass enabled
  - Human-like scrolling patterns (20 rounds, 150ms/100ms delays)

- **Performance Optimizations**
  - Aggressive resource blocking (images, fonts, stylesheets, trackers)
  - 5 concurrent browser instances
  - 120 requests/minute throughput
  - Browser pool optimization (3 pages/browser, 100 reuse limit)

- **Complete Data Extraction**
  - Title, price, FIPE price, brand, model, year, mileage
  - Fuel type, color, multiple high-resolution photos
  - Full description with "Ver descrição completa" expansion
  - Smart price detection from multiple sources (#price-box-container, meta tags)

- **Professional Documentation**
  - Comprehensive README.md with use cases and examples
  - Detailed INPUT guide (README\_INPUT.md)
  - SEO-optimized actor.json metadata
  - Enhanced input\_schema.json with detailed descriptions

##### Changed

- Updated `ads_limit` maximum from 70 to 300
- Improved input schema with professional descriptions
- Enhanced actor title and description for Apify Store visibility
- Optimized navigation timeout to 25 seconds
- Increased request timeout to 40s (listing) and 75s (detail)

##### Fixed

- Pagination stopping at ~130 ads (removed hard `maxPages` limit)
- Duplicate detection and URL normalization
- Image canonicalization (img.olx.com.br only)
- TypeScript compilation warnings

##### Removed

- All console.log and log.info/log.warning statements (production-ready)
- Proxy-related input fields (use\_real\_browser, proxyUrls, etc.) from schema
- Fallback to standard Puppeteer (real-browser only)

#### Technical Details

- **Framework**: Crawlee 3.15.1 + Apify SDK 3.5.0
- **Runtime**: Node.js v20.9.0 (local) / v22.18.0 (Apify)
- **Language**: TypeScript 5.8.3
- **Browser**: Puppeteer Real Browser 1.4.4
- **Performance**: ~25-28 ads/minute average

***

### \[0.1.0] - Initial Development

#### Added

- Basic OLX scraping functionality
- State-based URL construction
- Simple pagination support
- Basic data extraction (title, price, description)
- Proxy support for local testing

***

### Future Roadmap

#### Planned Features (v1.1.0+)

- \[ ] Export to CSV/Excel format
- \[ ] Scheduled runs with email notifications
- \[ ] Historical price tracking
- \[ ] Duplicate detection across runs
- \[ ] Support for motorcycles and other vehicle categories
- \[ ] Advanced analytics dashboard
- \[ ] Webhook integration for real-time alerts

***

**Maintained by**: OLX Scraper Team
**License**: Proprietary
**Repository**: Private

***

For detailed usage instructions, see [README.md](../README.md)
For input configuration, see [README\_INPUT.md](../README_INPUT.md)
