Scrape public Facebook posts, reels, videos, and visible engagement data from pages, profiles, and public groups. Unofficial actor, not affiliated with Facebook or Meta.
Keep permalink-identified media-only posts with empty text and continue past empty or unidentified containers.
Emit each post container once even when photo or reshare links have different post ids.
Collect qualifying posts within a 45-second feed budget, allowing four consecutive stale iterations with longer waits and incremental scrolling. Raise scroll limits and stop when filtered, deduplicated output reaches the requested count.
Prefer GraphQL creation times matched by post id, then exact DOM timestamp labels, before falling back to flagged relative-time estimates. Handle streaming JSON and failed body reads safely, settle pending parsing, and remove response listeners.
Cap GraphQL body reads at three seconds or the remaining target budget. Let scrolling continue during parsing and recheck date filters after pending reads settle before delivery.
Log requested and emitted counts per target and add regression coverage for extraction, lazy loading, timestamps, and cleanup.
0.3.19 - 2026-10-15
Preserve original technical-failure conditions under explicit and legacy warning policies.
Finalize empty runs through the shared guard with retry_then_fail as the default. Explicit warning policies succeed with a visible warning; legacy saved success policies normalize to warning.
Preserve retries and actor telemetry while recording the final empty/non-empty outcome in RUN_META.
Removed the expired emergency profitability freeze and smoke-input exceptions.
0.3.18 - 2026-05-29
Changed
Added an emergency cloud-only profitability freeze until the scheduled Apify pricing correction becomes active.
Added residentialProxyFallbackMode and disabled automatic Apify Residential proxy retries by default to prevent hidden proxy spend on empty runs.
0.3.17 - 2026-05-29
Added
Added normalized hashtags on each emitted post so downstream automations can filter and group Facebook content without reparsing text references.
Added optional HASHTAG_TREND_SUMMARY output for top hashtags, engagement totals, latest seen time, and source coverage across a run.
Added regression coverage for hashtag extraction and summary generation.
0.3.16 - 2026-04-20
Fixed
Parsed authenticated Apify proxy URLs into Playwright's server / username / password fields so residential proxy retries no longer fail with ERR_INVALID_AUTH_CREDENTIALS.
Allowed logged-out login_redirect and login_required surfaces to retry once through the residential fallback instead of treating them as permanently unavailable after the first attempt.
0.3.15 - 2026-04-18
Fixed
Forced dev dependencies to install in the Docker builder stage so Apify cloud rebuilds always have TypeScript available during image compilation.
0.3.14 - 2026-04-18
Fixed
Launched the bundled Chrome channel explicitly so Apify cloud builds do not fail looking for Playwright's missing Chromium headless shell binary.
Added regression coverage for the browser launch configuration used in Apify cloud runs.
0.3.13 - 2026-04-18
Fixed
Reclassified minimal logged-out login shells on target paths as unavailable public surfaces instead of hard runtime failures.
Added regression coverage for the Facebook QA case where a target stays on-path but only renders a login prompt and no usable post feed.
0.3.12 - 2026-03-26
Changed
Reworked the README output section into a more scannable Store-friendly overview of the post data, media, and diagnostics the actor returns.
0.3.11 - 2026-03-26
Fixed
Added legacy targets input compatibility so older API callers do not fail with "No valid Facebook targets provided".
Normalized mbasic.facebook.com, m.facebook.com, and mobile.facebook.com inputs onto www.facebook.com before scraping the public surface.
0.3.10 - 2026-03-25
Fixed
Relaxed public post container detection so logged-out public pages with modern Facebook post cards still emit posts.
Removed brittle text-only unavailable-surface matching that could misclassify usable public pages with login prompts.
0.3.6 - 2026-03-23
Fixed
Added surface diagnostics logging when zero posts are found, distinguishing login walls from genuinely empty pages.
Improved empty-run classification after residential proxy fallback retry.
0.3.5 - 2026-03-23
Fixed
Marked runs as failed when every Facebook target errors out, instead of reporting them as successful empty runs.
Clarified emptyRunPolicy docs so it only applies to reachable public surfaces that genuinely return zero posts.
0.3.4 - 2026-03-22
Fixed
Passed the Facebook surface readiness timeout to Playwright using the correct page.waitForFunction(fn, arg, options) signature.
Prevented Apify cloud runs from silently falling back to Playwright's default 30 second wait, which was still triggering empty-run retries for some public pages.
0.3.3 - 2026-03-22
Fixed
Recovered gracefully when Facebook's public page shell is usable but readiness probing times out.
Added regression coverage for readiness timeout recovery during navigation.
0.3.2 - 2026-03-21
Fixed
Added support for absolute Facebook timestamps (e.g. "March 15, 2026") alongside relative time labels.
Aligned Apify actor version format for consistent Store builds.
0.3.1 - 2026-03-21
Fixed
Hardened Facebook page navigation so logged-out scraping can recover when domcontentloaded stalls in cloud runs.
Relaxed source metadata readiness checks to avoid failing healthy targets that render the page shell before the header finishes loading.
0.3.0 - 2026-03-18
Changed
Bumped the actor release version for the public Store launch.
Cleaned the public README to remove internal development-only instructions.
Replaced client-specific examples with neutral output samples and stable public demo inputs.
Updated the live Store sample input and publication metadata to support a safer first-run experience.
0.2.0 - 2026-03-18
Added
Marketplace-ready README with stronger SEO copy, API examples, FAQ, use cases, and pricing guidance.
Production launch guide with Store metadata, pricing recommendations, monetization setup notes, and publish checklist.
Additional dataset views for engagement analysis and source metadata review.
Changed
Improved input schema copy for better Apify Store UX and clearer public-surface expectations.
Refined actor dataset descriptions and view labels for a more production-ready Store presentation.