# Changelog of Facebook Comment Scraper — Public Comments & Replies (`crowdpull/facebook-comment-scraper`) Actor

- **URL**: https://apify.com/crowdpull/facebook-comment-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/crowdpull/facebook-comment-scraper.md

## Changelog

### \[1.4] - 2026-09-21

- Scope Smart Scrape completion to comment limits, reply inclusion, sort, URL extraction and authentication mode; recheck legacy entries once.
- Keep incomplete refreshes retryable and identify results limited by the requested cap.
- Fail explicit all-target login/authentication errors while preserving unavailable-content diagnostics.

### \[1.3] - 2026-09-20

- Serialize Facebook requests with bounded transient retries and a shared rate-limit cooldown.
- Keep tokens, cookies, and proxy sessions together per page/profile; deduplicate normalized input URLs.
- Preserve earlier comments/replies and report partial coverage after later-page failure. Only explicitly complete results enter the skip cache; legacy entries are rechecked once.
- Report sanitized token-fetch failures and missing input before scraping.
- Add regression coverage to CI and refresh compatible dependency fixes.

### Unreleased

#### Fixed

- Added current reel comment-preload query support and explicit handling for Facebook's `Unauthorized logged out query` response.
- Added per-post `OUTPUT` coverage summaries and stopped silent successful runs when every comment target fails.
- Reused token-source HTML for reel feedback IDs to avoid a duplicate residential request.
- Corrected Store documentation that overstated anonymous and authenticated coverage.
- Updated transitive dependencies to resolve the current npm audit findings.

### \[1.0.47] - 2026-03-28

#### Fixed

- **Fixed "Can not crawl anything" issue** — Facebook rotated internal GraphQL query IDs (`doc_id`) which broke comment extraction. Updated both top-level comment and reply thread queries.
- **Fixed anonymous token extraction** — Facebook now blocks anonymous access to individual post URLs (returns 400/500). The scraper now fetches tokens from the page-level URL instead, which still works anonymously.
- Updated relay provider variables to match Facebook's current schema.
- Updated browser fingerprint (Chrome 131 → 134) and added `Sec-Fetch` headers for improved compatibility.
- Increased token fetch retry count from 3 to 5 for better resilience with residential proxies.

#### Known Limitations

- `pfbid`-format URLs cannot be resolved to numeric post IDs without accessing the individual post page (which is now blocked). Use numeric post URLs when possible.

### \[1.0.39] - 2026-03-10

#### Fixed

- **Reply threads now return all replies in anonymous mode** — previously only a subset of replies were returned per thread. Now returns complete reply threads automatically.
- Anonymous mode coverage upgraded from ~85% to ~95% of visible comments.

### \[1.0.38] - 2026-03-06

#### Added

- Smart Scrape dedup — skip posts already scraped in previous runs with `enableDedup` input. Cached posts charged at reduced `cache-check` rate.
- Sort order support — `sortOrder` input to control comment ordering (RANKED, RECENT, ALL).
- Refresh window — `refreshWindowDays` input to re-scrape recent posts that may have gained new comments.

### \[1.0.0] - 2026-02-20

#### Added

- Initial release on Apify Store.
- Anonymous comment extraction — no login or cookies required.
- Full comment pagination.
- Reply thread expansion for nested comments.
- 30+ fields per comment including reaction breakdown, spam signals, and group context.
- Multi-post support with configurable concurrency.
- URL and @handle extraction from comment text.
- Webhook chaining from the feed scraper via `datasetId` input.
- Authenticated mode via `fbCookies` for higher coverage.
