DEV Community

Vhub Systems
Vhub Systems

Posted on

Monitor Public Facebook Pages Without a Graph API Token: A Practical Workflow

Facebook's Graph API is the right tool when you manage the page and have the required permissions. It is much less convenient when the job is simply to monitor a few public business pages that you do not own.

For that narrower case, I use a scheduled extraction workflow:

  1. collect the latest public posts from a fixed list of pages;
  2. store one dataset item per post;
  3. export the dataset to a sheet or database;
  4. compare engagement and publishing cadence across runs.

The important constraint is "public pages." This is not a way to access private groups, profiles, or content behind a login.

Minimal input

Start with one page and a small result limit:

{
  "pages": ["https://www.facebook.com/NASA"],
  "maxPosts": 20,
  "includeComments": true
}
Enter fullscreen mode Exit fullscreen mode

A useful result has the post text and URL, publication time, available reaction counters, and basic page metadata. Some fields will be null because Facebook does not expose every value consistently.

A simple monitoring loop

For a recurring report, save the input as an Apify Task and schedule it daily or weekly. Send each run's dataset to Google Sheets, Airtable, n8n, Make, or your own database.

The first comparison I usually calculate is deliberately simple:

engagement = likes_count + comments_count + shares_count
Enter fullscreen mode Exit fullscreen mode

Then group by page and week to answer:

  • Which page publishes most often?
  • Which post formats get the strongest visible engagement?
  • Did a competitor change its publishing cadence?
  • Which posts are worth reviewing manually?

This gives a compact signal without trying to recreate Facebook analytics from public data.

What breaks in production

Public Facebook markup changes often. Pages can also be region restricted, age restricted, temporarily unavailable, or only partially visible without authentication. A production pipeline must treat missing fields as missing data, not as zero.

Keep the raw post URL in every row. When a result looks unusual, that URL is the fastest way to verify it manually.

Cost control

The hosted Actor I use charges $0.002 per run start and $0.003 per dataset item. A 20-item test is therefore about $0.062; 100 items are about $0.302. Apify shows the actual charge for each run.

Start small, verify the output for your target pages, and only then raise the result limit or add a schedule.

The workflow is packaged as the Facebook Public Pages Scraper. It exports JSON, CSV, and Excel, and the Store page includes the exact input schema and current pricing.

Use public data responsibly and follow applicable law, Facebook's terms, and Apify's acceptable-use policy.

Top comments (0)