Facebook Post Stats API

Reactions, comments, shares, views and plays for a public Facebook post, video or reel, by a Page or a person. Send a public URL and get the fields in the same terms the platform uses.

Input: Public Facebook post URL. Returns: one object, in Facebook's own field names. Price: 1 credit per call; failed reads are free.

GET /v1/facebook/stats Public Facebook post URL · One object

Try it with a sample URL.

The snippets use the production endpoint. Replace the sample URL with your own public target before running them.

Try this API live
1

Pick a sample input

Start from a valid shape, then replace the sample value with your public target.

Selected https://www.facebook.com/NASA/posts/1644708777024492 Open

2

Preview the request

Use a server-side key and send parameters as query values.

GET https://api.sourcevine.io/v1/facebook/stats
curl -G 'https://api.sourcevine.io/v1/facebook/stats' \
  -H 'Authorization: Bearer sv_live_...' \
  --data-urlencode 'url=https://www.facebook.com/NASA/posts/1644708777024492'
const params = new URLSearchParams({
  "url": "https://www.facebook.com/NASA/posts/1644708777024492",
});

const res = await fetch('https://api.sourcevine.io/v1/facebook/stats?' + params, {
  headers: { Authorization: 'Bearer sv_live_...' },
});

const body = await res.json();
console.log(body.data);
import requests

r = requests.get(
    "https://api.sourcevine.io/v1/facebook/stats",
    params={"url": "https://www.facebook.com/NASA/posts/1644708777024492"},
    headers={"Authorization": "Bearer sv_live_..."},
)

body = r.json()
print(body["data"])
Shows an illustrative response. Nothing leaves your browser.
3

Read the response

Every success includes availability, a fetch timestamp and billing context.

GET /v1/facebook/stats Not run

Hit Show sample response to see the response.

An illustrative response. This endpoint has no verified capture yet.

available 1 credit illustrative
Comments612
Shares2,150
Cost1 credit
{
  "success": true,
  "available": true,
  "data": {
    "url": "https://www.facebook.com/NASA/posts/1644708777024492",
    "postId": "1644708777024492",
    "text": "A new image from the telescope: a stellar nursery 7,000 light-years away.",
    "pageId": "100044561550831",
    "pageUsername": "NASA",
    "pageLink": "https://www.facebook.com/NASA",
    "reactions": 18400,
    "comments": 612,
    "shares": 2150,
    "views": null,
    "plays": null,
    "durationSeconds": null,
    "mediaType": "image",
    "publishedAt": "2026-08-27T18:04:12Z",
    "fetchedAt": "2026-08-28T09:41:44Z",
    "sourceTimestamp": "2026-08-27T18:04:12Z",
    "cached": false,
    "cacheAgeSeconds": 0
  }
}

Use this API from code, no-code tools, MCP clients and agents.

We build and maintain theseFirst-party surfaces, versioned with the API.

Response fields.

Each response includes typed availability, a fetch timestamp, and only the public fields this API promises.

FieldTypeMeaning
url string The public post, video or reel URL you sent.
postId string Facebook post or video id.
text string | null Public post text after contact-detail scrubbing. Null on a personal profile's post.
pageId string | null Id of the Page that published the post.
pageUsername string | null The Page's username. Null on a personal profile's post.
pageLink string | null Link to the publishing Page. Null on a personal profile's post.
reactions integer | null All reactions, of which a like is one kind. Where Facebook only shows a rounded figure such as 14K, this is that figure; null when no figure says more.
comments integer | null Public comment count.
shares integer | null Public share count. Null on a video's page, where Facebook does not show it.
views integer | null Video views where Facebook publishes them. Null on a photo or text post.
plays integer | null Video and reel plays where Facebook publishes them, separate from views.
durationSeconds number | null Length of a video or reel.
mediaType string | null video or image, when Facebook says which.
publishedAt ISO datetime | null When the post was published.
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.

How a request is handled.

  1. 01 Send a public URL

    Send a public Facebook post URL. Sourcevine resolves ids, validates the resource type and returns a typed response.

  2. 02 Checked

    A URL of the wrong kind or platform is refused with a 400 before any fetch, and not charged.

  3. 03 Read

    The public data is read when you call. An identical request moments earlier is answered again, free.

  4. 04 Unavailable is checked twice

    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.

  5. 05 JSON back

    Facebook names stay intact, so your code reads reactions instead of reverse-engineering a generic schema.

    fetchedAtcreditsChargedavailable

Every response carries fetchedAt and the platform timestamp, so you know how old a reading is before you act on it. Facebook Post Stats API fits recurring stats checks in dashboards, spreadsheets, workflows and agents.

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.

Where teams use Facebook Post Stats API.

Campaign reporting

Refresh public post metrics for the same URL set throughout a campaign.

Content benchmarking

Compare engagement fields in each platform’s own vocabulary.

Alerting

Watch a public post cross a view, comment or save threshold.

Data QA

Use typed availability and provenance to keep stale or private links out of reports.

1 credit per call, and nothing for a failed read.

The response and X-Credits-Charged header tell you what happened, including when it is zero.

Charged1 credit

  • AnsweredThe public data came back.
  • Not foundFacebook did not show the content on two checks: missing, deleted, private or blocked in a region.
  • Empty resultThe lookup was made and found nothing to return, such as an account with no posts.

Not charged0 credits

  • Failure on our sideA read we could not complete or confirm returns 503.
  • Unsupported URLThe wrong kind of URL, or a group, story or event: refused before any fetch.
  • Cache hitAn identical request moments earlier, answered again.

Common questions.

What does Facebook Post Stats API return?

Reactions, comments, shares, views and plays for a public Facebook post, video or reel, by a Page or a person.

How is it billed?

A call costs 1 credit, including an empty result. Retrieval failures are not charged.

What happens when the post or profile is private or deleted?

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.

Does Sourcevine return contact data?

No. Bios, emails, phone numbers, postal addresses and private or restricted content are outside the public response contract.

Do I need to log in to Facebook?

No. Your integration authenticates with a Sourcevine API key. You do not need to supply Facebook credentials or a session.