nvNeuralVerge
Social media

Facebook Posts API and MCP — Text, Reactions, Shares & Views

Send a Facebook page URL or name and this source returns the page's posts as data: text, time, likes, comments and shares counts, reactions broken down by type, video views, attached media with OCR text, links and a few top comments. Pass a single post URL instead and it returns that one post.

You send
A page URL, page name or single post URL, with optional date filters
You get back
Posts with text, time, engagement counts, reactions by type and media
Coverage
Posts on public Facebook pages, and single public posts by URL.
Price
5 points per returned post, up to 1,000 per request — $5 per 1,000
Billed per post actually returned, capped by max_items. A page with no posts in your window costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Scrolling the pageOpen the feed, copy posts and counts by handFree, and slowNo way to cover months of posts across several competitors
A social listening suiteA sales call and a seat licenceAnnual contractBroad dashboards, but the raw post data is often hard to get out
NeuralVergeOne request per page$5 per 1,000, misses not billedPublic engagement counts only — no reach or impression data, which only the page owner sees
Response

What you get back

Every field in the example response below.

FieldTypeDescription
total_itemsnumberHow many posts came back.
items[].idstringFacebook's post ID.
items[].urlstringDirect link to the post.
items[].timestringWhen the post was published (ISO 8601).
items[].textstringPost text.
items[].authorobjectThe page or person who posted: id, name and profile link.
items[].likes_countnumberLikes on the post.
items[].comments_countnumberComments on the post.
items[].shares_countnumberShares of the post.
items[].views_countnumber | nullVideo views, for video posts.
items[].reactionsobjectReaction counts by type: like, love, haha, wow, sad, angry, care.
items[].is_videobooleanWhether the post is a video or reel.
items[].video_transcriptstring | nullWhat was said in the video, when include_video_transcript is on.
items[].mediaarrayAttached photos and videos, with thumbnail and OCR text where available.
items[].linkstring | nullOutbound link in the post.
items[].paid_partnershipbooleanWhether the post is marked as a paid partnership.
items[].top_commentsarrayA few top comments with text, date, author and likes.
Response

Example response

A real response, as returned.

{
  "session_id": "5c009905-3d0b-4c6f-91bc-f39fd32385db",
  "kind": "facebook_posts",
  "url": "https://www.facebook.com/NASA/",
  "max_items": 2,
  "include_video_transcript": false,
  "partial": false,
  "machine": {
    "total_items": 2,
    "items": [
      {
        "id": "1667357668092936",
        "url": "https://www.facebook.com/NASA/posts/pfbid037y4YEtzSz15deRRZ5SeZg2vWoCgThrYAHqNTkcxrshdkwhnaNknzD3KE8G1Hp3Upl",
        "time": "2026-10-25T22:30:00.000Z",
        "text": "Have you put up your Halloween decor? The night sky will add the finishing touch. 🌕 October’s full moon, named the Hunter’s Moon, will rise on the night of Oct. 26. Its name comes from the seasonal practice of hunters relying on bright moonlight.",
        "author": {
          "id": "100044561550831",
          "name": "NASA - National Aeronautics and Space Administration",
          "profile_url": "https://www.facebook.com/100044561550831"
        },
        "page_name": "NASA",
        "likes_count": 3802,
        "comments_count": 120,
        "shares_count": 532,
        "views_count": null,
        "reactions": { "like": 2399, "love": 1308, "haha": 4, "wow": 20, "sad": null, "angry": 1, "care": 70 },
        "is_video": false,
        "media": [
          {
            "type": "Photo",
            "url": "https://www.facebook.com/photo/?fbid=1667357648092938&set=a.416661013162614",
            "ocr_text": "A mostly-full Moon appears deep yellow in contrast with the blue night sky around it. A dark flock of birds flies just below it."
          }
        ],
        "link": null,
        "paid_partnership": false,
        "top_comments": []
      },
      {
        "id": "1665530011609035",
        "url": "https://www.facebook.com/reel/1803909017420449/",
        "time": "2026-10-23T23:40:58.000Z",
        "text": "We are not slowing down. 🚀 Our Artemis III mission will send four astronauts to low Earth orbit next year to test critical systems needed for future lunar landings https://go.nasa.gov/4zV3TuG and we’re accelerating efforts to ensure the success of Artemis IV, the first Artemis mission on the lunar surface https://go.nasa.gov/3UeKjdl.",
        "page_name": "NASA",
        "likes_count": 3815,
        "comments_count": 158,
        "shares_count": 379,
        "views_count": 277481,
        "reactions": { "like": 3270, "love": 467, "haha": 14, "wow": 17, "sad": null, "angry": 1, "care": 46 },
        "is_video": true,
        "video_transcript": null,
        "link": "https://go.nasa.gov/4zV3TuG",
        "paid_partnership": false
      }
    ],
    "errors": []
  },
  "total_points": 10
}
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

This endpoint is synchronous: the call blocks until the lookup completes and returns the records directly. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever it collected so far — re-run with a smaller max_items for a complete result. url is required. Optional: max_items (1-1,000, default 20), newer_than and older_than (a date like 2026-01-01 or a period like 3 months), include_video_transcript (boolean).

curl -X POST https://api.neuralverge.ai/functions/v1/run-facebook-posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://www.facebook.com/NASA/", "max_items": 20, "newer_than": "3 months" }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Competitor content tracking

See what competitors post, how often, and which posts get engagement.

Campaign benchmarking

Compare reactions, shares and video views across brands over the same window.

Account research

Read what a prospect has announced recently before you reach out.

Video content analysis

Pull transcripts of video posts to analyse messaging, not just thumbnails.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Posts on public Facebook pages, and single public posts by URL.

Freshness

Read at request time — engagement counts are a snapshot at that moment.

Handling

This source returns content a page published publicly. Top comments can include the names and words of private individuals — use them for legitimate business purposes and check the acceptable use policy.

What it will not do
  • —Reach and impressions are private to the page owner and are not returned.
  • —Engagement keeps growing after a post goes up, so recent posts undercount compared with older ones.
  • —Video transcripts are only available when the video has speech that can be transcribed.
FAQ

Questions, answered

Yes — every Data Source endpoint, including this one, is synchronous: the lookup runs inside the request and the result comes back in the same response, no polling. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with a smaller max_items to get a complete result instead of a partial one.

Related

Related sources

Try facebook posts on your own data

One request format across every source in the catalog.

Get started