Facebook Posts Scraper avatar

Facebook Posts Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Facebook Posts Scraper

Facebook Posts Scraper

📘 Scrape public Facebook page posts, captions, and engagement data in a few clicks.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

API ninja

API ninja

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does Facebook Posts Scraper do?

Facebook Posts Scraper lets you extract posts from public Facebook pages in a repeatable, API-friendly way. Paste one or more Facebook page URLs or page IDs, choose how many results you want, optionally add a date range, and run the Actor to collect post data into an Apify dataset.

This Actor is built for teams and individuals who need public Facebook page content, engagement metrics, and structured output without building and maintaining their own scraper pipeline. Because it runs on the Apify platform, you also get scheduling, monitoring, logs, integrations, and API access out of the box.

What can this Facebook Posts Scraper do?

  • Extract posts from public Facebook pages
  • Accept both Facebook page URLs and numeric page IDs
  • Collect paginated results automatically
  • Limit output with maxResults or keep going with parseAllResults
  • Filter posts by optional startDate and endDate
  • Return structured post data including message text, author info, URLs, timestamps, and engagement counts
  • Save results to an Apify dataset that you can export as JSON, CSV, Excel, XML, or HTML

This Actor is especially useful if you want a Facebook page posts API workflow combined with Apify features such as:

  • Scheduling recurring runs
  • API access for automation
  • Run history and logs for monitoring
  • Integrations with Make, Zapier, webhooks, and custom systems
  • Scalable execution without managing infrastructure

Why use Facebook Posts Scraper?

If you work with social media data, public content monitoring, reporting, or research, this Actor gives you a practical way to turn Facebook page activity into structured data.

Common use cases include:

  • Tracking brand pages over time
  • Monitoring competitors' posting activity
  • Collecting post engagement metrics for reporting
  • Building internal dashboards for content analysis
  • Archiving public page content for research or audits
  • Feeding public Facebook page data into ETL and BI pipelines

Instead of manually checking pages or building your own collection process, you can use this Actor as a reusable data source inside the Apify platform.

What data can Facebook Posts Scraper extract?

The Actor returns one dataset item per post. Depending on the post, the output can include core content, author fields, engagement totals, media references, and attached objects.

FieldDescription
post_idUnique Facebook post identifier
typePost type
urlDirect URL to the Facebook post
messageMain post text
message_richRich-text post message when available
timestampPost timestamp in Unix seconds
comments_countNumber of comments
reactions_countTotal number of reactions
reshare_countNumber of reshares
reactionsBreakdown of reactions such as like, love, care, haha, wow, sad, angry
author.idFacebook page ID of the author
author.nameFacebook page name
author.urlFacebook page URL
author.profile_picture_urlProfile image URL
imageAttached image data when present
videoAttached video data when present
external_urlExternal link attached to the post when present

How to scrape Facebook page posts

Using this Actor is straightforward:

  1. Open Facebook Posts Scraper in Apify Console.
  2. In the Input tab, add one or more public Facebook page URLs or numeric page IDs.
  3. Set maxResults if you want to cap the number of saved posts per page.
  4. Turn on parseAllResults if you want the Actor to paginate until no more posts are available.
  5. Optionally set startDate and/or endDate in YYYY-MM-DD format.
  6. Click Start.
  7. Review the dataset in the Storage tab or access it via API.

This flow works well for both no-code users and developers. Non-technical users can run it directly in the Apify Console. Developers can trigger runs and download results programmatically through the Apify API.

Input

The Actor input is designed to be simple:

  • urls: Required. A list of Facebook page URLs or numeric page IDs.
  • maxResults: Optional. Maximum number of posts to save per input page.
  • parseAllResults: Optional. When enabled, the Actor keeps paginating until there are no more results.
  • startDate: Optional. Start of the date range in YYYY-MM-DD format.
  • endDate: Optional. End of the date range in YYYY-MM-DD format.

If both startDate and endDate are provided, the Actor validates that the start date is not later than the end date.

Example input:

{
"urls": ["https://www.facebook.com/facebook/", "100064860875397"],
"maxResults": 100,
"parseAllResults": false,
"startDate": "2026-05-08",
"endDate": "2026-05-14"
}

Output

The Actor stores results in the default dataset. You can download the dataset in various formats such as JSON, HTML, CSV, Excel, XML, or RSS depending on your workflow.

Example output:

[
{
"post_id": "1486934193478596",
"type": "post",
"url": "https://www.facebook.com/facebook/posts/pfbid0YYGLM1J7LhQafNHkQ7HngKyAMVrW1ednAunWsVbTLc6MpDT1Grsmqx48sx626unPl",
"message": "This is your sign to spend some time outside today 🌏",
"message_rich": "This is your sign to spend some time outside today 🌏",
"timestamp": 1776870303,
"comments_count": 7637,
"reactions_count": 49639,
"reshare_count": 4159,
"reactions": {
"angry": 45,
"care": 1109,
"haha": 331,
"like": 36638,
"love": 11356,
"sad": 39,
"wow": 121
},
"author": {
"id": "100064860875397",
"name": "Facebook",
"url": "https://www.facebook.com/facebook",
"profile_picture_url": "https://example.com/profile.jpg"
},
"external_url": null,
"comments_id": "1486934193478596",
"shares_id": "1486934193478596",
"associated_group_id": null
}
]

How much does it cost to scrape Facebook page posts?

The cost depends on:

  • how many Facebook pages you process
  • how many posts you request per page
  • whether you enable full pagination with parseAllResults
  • how often you run the Actor

If you only need recent posts from a small set of pages, costs stay low. If you run large historical collections across many pages with full pagination, usage will increase accordingly.

To keep costs predictable:

  • start with a small maxResults
  • test on one or two pages first
  • only enable parseAllResults when you need the full archive available through pagination
  • use date filters to reduce unnecessary collection

For many users, the fastest way to estimate cost is to run a small sample and then scale up based on the number of pages and posts actually needed.

Tips and advanced options

  • Use numeric page IDs when you already have them. This reduces one resolution step before post collection begins.
  • Use date filters when you need a specific reporting period.
  • Use maxResults when you only need recent or representative samples.
  • Use parseAllResults when completeness matters more than speed.
  • Check the run logs to review request parameters, pagination progress, retries, and saved item counts.
  • Use the Apify API if you want to trigger this Actor from your own app or data workflow.

FAQ

Can I scrape personal Facebook profiles?

No. This Actor is designed for public Facebook pages.

Can I use both URLs and numeric IDs in one run?

Yes. The urls input can contain a mix of public Facebook page URLs and numeric page IDs.

Can I collect all available posts from a page?

Yes. Turn on parseAllResults and the Actor will continue paginating until no more results are available.

Can I filter by date?

Yes. You can provide startDate, endDate, or both. If both are provided, the Actor validates the date range before the run proceeds.

What if a request fails?

The Actor includes retry logic and logs request progress so runs are more reliable and easier to troubleshoot.

Can I export the data to spreadsheets or BI tools?

Yes. Dataset results can be exported in common formats, and you can also consume them through the Apify API.

Disclaimers and support

This Actor is intended for collecting publicly available Facebook page data. Make sure your use complies with the target website terms and with the laws and regulations that apply in your jurisdiction.

If you run into an issue, check:

  • the Actor input for invalid URLs or date ranges
  • the run logs for request and pagination details
  • the Issues tab for feedback and known limitations

If you need custom fields, custom transformations, or a broader Facebook data workflow, this Actor can be extended into a more tailored solution.