# Changelog of Facebook Profile & Posts Scraper | No Login | Bulk (`apivault_labs/facebook-profile-scraper`) Actor

- **URL**: https://apify.com/apivault\_labs/facebook-profile-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/apivault\_labs/facebook-profile-scraper.md

## Changelog

### 2.6

- Added Compact, Contacts, Monitoring, and Full output presets for MCP and exports.
- Full remains the backwards-compatible default; scraping and enrichment behavior is unchanged.
- The Console form now starts with numbered workflow and input sections.
- SUMMARY reports the selected preset, and clean runs write empty ERRORS/FILTERED arrays.

### 2.5

- Expanded keyword discovery beyond the previous three-page ceiling and added
  support for literal, escaped and redirect-wrapped Facebook URLs in results.
- Added bounded public post pagination with a user-controlled page limit.
- Added `maxResults`, one run-wide cap shared by profile and post rows, so bulk
  jobs cannot exceed the requested paid Dataset size.
- Increased the search default to 50 profiles per keyword and changed the
  one-click profile example to a real eight-page bulk run.
- Change tracking is now opt-in for one-off jobs; `onlyChanged=true` still
  enables it automatically for scheduled monitors.
- Run summaries now report discovery counts per keyword, the total result cap,
  whether it was reached and how many candidate rows were truncated.
- Added a distinct `NO_SEARCH_RESULTS` diagnostic and actionable search advice.

### 2.4

- Added an agent-first MCP usage guide, decision rules, cost/context limits and
  ready-to-copy prompts for discovery, monitoring and posts.
- Added stable machine-readable error codes: `MISSING_INPUT`,
  `INVALID_FACEBOOK_URL`, `NO_PUBLIC_DATA`, `FACEBOOK_FETCH_FAILED` and
  `UNKNOWN_ERROR`.
- Added stable filtered-record contracts with `type=filtered`, `filterCode`,
  `filterReason` and the key quality signals that caused the decision.
- Added a top-level `status` to every run summary and structured empty-input
  diagnostics instead of returning without outputs.
- Clarified input/output schema descriptions and the recommended agent read
  order: Summary → Dataset → Errors/Filtered.

### 2.3

- Improved recent-post reliability: post mode now checks the dedicated public
  posts page with the same warmed session instead of accepting a profile-only
  response and silently returning zero posts.
- A parseable-looking response that contains no valid profile now falls through
  to the next retrieval route rather than becoming a false successful fetch.
- The first-run example now demonstrates a small three-page bulk job, while the
  default workflow remains the predictable profiles-only mode.
- Run summary now reports requested profiles, profile results, post results,
  total results and practical next-step guidance without adding billable rows.
- Increased keyword-search default from 20 to 25 profiles per focused keyword.
- Added persistent change tracking across runs: follower delta, growth percentage,
  daily growth rate, changed fields and previous-snapshot timestamp.
- Added an optional unchanged-only mode for scheduled monitors. After the first
  baseline, unchanged profiles stay out of the billable Dataset.
- Added pre-delivery lead filters for follower range, activity score, verified
  status, business-page type and presence of a public contact channel.
- Added data-completeness scoring, missing-field hints and a dedicated Monitoring
  Dataset view. Filtered records are available in a non-billable output.

### 2.2

- Repositioned the Actor around three clear workflows: profiles/pages, profiles
  with recent posts, and keyword discovery.
- Added the backward-compatible `mode` input and exact inclusive `postsSince` /
  `postsUntil` filters. Existing `scrapePosts` and `sinceDays` inputs still work.
- Added stable `type=profile|post` records and ISO `createdAt` on posts.
- Added an Actor output schema for AI agents and API consumers.
- Added a Posts dataset view plus separate non-billable Errors and Run summary
  outputs.
- Expanded documentation with JSON examples, output contracts, automation
  guidance and FAQ.

### 2.1

- Redesigned dataset views. The **Profiles** table now shows the profile
  avatar, verification badge and lead score alongside name, handle, category
  and followers.
- Added a dedicated **Contacts** view listing every reachable channel per
  profile — email, phone, website, Instagram, Messenger, WhatsApp and Facebook.

### 0.1.0

- Initial native Go port of Facebook Profile Scraper.
- Preserves URL scraping, keyword discovery, contact extraction, scoring, website enrichment, webhook delivery and optional post extraction.
- Uses resilient fetching and automatic retries for public Facebook data.
