# Facebook Post Analytics - Video Views, Reactions & Shares PPR (`zaver.api/facebook-post-analytics`) Actor

Get detailed analytics for any public Facebook post, video or reel - no login. Paste URLs and get views, plays, reactions with a per-emoji breakdown, comments and shares. Export to CSV, JSON or Excel, run via API or on a schedule.

- **URL**: https://apify.com/zaver.api/facebook-post-analytics.md
- **Developed by:** [Zaver](https://apify.com/zaver.api) (community)
- **Categories:**
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 facebook post analytics & metrics

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Facebook Post Analytics 📘📊

**Facebook Post Analytics** gets **detailed metrics for any public Facebook post, video or reel** — **no login, no password**. Paste one or more Facebook URLs and get **views, plays, total reactions with a per-emoji breakdown, comments and shares**, plus the page name and post title. Export to **CSV, Excel or JSON**, or pull it via the **API**.

Built for **social media analytics, competitor benchmarking, campaign reporting and video-performance tracking**.

- ✅ **No login, no password** — public content read anonymously
- ✅ **Video views & plays** for watch pages
- ✅ **Reactions breakdown** — Like, Love, Haha, Wow, Sad, Angry counts, not just a total
- ✅ **Comments & shares**
- ✅ **Bulk** — analyze many posts in one run
- ✅ **CSV, Excel, JSON, XML** export + full API, scheduler and integrations

***

### What data does it extract?

One row per post/video:

| Field | Description | Example |
|---|---|---|
| `channel` | Page / owner name | `NASA` |
| `title` | Post or video title | `Launch highlights` |
| `view_count` | Video views | `250000` |
| `likes` | Total reactions | `4200` |
| `reactions_breakdown` | Per-reaction counts | `{"Like":3000,"Love":900,"Wow":300}` |
| `comments` | Comment count | `310` |
| `shares` | Share count | `25` |
| `post_url` | Canonical post URL | `https://www.facebook.com/watch/?v=…` |

### Why choose this Facebook analytics scraper?

- **Reactions breakdown, not just a total.** See exactly how an audience reacted — Love vs Haha vs Angry — which raw "like" totals hide. Useful for sentiment and creative testing.
- **Video views + plays.** For watch pages you get both the view count and play count, the numbers that matter for video performance.
- **No login, bulk, schedulable.** Feed a list of URLs and run on a schedule to track how posts perform over time. Your Facebook account is never used.

### How to analyze Facebook posts (step by step)

1. Paste one or more **post, video or reel URLs** (a `/watch/?v=…` link, a `/reel/<id>` link, or an `fb.watch` share link).
2. Click **Start**.
3. Download from the **Storage → Dataset** tab as **CSV, Excel, JSON or XML**, or read via the API.

#### Example input

```json
{
  "postUrls": [
    "https://www.facebook.com/watch/?v=1234567890",
    "https://www.facebook.com/reel/9876543210"
  ]
}
```

#### Example output

```json
{
  "channel": "NASA",
  "title": "Launch highlights",
  "view_count": 250000,
  "likes": 4200,
  "reactions_breakdown": {"Like": 3000, "Love": 900, "Wow": 300},
  "comments": 310,
  "shares": 25,
  "post_url": "https://www.facebook.com/watch/?v=1234567890"
}
```

#### Run it via the Apify API

```bash
curl "https://api.apify.com/v2/acts/YOUR~ACTOR/runs?token=YOUR_TOKEN" \
  -X POST -H "Content-Type: application/json" \
  -d '{"postUrls": ["https://www.facebook.com/watch/?v=1234567890"]}'
```

Works with the **Apify SDK**, **scheduled runs**, **webhooks**, and integrations for **Make, Zapier, n8n, Google Sheets and LangChain**.

### Pricing — pay only for results

You are billed **per post successfully analyzed**. Removed or login-gated posts return an error row and cost **nothing**.

| Result type | Price |
|---|---|
| Analyzed post / video | **$0.005 per post** ($5 / 1,000) |

### Frequently asked questions

#### Do I need to log in to Facebook?

No. The Actor reads public post pages anonymously — no login, no password.

#### Do I get the reaction breakdown or just a total?

Both. `likes` is the total reactions, and `reactions_breakdown` splits it into Like, Love, Haha, Wow, Sad and Angry where Facebook exposes them.

#### Which URL types work?

Public `/watch/?v=…` videos, `/reel/<id>` reels, and `fb.watch` share links. Reels use a reduced logged-out schema, so they return reactions/comments/shares but not always view counts.

#### Why did a post come back as "unavailable"?

The post may be removed, private, or require login to view. Those rows are not billed.

#### Is this legal?

The Actor collects only **publicly available** data. You are responsible for using it in compliance with the laws that apply to you and Facebook's terms.

### Support & roadmap

Open an issue on the Actor's **Issues** tab. On the roadmap: **page-level post discovery** (analyze a page's recent posts by URL) and **comment export**.

# Actor input Schema

## `postUrls` (type: `array`):

URLs of the Facebook posts, videos or reels to analyze. One per line, e.g. <code>https://www.facebook.com/watch/?v=1234567890</code>, a <code>/reel/\<id></code> link, or an <code>fb.watch</code> share link. Public content only.

## Actor input object example

```json
{
  "postUrls": [
    "https://www.facebook.com/watch/?v=1234567890"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

One dataset item per post, with views, reactions (and breakdown), comments and shares.

## `resultsCsv` (type: `string`):

The same records as a CSV download, ready for Excel or Sheets.

## `runSummary` (type: `string`):

Counts for the run: fetches, posts analyzed and errors.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "postUrls": [
        "https://www.facebook.com/watch/?v=1234567890"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zaver.api/facebook-post-analytics").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "postUrls": ["https://www.facebook.com/watch/?v=1234567890"] }

# Run the Actor and wait for it to finish
run = client.actor("zaver.api/facebook-post-analytics").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "postUrls": [
    "https://www.facebook.com/watch/?v=1234567890"
  ]
}' |
apify call zaver.api/facebook-post-analytics --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaver.api/facebook-post-analytics"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QL64OQosQQ2sgoShm/builds/jKSU4eCdqhXKtkzRV/openapi.json
