> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/facebook/posts>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/facebook/posts.mdx>

---

# 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/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, and `linkAttachment` for link-share posts), plus `author`, `metrics`, `media`, and `music` when present. `media.imageUrl` is the primary image; when the post is a multi-image carousel, `media.imageUrls` lists the full gallery. Those are source-platform CDN links and can expire. 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`. Bill from `meta.creditsCharged`.

## Request

- **Endpoint:** `GET /v1/facebook/posts`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by post URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/facebook/posts/get)
- **Platform page:** [/platforms/facebook](https://www.socialfetch.dev/platforms/facebook)

## 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. See the API docs for parameters and examples.

### 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), the shared link preview (`linkAttachment`: url, title, imageUrl) on link-share posts, author (name, profile URL, avatar, verified), metrics (likes, comments, shares, views, reaction breakdowns when exposed), media (thumbnail, primary `imageUrl`, gallery `imageUrls` for carousels, video and HD video URLs, duration, dimensions), and attached music metadata when Facebook shows it. Source CDN image and video URLs can expire outside the original retrieval context.

### 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.
