Facebook Page Posts API reference

The latest public posts of a Facebook Page, each with its reactions, comments and shares. Takes a public URL, returns a cursor page, 3 credits a call.

This named API keeps Facebook fields in Facebook's own vocabulary. For a higher-level product page, see Facebook Page Posts API.

Endpoint

GET /v1/facebook/posts
Authorization: Bearer sv_live_...

`POST` is also accepted with the same parameters in the request body. Send the key in the `Authorization` header, never in the query string.

Parameters

NameTypeRequiredNotes
url string yes Public Facebook URL matching this API's input.
cursor string no Cursor returned by the previous page.
limit integer no Maximum items to return, up to 50.

Sample Request

This is a copyable request shape. Replace the sample values with the public Facebook target or parameters your workflow uses.

curl -G 'https://api.sourcevine.io/v1/facebook/posts' \
  -H 'Authorization: Bearer sv_live_...' \
  --data-urlencode 'url=https://www.facebook.com/NASA' \
  --data-urlencode 'limit=20'

Sample Response

The response below is illustrative: this endpoint has no verified recording. Live values depend on the public resource and its availability.

{
  "success": true,
  "available": true,
  "data": {
    "nextCursor": "20",
    "fetchedAt": "2026-08-28T09:41:44Z",
    "cached": false,
    "cacheAgeSeconds": 0
  }
}

Fields

FieldTypeNotes
items array A page of public Facebook posts or videos.
nextCursor string | null Pass as cursor to request the next page.
items[].views integer | null Present only where the platform reports it.
items[].likes integer | null Per-item public like count.
items[].cached boolean Matches the page provenance on cached reads.
fetchedAt ISO datetime When Sourcevine read the public page.
sourceTimestamp ISO datetime | null The platform timestamp when it is available.
cached boolean True when this answer repeats an identical request made moments earlier.
cacheAgeSeconds integer Seconds since the reading was taken.

Availability States

StatusChargedClient behavior
availableyes for live readsUse data.
unsupportednoFix the URL or call the matching API. Groups, stories and events are always unsupported.
not_foundyesFacebook did not show the content on two checks: missing, deleted, private or blocked. Store the state and stop polling.
upstream_unavailable (503)noRetry later with backoff.

Unavailable resources return `success: true`, `available: false`, `availability`, and `data: null`. API or authentication failures return `success: false` with an `error` object.

Billing

A call costs 3 credits. Facebook shows the same "This content isn’t available" page for content that is missing, deleted, private or blocked in a region. When a second check confirms that page, the call reports not found and is charged like any lookup. It is never reported as private, because the page does not say which case it is. If we cannot confirm it, the call returns 503 and is not charged. An unsupported URL is not charged either. The `X-Credits-Charged` response header is the source of truth for what happened on that request.

Successful responses include `fetchedAt`, the time we read the platform.

What This API Does Not Return

  • No contact or bio fields: Bios, email addresses, phone numbers, postal addresses and messenger handles are outside the response contract.
  • Personal profiles are counts only: For a post by a personal profile the response carries the counts only. The post text and the author's name are returned for Pages only.
  • No groups, stories or events: Groups, stories and events are not supported: those URLs are refused with a 400 before any fetch, and not charged.

Related

Last updated 1 September 2026