# Facebook Reel Details Scraper – Video & Engagement (`scrapingmonkey/facebook-reel-details-scraper`) Actor

Extract public Facebook Reel captions, engagement, video URLs, author and audio details from full Reel links. Export one result per Reel without Facebook login.

- **URL**: https://apify.com/scrapingmonkey/facebook-reel-details-scraper.md
- **Developed by:** [ScrapingMonkey](https://apify.com/scrapingmonkey) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

Turn a public Facebook Reel URL into a record of its caption, author, engagement, video and audio information. **Facebook Reel Details Scraper** is designed for selected Reel links, with one result per processed Reel.

Use it for campaign reporting, content enrichment or a media reference catalog. Each result retains the original input and an explicit status, and no Facebook login or cookies are required.

| At a glance | Details |
|---|---|
| 📥 Input | Full Facebook /reel/ URLs |
| 📤 Output | Reel identity, caption, engagement, author, audio and available video references |
| 🔐 Login required | No Facebook credentials or cookies |
| 📄 Collection | One detail lookup per target; no pagination setting |
| 💾 Delivery | One row per processed Reel; JSON, CSV, Excel or API |

### What the Facebook Reel Details Scraper extracts 🔎

The Actor extracts details from the individual Reel you submit. It does not expand that URL into the author’s wider Reel collection.

- Reel, post and story IDs, public URL, caption and publication time
- Available play, reaction, comment and share counts
- Thumbnail, HD and SD video references, duration and dimensions
- Caption-file and streaming-manifest information when exposed
- Author details, audio title and original-audio flag
- Reaction breakdown, sponsorship, reshare and remix status

### How to scrape Facebook Reel details 🚀

1. Copy a full public Facebook `/reel/` URL and add it to `inputList`.
2. Put each target in a separate `inputList` item.
3. Start the Actor and inspect the dataset’s `status` column.
4. Export successful rows or connect the results to your workflow.

```json
{
  "inputList": [
    "https://www.facebook.com/reel/4553801421614065/"
  ]
}
```

### Facebook Reel details data fields and output 📦

| Field group | Included data |
|---|---|
| Identity and caption | IDs, canonical URL, type, message and publication time |
| Engagement | Plays, total reactions, comments, shares and reaction lists |
| Media | Thumbnail, video URLs, duration, dimensions, captions and streaming fields |
| Author | `author.*` identity, Page ID, profile URL, image and verification |
| Audio | Audio ID, type, title, cover and original-audio flag |
| Reel flags | Sponsorship, reshare and remix status |

Complete representative success item. All names, counts and media addresses below are illustrative, not a live result; every current output field is included.

```json
{
  "input": "https://www.facebook.com/reel/1234567890123456/",
  "status": "success",
  "id": "1234567890123456",
  "post_id": "122345678901234567",
  "story_id": "UzpfSTEwNDU2Nzg5MDEyMzQ1NjoxMjIzNDU2Nzg5MDEyMzQ1Njc=",
  "url": "https://www.facebook.com/reel/1234567890123456/",
  "type": "reel",
  "message": "A look at our morning espresso routine.",
  "timestamp": 1785574800,
  "published_at": "2026-08-01T09:00:00Z",
  "play_count": 12500,
  "reactions_count": 340,
  "comments_count": 18,
  "shares_count": 27,
  "thumbnail_url": "https://media.example.com/espresso-reel.jpg",
  "video_url_hd": "https://media.example.com/espresso-reel-hd.mp4",
  "video_url_sd": "https://media.example.com/espresso-reel-sd.mp4",
  "duration_ms": 18000,
  "width": 1080,
  "height": 1920,
  "captions_url": "https://media.example.com/espresso-captions.vtt",
  "dash_manifest": "",
  "is_sponsored": false,
  "is_reshare": false,
  "remix_status": "DISABLED",
  "author.id": "100091234567890",
  "author.page_id": "104567890123456",
  "author.username": "HarborCoffee",
  "author.name": "Harbor Coffee",
  "author.url": "https://www.facebook.com/HarborCoffee/",
  "author.profile_picture_url": "https://media.example.com/harbor-coffee-profile.jpg",
  "author.is_verified": false,
  "audio.id": "765432109876543",
  "audio.type": "original",
  "audio.title": "Original audio · Harbor Coffee",
  "audio.cover_url": "https://media.example.com/harbor-coffee-audio.jpg",
  "audio.is_original_audio": true,
  "reactions.id": [
    "1635855486666999",
    "1678524932434102"
  ],
  "reactions.type": [
    "LIKE",
    "LOVE"
  ],
  "reactions.count": [
    280,
    60
  ],
  "video.id": "1234567890123456",
  "video.type": "video",
  "video.url": "https://www.facebook.com/reel/1234567890123456/",
  "video.image_url": "https://media.example.com/espresso-reel.jpg",
  "video.thumbnail_url": "https://media.example.com/espresso-reel.jpg",
  "video.video_url_hd": "https://media.example.com/espresso-reel-hd.mp4",
  "video.video_url_sd": "https://media.example.com/espresso-reel-sd.mp4",
  "video.dash_manifest_url": "",
  "video.dash_manifest": "",
  "video.duration_ms": 18000,
  "video.width": 1080,
  "video.height": 1920,
  "video.alt_text": "A barista preparing an espresso.",
  "video.captions_url": "https://media.example.com/espresso-captions.vtt"
}
```

The table and JSON use the same flat keys and values, with one row per result. Dots in keys such as `author.name` are literal parts of the field name.

The `reactions.id`, `reactions.type` and `reactions.count` lists use matching positions for the same reaction. Author, audio and video properties appear as literal dotted keys in the same result.

Successful rows may contain empty strings, zeroes, false flags, empty lists or nulls when optional information is unavailable. Do not interpret a default count or flag as a confirmed source fact. Failed rows retain `input`, set `status` to `failed`, and use null result fields.

### Input requirements and coverage ⚙️

| Parameter | Type | Required | Rules |
|---|---|---|---|
| `inputList` | array of strings | Yes | At least one full Facebook Reel URL; no default target. |

Use full Facebook `/reel/ID/` links. Standard `www.facebook.com`, mobile `m.facebook.com` and `web.facebook.com` hosts are accepted. Bare IDs, Page usernames and ordinary post or watch links are not supported Reel inputs. There is no pagination or result-count setting.

Provide an array of strings, not URL objects. An invalid overall input structure stops processing without dataset rows; an invalid target within a valid list is recorded as a failed result. The input schema does not set a maximum list length; choose batch sizes appropriate to your run limits.

### Facebook Reel details use cases 🎯

#### Campaign link enrichment

Add public captions, publication times, authors and engagement figures to a list of known campaign Reel URLs.

#### Creative review

Collect thumbnails, duration, dimensions and audio information for authorized human review of selected videos.

#### Reel reference catalogs

Store canonical Reel IDs and media references alongside the original links used by your reporting workflow.

### Pricing and billable Reel rows 💰

Check the Actor’s **Pricing** tab for the current model and rate. That configuration is authoritative.

Under dataset-item pricing, saved success and failed rows can count toward charges. Each successfully extracted Reel saves one success row. Invalid or unavailable targets can save failed rows. Retries do not independently add dataset rows. All details remain in their result row.

### Facebook Reel Details Scraper API and integrations 🔌

Replace `$ACTOR_ID` with the ID shown in the Actor’s API tab and `$APIFY_TOKEN` with your Apify token.

```bash
curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"inputList":["https://www.facebook.com/reel/4553801421614065/"]}'
```

Start runs through the Apify API, schedules or client libraries. Use webhooks for completion events and export the dataset to spreadsheets, Make, Zapier, storage or your own application.

### Reliability and limits ⚠️

Deleted, restricted or otherwise unavailable Reels can produce failed rows. A successful Reel may still have missing captions, media variants, audio information or engagement counts. Temporary request failures are retried automatically.

Returned media URLs can expire and are not a permanent archive. The Actor saves references and metadata; it does not download video files or collect comment text.

### Frequently asked questions ❓

#### Can I submit a bare Reel ID?

Use the complete Facebook `/reel/ID/` URL. Bare IDs are not accepted.

#### Does this collect other Reels by the author?

No. Use Facebook Page Reels Scraper to start from a Page and paginate its visible Reel collection.

#### Are HD and SD video URLs always available?

No. The result includes each variant only when the public response exposes it. Media links can also expire.

#### Does `comments_count` include the comments themselves?

No. Request visible comments separately with Facebook Post Comments Scraper.

#### What happens when a Reel cannot be retrieved?

The dataset retains the original input with `status` set to `failed` and null result fields.

### Support, responsible use, and related actors 🛟

For help with missing or unexpected results, open an Issue on this Actor’s Apify page with the run link, a public example input and the fields you expected. Keep tokens and credentials out of support messages.

Use public data only for purposes you are authorized to pursue, respecting privacy, platform terms and content rights.

# Actor input Schema

## `inputList` (type: `array`):

Add one full Facebook /reel/ URL per item. Every input produces success or failed output.

## Actor input object example

```json
{
  "inputList": [
    "https://www.facebook.com/reel/4553801421614065/"
  ]
}
```

# Actor output Schema

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

Actor dataset results with input and status columns.

# 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 = {
    "inputList": [
        "https://www.facebook.com/reel/4553801421614065/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapingmonkey/facebook-reel-details-scraper").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 = { "inputList": ["https://www.facebook.com/reel/4553801421614065/"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapingmonkey/facebook-reel-details-scraper").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 '{
  "inputList": [
    "https://www.facebook.com/reel/4553801421614065/"
  ]
}' |
apify call scrapingmonkey/facebook-reel-details-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapingmonkey/facebook-reel-details-scraper"
        }
    }
}

```

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/1G67GdlYIi3SiUidT/builds/bI4wvZjCLp5zT75Fh/openapi.json
