Facebook Post Detail avatar

Facebook Post Detail

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Facebook Post Detail

Facebook Post Detail

Scrape a single public Facebook post: text, author, timestamp, reaction count, comment count, images, and top comments.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

10 days ago

Last modified

Categories

Share

Facebook Post Detail Scraper

Extract full details for a single public Facebook post by URL — author, full text, timestamp, attached media, reactions, comments count and shares count — in a clean structured JSON output.

Why use this actor

  • No account / no login required — just paste a public Facebook post URL.
  • No API key needed — Facebook's Graph API does not return public post content without permissions; this actor returns the same data the public web page shows.
  • Rich detail — full post text (not truncated), author name and profile URL, media URLs, ISO-8601 creation timestamp, reactions, comments count and shares count in a single row.
  • Bulk input — pass a list of post URLs in one run; one clean dataset row per post.
  • Automatic retries — transient failures retry with exponential backoff; posts that genuinely don't exist or are gated surface as _error rows so you can triage failures.
  • Stable JSON output suitable for pipelines, spreadsheets, and databases — every row carries _input, _source, _scrapedAt envelope fields so you can join results back to your input list.

How it works

  1. You provide a list of Facebook post URLs (e.g. https://www.facebook.com/NASA/posts/1524998752328829).
  2. The actor fetches each post page and reads the post record the same way the Facebook web app does, then assembles a flat JSON record with author, body, media and engagement counts.
  3. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.

Input

{
"posts": [
"https://www.facebook.com/NASA/posts/1524998752328829",
"https://www.facebook.com/Meta/posts/pfbid02fponXQPxSYZfbPKTGuDWvV7evMdoSFdqGn7TPR3kium9mzh4McCc6JXghsHLPkZXl"
],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["DATACENTER"]
}
}
FieldTypeDescription
postsarrayList of public Facebook post URLs to scrape. Standard facebook.com/<page>/posts/<id>, story.php?story_fbid=..., share/p/... and permalink/... formats are all accepted.
proxyConfigurationobjectApify Proxy settings. Datacenter proxy works for most public posts; switch to Residential if you hit rate limits on large runs.

Output

Input: https://www.facebook.com/NASA/posts/1524998752328829

{
"_input": "https://www.facebook.com/NASA/posts/1524998752328829",
"_source": "S1-primary",
"_scrapedAt": "2026-05-18T11:37:16.784655+00:00",
"postId": "1524998752328829",
"id": "UzpfSTEwMDA0NDU2MTU1MDgzMToxNTI0OTk4NzUyMzI4ODI5OjE1MjQ5OTg3NTIzMjg4Mjk=",
"ownerName": "NASA - National Aeronautics and Space Administration",
"ownerProfileUrl": "https://www.facebook.com/NASA",
"ownerImageUrl": "https://scontent.fcgk12-2.fna.fbcdn.net/v/t39.30808-1/243095782_416661036495945_3843362260429099279_n.png?stp=cp0_dst-png_s50x50&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&...",
"createdAt": "2026-05-13T17:25:44+00:00",
"createdAtEpoch": 1778693144,
"text": "Planning is underway for our Artemis III mission, which will test the capabilities of NASA's Orion spacecraft and one or both commercial landers from Blue Origin and SpaceX as they meet and dock in Earth's orbit. \n\nThis highly complex mission will be an important step to landing astronauts on the Moon with Artemis IV in 2028. Details: https://go.nasa.gov/4dv2scO",
"permalink": "https://www.facebook.com/NASA/posts/pfbid02fponXQPxSYZfbPKTGuDWvV7evMdoSFdqGn7TPR3kium9mzh4McCc6JXghsHLPkZXl",
"reactionCount": null,
"reactionCountText": "7.1K",
"commentCount": 527,
"shareCount": 640
}
FieldTypeDescription
_inputstringThe URL exactly as you supplied it. Use this to join results back to your input list.
_sourcestringInternal tag for the path used to fetch the record. S1-primary means the fastest, richest path; values starting with S2-/S3- indicate a fallback was used.
_scrapedAtstringISO-8601 UTC timestamp when the record was scraped.
postIdstringFacebook's numeric post ID. Stable for the lifetime of the post.
idstringFacebook's encoded post ID (base64). Useful for cross-referencing with other Facebook records.
ownerNamestringDisplay name of the page or profile that authored the post.
ownerProfileUrlstringCanonical URL of the author's Facebook page or profile.
ownerImageUrlstringURL of the author's profile picture (thumbnail size). Expires after a few hours — re-fetch if you need long-term storage.
createdAtstringISO-8601 UTC timestamp when the post was published.
createdAtEpochintegerUnix epoch (seconds) when the post was published.
textstringFull post body, including line breaks and links. null if the post is media-only with no caption.
permalinkstringCanonical Facebook permalink (uses the long pfbid… form).
reactionCountintegerTotal reactions when available as a raw integer. Often null on posts where Facebook only renders a rounded label — use reactionCountText instead.
reactionCountTextstringFacebook's rounded label for reactions (e.g. "7.1K", "1.2M"). Always present.
commentCountintegerApproximate comments count. Includes top-level and nested comments.
shareCountintegerApproximate shares count.

Error envelope

Posts that don't exist, are deleted, or fail to fetch return a structured error instead of crashing the run:

{
"_input": "https://www.facebook.com/NASA/posts/0000000000000000",
"_error": "not_found",
"_scrapedAt": "2026-05-18T11:38:02.012345+00:00"
}

Common _error values:

ValueMeaning
not_foundPost was deleted, the page was removed, or the URL is malformed.
login_wallPost is friends-only or otherwise gated behind a Facebook login.
fetch_failedNetwork failure after retries. _errorDetail carries the underlying message.

Filter on _error to triage failed rows.

Pricing

This actor is billed per result: $6.00 per 1,000 posts (Tier 4). Each successful post = 1 result. Errors (not_found, login_wall) are not billed.

Other Sosmed Actors

PlatformActorBest for
FacebookFacebook Page ScraperPage profile — name, category, likes, follower count
FacebookFacebook Page Posts ScraperRecent posts feed for any public page
InstagramInstagram Post Detail ScraperCaption, media, likes and comments for a single post
ThreadsThreads Post Detail ScraperFull thread + replies for a single Threads URL
X (Twitter)X Post Detail ScraperTweet text, media, engagement counts
BlueskyBluesky Post Detail ScraperSkeet content + counters by atproto URL
RedditReddit Post Detail ScraperSubmission body + score for any thread
YouTubeYouTube Video Detail ScraperVideo metadata, views, likes, channel

Browse the full catalog at apify.com/xtracto.

Notes

  • Deleted posts and removed pages return {"_error": "not_found", "_input": "..."}. Filter these out before billing reports.
  • reactionCount is the raw integer when Facebook exposes it; on many pages Facebook only renders a rounded label, in which case reactionCount is null and you should use reactionCountText ("7.1K", "1.2M").
  • commentCount and shareCount are the counts Facebook displays on the post — Facebook itself rounds these for large posts, so treat them as approximate near the high end.
  • ownerImageUrl is a short-lived CDN URL — re-fetch or re-host if you need long-term storage.
  • For large jobs (>1,000 posts), keep the default Datacenter proxy but enable Apify Proxy rotation; switch to Residential only if you start seeing login_wall rows on otherwise public posts.