Facebook hub

Facebook profile posts API

List recent public posts from a Facebook profile or Page — text, permalink, publish time, reaction and comment counts — with cursor pagination in the shared Social Fetch envelope.

GET /v1/facebook/profiles/posts

1 credit per successful request.

About this endpoint

Brand monitors and competitive research jobs often need the Page feed after they resolve the profile card. You have a public Facebook URL or a numeric page id, you want the latest posts with engagement counts, and you need to page further when the first response is not enough. Scraping the timeline yourself means fighting login walls and markup that changes without notice.

`GET /v1/facebook/profiles/posts` lists public posts for a profile or Page. Pass either a full public `url` or a `pageId` query param. On success, read `data.posts` and `data.page`. Each post can include id, text, public URL, publishTime (Unix seconds), author display fields, reactionCount, commentCount, videoViewCount when Facebook shows it, and imageUrl when present. When `data.page.hasMore` is true, pass `data.page.nextCursor` as the `cursor` query param on the next call. Bill from `meta.creditsCharged`.

This route has no `lookupStatus`. An empty `data.posts` page with `hasMore: false` can mean no public posts, restricted visibility, or a bad URL or id. Call `GET /v1/facebook/profiles` first when you need an explicit `found` / `private` / `not_found` before you interpret an empty feed. Single-post lookup, reels, and photos are separate Facebook paths. Pricing for this operation is 1 credit per successful request.

Facebook profile posts API FAQ

How do I list Facebook posts for a profile or Page via API?

Call `GET /v1/facebook/profiles/posts` with your Social Fetch API key (`x-api-key`) and either a public Facebook `url` or a `pageId` query param. Read `data.posts` and `data.page` in the JSON response. Full parameters and examples are in the API docs.

How much does the Facebook profile posts endpoint 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. Each paginated page is a separate billed request.

How does pagination work on Facebook profile posts?

Each response includes `data.page.nextCursor` and `data.page.hasMore`. When `hasMore` is true, pass `nextCursor` as the `cursor` query param on the next request. The cursor is opaque — do not invent or parse it.

What fields are in each Facebook profile post?

Items can include id, text, public post URL, publishTime (Unix seconds), authorDisplayName, authorShortName, authorId, reactionCount, commentCount, videoViewCount when available, and imageUrl when Facebook exposes one. Coverage follows what is publicly visible for that profile or Page.

Why is an empty posts page ambiguous on this route?

This operation does not return `lookupStatus`. Empty `data.posts` with `hasMore: false` can mean no public posts, restricted visibility, or an unresolvable URL or id. Preflight with `GET /v1/facebook/profiles` when you need `found`, `private`, or `not_found` before treating an empty feed as real.

Profile posts vs single Facebook post vs reels or photos?

Use this route to page a profile or Page feed. Use `GET /v1/facebook/posts` when you already have a post URL. Use `GET /v1/facebook/profiles/reels` or `GET /v1/facebook/profiles/photos` for those media lists. 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 posts 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 Pages.