Facebook Post API
Resolve a public Facebook post or Reel permalink to structured JSON — caption, author, engagement, and media URLs — without a Meta Graph app for content you do not own.
GET /v1/facebook/posts1 credit per successful request.
About this endpoint
Brand monitoring and enrichment jobs often land on a single Facebook permalink: a share link from Slack, a Reel URL from a competitor alert, a post id pasted out of a CRM. You need the caption, who posted it, likes and comments when Facebook shows them, and media URLs you can store. Scraping the post HTML yourself hits login walls and markup that moves without notice.
`GET /v1/facebook/posts` takes a required public post or Reel `url` query param and returns the shared Social Fetch envelope. Branch on `data.lookupStatus` before you write a row — `found` or `not_found`. On `found`, read `data.post` (id, URL, description, publishedAt, feedbackId), plus `author`, `metrics`, `media`, and `music` when present. Pass `includeComments=true` for a sample of top-level comments, or `includeTranscript=true` when you want plain-text transcript text for a video that has one.
This route is one post or Reel by permalink. To page a page's feed use `GET /v1/facebook/profiles/posts`. For a full comment thread use `GET /v1/facebook/posts/comments`. A dedicated transcript-only call is `GET /v1/facebook/posts/transcript`. Pricing is on the credit badge for this operation; bill from `meta.creditsCharged` on every response.
Facebook Post API FAQ
How do I get a Facebook post or Reel via API?
Call `GET /v1/facebook/posts` with your Social Fetch API key (`x-api-key`) and a public post or Reel `url` query param. Read `data.lookupStatus` and the post payload in the JSON response. Full parameters and examples are in the API docs.
How much does the Facebook Post API cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.
What fields does the Facebook post response include?
When `lookupStatus` is `found`, the payload can include post identity (`postId`, URL, description, publishedAt, feedbackId), author (name, profile URL, avatar, verified), metrics (likes, comments, shares, views, reaction breakdowns when exposed), media (thumbnail, image, video and HD video URLs, duration, dimensions), and attached music metadata when Facebook shows it.
Can I include comments or a transcript on the same call?
Yes. Set `includeComments=true` for a sample of top-level comments when available. Set `includeTranscript=true` for plain-text transcript text when the video has one. For paging a full comment thread, use `GET /v1/facebook/posts/comments` instead.
Facebook post by URL vs profile posts list?
Use `GET /v1/facebook/posts` when you already have a post or Reel permalink. Use `GET /v1/facebook/profiles/posts` to page posts for a page or profile URL. They are separate operations on the Facebook hub.
Do I need Meta Graph API access or page admin rights?
No. Social Fetch returns publicly visible post and Reel data for enrichment-style lookups. Meta's Graph and Marketing APIs are for assets and ads accounts you control or that authorize your app — not arbitrary public competitor posts.
What happens for missing or unavailable Facebook posts?
The call still returns a typed `lookupStatus`. Unknown or removed URLs resolve as `not_found` with null post fields. Do not invent captions, metrics, or media URLs. Keep `meta.requestId` if you need support on a failed enrichment row.
Other Facebook endpoints
- ProfileGET /v1/facebook/profiles
- Profile postsGET /v1/facebook/profiles/posts
- Profile reelsGET /v1/facebook/profiles/reels
- Profile photosGET /v1/facebook/profiles/photos
- CommentsGET /v1/facebook/posts/comments
- RepliesGET /v1/facebook/posts/comments/replies
- TranscriptGET /v1/facebook/posts/transcript
- Group postsGET /v1/facebook/groups/posts