# Changelog of Google Scholar Scraper (`searchapi/google-scholar-scraper`) Actor

- **URL**: https://apify.com/searchapi/google-scholar-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/searchapi/google-scholar-scraper.md

## Changelog

### 3.0.0

- Replaced Playwright-over-GOOGLE\_SERP and ordinary Google Web/arXiv extraction with real `scholar.google.com` HTTP parsing.
- Added single search, fair batch, and numeric citation-cluster modes with bounded pagination and concurrency.
- Made OpenAlex an explicit source instead of a silent fallback and added truthful provenance fields.
- Added 77 typed, source-backed output fields, stable IDs, canonical URLs, recursive empty omission, and global deduplication.
- Added year/language/citation filters, date sorting, post-validation of year bounds, and current opaque Scholar result-ID handling.
- Added direct, Apify Residential, and custom proxy support with consistent request headers and stable session IDs.
- Rejects incompatible `GOOGLE_SERP` configuration and fails closed on CAPTCHA/challenge or unknown layouts.
- Removed unsafe local Apify authentication-file access, unused generated modules, Playwright/Crawlee runtime dependencies, and the browser Docker image.
- Added unit tests, QA inputs, dataset auditing, output schema, deterministic `npm ci` Docker builds, and dependency security overrides.
