SFOLN

Catalogue / Social media data

Facebook Posts Scraper – Pages & Profiles

sfoln/facebook-page-posts · Social media, Lead generation, Automation On request

Scrape public posts from Facebook pages and profiles: text, date, type, reactions, comments, shares, video views, image and video URLs, links and hashtags, one row per post. $0.60 per 1,000 posts + $0.004 per request of up to 3 posts.

About

What it does

Facebook Posts Scraper – Pages & Profiles gets public posts from Facebook pages and profiles, one normalized record per post: post ID, URL, text, date, type (reel, video, photo, link, status), reaction, comment and share counts, video views, thumbnail, video and image URLs, outbound link and hashtags. It's built for competitor and brand monitoring, social listening, content research, dataset building and AI agents.

Price

Price per delivered record

EventPricePer 1,000Charged for
Facebook post
facebook-post
$0.0006$0.60 / 1,000Charged once per Facebook post delivered as a dataset record. Page summary records are never charged.
Facebook posts page
facebook-posts-query
$0.004$4 / 1,000Charged once per page of posts (up to 3, an upstream limit) that delivered at least one new post. Covers the per-request upstream fee. Also charged for an empty page the upstream billed (when the budget covers it).

Apify free plan: up to 10 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.

Run

Call it from code, an agent or the Console

This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com

curl · synchronous run, rows in the response
curl -X POST "https://api.apify.com/v2/actors/sfoln~facebook-page-posts/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"pages":["https://www.facebook.com/pacemorby"],"maxPostsPerPage":6}'
mcp.json · hosted Apify MCP server
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=sfoln/facebook-page-posts"
    }
  }
}
asynchronous run · for large batches
POST https://api.apify.com/v2/actors/sfoln~facebook-page-posts/runs?maxTotalChargeUsd=1
GET  https://api.apify.com/v2/actor-runs/{runId}            # until status is SUCCEEDED
GET  https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json

Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: Get the 20 latest public posts of the Facebook page facebook.com/nasa and tell me which ones got the most reactions and shares.

Input

Input fields

Enter Facebook page or profile URLs. Each page produces one dataset record per post plus one summary record per page.

FieldTypeDefaultMeaning
pages *arrayrequiredPages
Facebook page or profile URLs (https://www.facebook.com/name, profile.php?id=…), vanity names, or numeric page IDs. Duplicates are removed. Accounts on the Apify free plan can process up to 10 pages per run.
maxPostsPerPageinteger20Max posts per page
How many posts to return per page (1–200). The upstream returns 3 posts per request; each delivered post is one charged event, plus one fee per request. Range 1–200.
maxPagesinteger100Max pages
Safety cap on the number of pages processed in this run. Range 1–1000.
concurrencyinteger4Concurrency
How many pages are fetched in parallel (1–8). Range 1–8.
itemTimeoutSecsinteger600Time limit per input (seconds)
Pagination for one page stops cleanly shortly before this limit (60–3600). Raise it for very large per-input limits. Range 60–3600.
includeRawbooleanfalseInclude raw upstream response
Attach the unmodified provider object to each result record.
Example input
{
  "pages": [
    "https://www.facebook.com/pacemorby"
  ],
  "maxPostsPerPage": 6
}

Output

One record per input item

Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.

FieldTypeMeaning
inputstring | objectInput
The page URL, handle or ID as provided.
recordTypestringRecord type
post (one per delivered post, charged) | page (one summary per page, never charged) e.g. "post"
positionintegerPosition
1-based position of the post within its input
pagestring | nullPage
Vanity name or numeric id
pageUrlstring | nullPage URL
postIdstring | nullPost ID
urlstring | nullPost URL
textstring | nullText
createdAtstring | nullCreated at
ISO 8601 UTC
typestring | nullType
reel | video | photo | link | status (inferred)
authorNamestring | nullAuthor name
authorIdstring | nullAuthor ID
reactionsnumber | nullReactions
All reaction types combined
commentsnumber | nullComments
sharesnumber | nullShares
videoViewsnumber | nullVideo views
thumbnailUrlstring | nullThumbnail URL
mediaUrlsarrayMedia URLs
Temporary CDN links
linkUrlstring | nullLink URL
hashtagsarrayHashtags
rowsDeliveredintegerPosts delivered
Summary records only.
pagesFetchedintegerPages fetched
Summary records only.
pagesChargedintegerPages charged
Summary records only.
reachedEndbooleanReached end
Summary records only: the upstream reported no further pages.
stopReasonstringStop reason
Summary records only: limit | end | budget | max_pages | deadline | empty_pages | error
statusstringStatus
ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan e.g. "ok"
chargedbooleanCharged
chargedEventstringCharged event
errorobjectError
warningsarrayWarnings
sourcestringSource
fetchedAtstringFetched at
Example record
{
  "input": "https://www.facebook.com/pacemorby",
  "recordType": "post",
  "position": 1,
  "page": "pacemorby",
  "pageUrl": "https://www.facebook.com/pacemorby",
  "postId": "1204545088344463",
  "url": "https://www.facebook.com/reel/486651220706068/",
  "text": "I've had such a blast doing the No One Left Behind Challenge this year! Join me this Friday Dec 20 @ 5PM MST to learn about next month's challenge! https://subto.sjv.io/3Jk9Py",
  "createdAt": "2024-12-18T20:19:30.000Z",
  "type": "reel",
  "authorName": "Pace Morby",
  "authorId": "100063669491743",
  "reactions": 133,
  "comments": 12,
  "shares": null,
  "videoViews": null,
  "thumbnailUrl": "https://scontent-atl3-1.xx.fbcdn.net/v/t15.5256-10/….jpg",
  "mediaUrls": [
    "https://video-atl3-1.xx.fbcdn.net/o1/v/t2/f2/m69/….mp4"
  ],
  "linkUrl": "https://subto.sjv.io/3Jk9Py",
  "hashtags": [],
  "status": "ok",
  "charged": true,
  "chargedEvent": "facebook-post",
  "source": "scrapecreators",
  "fetchedAt": "2026-10-14T10:00:00.000Z"
}

Machine-readable

This page for agents