# Changelog of 🛒 Facebook Marketplace Scraper - Prices & Contacts (`apivault_labs/facebook-marketplace-scraper`) Actor

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

## Changelog

### 3.4

- Reliability: every Facebook fetch now uses a total wall-clock deadline across
  cookie warm-up, desktop/mobile variants, retries and backoff. Increasing
  `maxRetries` can no longer multiply a job into a platform-level timeout.
- Added a 240-second internal run deadline. Completed listings and a partial
  summary are saved before unfinished jobs are cancelled.
- Detail enrichment now has a separate 15-second budget and degrades to the
  already parsed search-card result instead of blocking the whole run.
- Summary diagnostics count incomplete detail enrichments and mark the run
  partial while preserving every available base listing.
- Generated coverage jobs are capped, unexpected job errors are isolated, and
  summaries report `timedOutJobs` plus `partial`.
- Local deployment/test helpers now read the Apify CLI token from Windows
  Credential Manager when the newer `auth.json` contains no plaintext token.

### 3.3

- Store listing (SEO): retitled to **Facebook Marketplace Scraper - Listings, Prices, Sellers & Contacts (No Login)** and rewrote the description around high-intent keywords. Added an end-of-run rating prompt.

### 3.2

- Cost/profitability: the facebook.com warm-up request no longer downloads the
  page body (only the datr cookie from headers is needed), cutting residential
  bandwidth ~40-50% per job — keeps even single-result runs comfortably profitable.

### 3.1

- **Coverage expansion ("pagination")** — when `maxItems` > ~24, each search term is re-queried across multiple sort orders (newest, price asc/desc, distance) and deduped, surfacing 2-6× more unique listings per run (live test: 84 vs ~15-40 from one page). Toggle with `expandCoverage`.
- **Coordinates** — `latitude` / `longitude` now extracted when present (listing detail pages; the search feed only carries city/state).
- ponytail note: this is heuristic coverage, not true deep cursor pagination — FB's GraphQL cursor needs a rotating `doc_id` that isn't in the page. Documented upgrade path retained.

### 3.0

- **No-login search confirmed working on Apify**: direct fetch with browser-grade
  headers and an anonymous cookie warm-up avoids the login redirect, and the
  parser reads the real search feed — title, price, strikethrough price, image,
  location (city/state), delivery types, category, status.
- Full description / seller / contacts come from the listing's own page → use `enrichDetails` or item-URL mode.
- Kept: hard `maxItems` cap, dedup, retries, incremental `onlyNew`, real-time webhook, video + seller-rating fields, `debug` probe.

### 1.0

- Initial release (no-login, direct fetch).
