# Changelog of Perplexity Search Links Scraper (`searchapi/perplexity-search-links-scraper`) Actor

- **URL**: https://apify.com/searchapi/perplexity-search-links-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/searchapi/perplexity-search-links-scraper.md

## Changelog

### 3.0.0

- Aligned Apify, Crawlee, Playwright, Docker, lockfile, and local Firefox versions.
- Replaced the stale 150-second answer wait with bounded Links-tab/source-card readiness checks, reducing a successful 10-record scrape to about 11 seconds.
- Added current source-card selectors plus visible-text fallbacks and removed fabricated favicon defaults.
- Added stable query-aware IDs, tracking-parameter canonicalization, rich query/locale context, recursive empty-value omission, and a required-field dataset contract.
- Added single/batch modes, fair per-query quotas, concurrency/retry/timeout controls, sessions, consistent fingerprints, optional country-aligned proxy support, and explicit sign-in/challenge fail-closed handling.
- Added four unit tests, linting, production dependency overrides, and QA inputs.
- Removed the legacy `writing` focus value because writing mode does not produce source links; legacy `web` remains supported as an alias of `search`.

All notable changes to the Perplexity Search Links Scraper are documented here.

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

#### Fixed

- **Auth-gate placeholder rejection**: added `AUTH_GATE_PLACEHOLDERS`
  allow-list and `isAuthGateText()` guard so when Perplexity shows
  "Sign up and repeat your request." (etc.) the run throws a typed
  `BLOCKED` error instead of pushing a half-populated source list.
- **Streaming wait before switching to Links tab**: the handler now
  calls `waitForAnswerStreamingComplete()` so the Links tab reflects
  the *finished* answer (and full source list) rather than a partial
  in-progress view.

### \[2.0.0] - 2026-06-13

#### Added

- **Initial production release** of the Perplexity Search Links Scraper.
- Source link / citation extraction (title, URL, domain, favicon, snippet, author, date, thumbnail).
- **Citation index** tracking — each link is tagged with the `[1]`, `[2]`, … marker index used in the answer.
- **Source type detection** (web, image, video, social-media, academic).
- **Batch query mode** via `queries[]` — one set of links per query.
- **Focus mode** support (web, academic, social, youtube, reddit, writing).
- **Dedup** by URL across queries.
- Perplexity's Next.js SSR-friendly extraction — uses Playwright (Firefox) with stealth.
- `validate-datasets.js` for local dataset output validation.
- `Dockerfile` using `apify/actor-node-playwright-firefox` image.
- `README.md` with full Apify usage guide.
- Canonical normalizer in `src/canonical.js` (self-contained, no external deps).
- **Pair with `perplexity-search-answers-scraper`** — the answer's `citationIndexes` align 1:1 with this actor's `citationIndex` field.
