# Facebook Reels Keyword Scraper (`scraper_automation/facebook-reels-keyword-scraper`) Actor

Facebook Reels Keyword Scraper SD - Facebook Reels Keyword Scraper is a social media data tool that finds public reels by keyword and returns exact plays, every reaction type (like, love, care, haha, wow, sad, angry), comments, shares and MP4 links - Facebook reels search extractor.

- **URL**: https://apify.com/scraper_automation/facebook-reels-keyword-scraper.md
- **Developed by:** [Scraper Automation](https://apify.com/scraper_automation) (community)
- **Categories:** Social media, Videos
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 reels

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Facebook Reels Keyword Scraper — find reels by keyword with every reaction type, exact counts and MP4

The Facebook Reels Keyword Scraper finds public Facebook reels for any keyword and returns each one with exact plays and views, the count of every reaction type (Like, Love, Care, Haha, Wow, Sad, Angry), comments, shares, captions, music and HD MP4 links.

Type a keyword such as "weight loss", start the run, and rows arrive within seconds. It runs on Apify, needs no Facebook login and no cookies, and exports to JSON, CSV, Excel or an API call.

#### What the Facebook Reels Keyword Scraper gives you

- **Reels found by keyword.** Give one keyword or fifty; every keyword gets its own list of public reels, ranked in the order the search returns them.
- **Every reaction type, one column each.** Like, Love, Care, Haha, Wow, Sad and Angry, plus the total, as real numbers.
- **Exact plays, views, comments and shares** on every reel, with a short version next to each (1M, 241K, 2.8K).
- **All the data of a full reels scraper.** Caption, hashtags, mentions, music, owner, duration, size, thumbnail, HD and SD MP4 links and every quality.
- **Date filters.** Keep only reels newer than, older than, or between two dates.
- **Optional extras.** Comments with replies, transcript, page details and permanent video, audio and thumbnail links.

#### Why the Facebook Reels Keyword Scraper costs more than other reels tools

This Facebook Reels Keyword Scraper returns something other reels tools do not: **the specific reaction counts of every reel**. Most tools give one total or only a rounded play count. You get how many people chose Love, how many chose Care, how many chose Angry.

Those counts are real. **You do not need to log in to Facebook, and neither does the scraper.** The numbers are what Facebook shows for each reel.

**Check it yourself.** Run the Facebook Reels Keyword Scraper on any keyword, copy a reel link from the dataset, and open it in your own browser while logged in to Facebook. Open the reactions list of that reel and compare the Like, Love, Care, Haha, Wow, Sad and Angry counts with the columns in your data. They match, apart from the few reactions that arrive between your run and your check.

That is the reason for the price. A reel with its true reaction breakdown is worth far more to a marketer, a researcher or an agency than a reel row with a single rounded number, and it takes much more work to deliver.

### Facebook Reels Keyword Scraper pricing

The Facebook Reels Keyword Scraper uses pay-per-event pricing. You pay per reel delivered, plus the Apify platform usage of your run. Your price depends on your Apify plan.

| Apify plan | Price per 1,000 reels | Price per 1,000 comments |
|---|---|---|
| Free | $1,000 | $1,000 |
| Bronze | $6.99 | $1.49 |
| Silver | $5.99 | $1.49 |
| Gold | $4.99 | $1.49 |

Two things cost extra, and only when you use them:

| Option | Extra price | When it is charged |
|---|---|---|
| Date filters (newer than, older than) | $10 per 1,000 reels | Per reel delivered, only while a date filter is used |
| Comments and replies | Price per 1,000 comments in the table above | Per comment or reply, only with "Include comments" on |

You are never charged for a reel that is not delivered. Set a maximum cost per run in Apify and the Facebook Reels Keyword Scraper stops cleanly when it is reached, keeping every row it already saved. The Apify platform usage is paid by you on top of these prices.

#### Who uses the Facebook Reels Keyword Scraper

- **Marketers and social media managers** who want to see which reels win a topic, and how people react to them.
- **Agencies** building reels research and performance reports for clients.
- **Brands** finding creators and reels that already talk about their keyword.
- **Researchers and analysts** studying how audiences react to a subject, reaction by reaction.
- **Developers** who need keyword-driven reels data in an app through the Apify API.

### How the Facebook Reels Keyword Scraper works

1. You give one or more keywords.
2. The Facebook Reels Keyword Scraper finds the public reels for each keyword and removes duplicates.
3. Every reel is read in full: counts, every reaction type, caption, music, media links and owner.
4. Each row is saved the moment it is ready, so a long run is never all-or-nothing.

Results follow the order of the search, which is stored in the `googleRank` column. The `searchKeyword` column tells you which keyword found each reel.

### Input of the Facebook Reels Keyword Scraper

| Field | Type | Default | What it does |
|---|---|---|---|
| `keywords` | array | weight loss | One keyword or phrase per line |
| `maxItems` | integer | 10 | Reels delivered for each keyword, up to 1,000 |
| `exactPhrase` | boolean | true | The whole phrase must appear; off matches the words in any order |
| `maxConcurrency` | integer | 6 | Reels read in parallel while the search keeps finding new ones (1 to 20) |
| `countryCode` | string | us | Two-letter country of the search |
| `languageCode` | string | en | Language of the search |
| `onlyReelsNewerThan` | string | — | Date (2026-09-01) or period ("7 days", "3 months"); extra cost applies |
| `onlyReelsOlderThan` | string | — | Same formats; use both for a window; extra cost applies |
| `includeReelDetails` | boolean | true | Exact counts and every reaction type |
| `includeProfileDetails` | boolean | false | Followers, following, category, intro, websites of the owner |
| `includeTranscript` | boolean | false | Caption track or speech text |
| `transcriptLanguage` | string | en | Preferred transcript language |
| `scrapeComments` | boolean | false | Public comments of every reel |
| `commentsMode` | string | Most Relevant | Most relevant, newest, oldest or all |
| `maxComments` | integer | 50 | Comments per reel |
| `scrapeReplies` | boolean | false | Replies under each comment |
| `maxRepliesPerComment` | integer | 50 | Replies per comment |
| `storeMedia` | boolean | false | Save the HD video, audio and thumbnail with permanent links |
| `keyValueStoreName` | string | — | Named storage for the saved files |
| `maxFileSizeMb` | integer | 500 | Larger files are skipped |
| `includeTechnicalData` | boolean | false | Developer object with ids and raw values |
| `proxyConfiguration` | object | Residential | Proxy used for the run |

Example input for the Facebook Reels Keyword Scraper:

```json
{
  "keywords": ["weight loss", "yoga for beginners"],
  "maxItems": 20,
  "onlyReelsNewerThan": "6 months",
  "includeProfileDetails": true
}
```

### Output of the Facebook Reels Keyword Scraper

Each dataset row is one reel. The Facebook Reels Keyword Scraper writes these fields, in this order, on every row:

| Field | Meaning |
|---|---|
| `searchKeyword` | The keyword that found the reel |
| `googleRank` | Position of the reel in the search for that keyword (1 = first) |
| `number` | Position of the reel in your list |
| `id`, `postId`, `url`, `postUrl` | Reel id, post id, reel link and post link |
| `inputUrl` | The reel link that was read |
| `text`, `hashtags`, `mentions`, `links` | Caption, hashtags, mentioned pages and people, caption links |
| `publishedAt` | Publish time, UTC ISO 8601 |
| `playCount`, `viewCount` | Exact plays and views |
| `reactionCount` | All reactions |
| `reactionLikeCount` | Like reactions |
| `reactionLoveCount` | Love reactions |
| `reactionCareCount` | Care reactions |
| `reactionHahaCount` | Haha reactions |
| `reactionWowCount` | Wow reactions |
| `reactionSadCount` | Sad reactions |
| `reactionAngryCount` | Angry reactions |
| `commentCount`, `shareCount` | Comments and shares |
| `engagementRate` | (reactions + comments + shares) ÷ plays × 100 |
| `...Reduced` | A short twin of every count in Facebook's style: 17M, 241K, 2.8K |
| `durationSeconds`, `width`, `height`, `aspectRatio`, `orientation` | Length, size and shape |
| `thumbnailUrl`, `videoUrlHd`, `videoUrlSd`, `audioUrl` | Cover, HD and SD MP4, audio track |
| `qualities` | Every quality from 240p to 1080p with its own link |
| `mediaUrlsExpireAt` | When Facebook's media links stop working |
| `musicTitle`, `musicArtist`, `musicId`, `musicType`, `musicCoverUrl`, `isOriginalAudio` | The reel's sound |
| `ownerName`, `ownerUsername`, `ownerId`, `ownerPageId`, `ownerUrl`, `ownerIsVerified`, `ownerPictureUrl`, `ownerType` | The creator |
| `collaborators`, `isReshare`, `originalCreatorName`, `originalCreatorUrl` | Collaborations and reshares |
| `isRemixable`, `remixStatus`, `privacy`, `isBrandedContent`, `isSponsored` | Remix, audience and sponsor flags |
| `isEmbeddable`, `hasAudio`, `isLive`, `isLooping`, `loopCount`, `canAutoplay`, `videoStatus` | Playback facts |
| `captionsUrl`, `captionLanguages` | Caption file and every caption language |
| `scrapedAt` | Time of the run |

Added when you switch the option on:

- Page details: `ownerFollowers`, `ownerFollowing`, `ownerTalkingAbout`, `ownerLikes`, `ownerCategory`, `ownerIntro`, `ownerWebsites`, `ownerCoverPhotoUrl`
- Transcript: `transcript`, `transcriptLanguage`, `transcriptSegments`, `transcriptSource`
- Comments: `comments`, `commentsScraped`
- Permanent links: `videoFileUrl`, `audioFileUrl`, `thumbnailFileUrl`, `storageError`
- Technical data: `technicalData`

#### Example row from a Facebook Reels Keyword Scraper test run

A real row from a test run on 2026-10-31 for the keyword "yoga" (long values shortened):

```json
{
  "searchKeyword": "yoga",
  "googleRank": 1,
  "id": "4664131773866110",
  "publishedAt": "2026-10-12T21:30:55.000Z",
  "playCount": 1809637,
  "playCountReduced": "1.8M",
  "reactionCount": 30478,
  "reactionLikeCount": 28971,
  "reactionLoveCount": 1317,
  "reactionCareCount": 116,
  "reactionHahaCount": 23,
  "reactionWowCount": 47,
  "reactionSadCount": 2,
  "reactionAngryCount": 2,
  "commentCount": 273,
  "shareCount": 2500,
  "engagementRate": 1.837
}
```

#### Data quality of the Facebook Reels Keyword Scraper

- Every value is read live during your run; nothing comes from a cache or an old snapshot.
- Each field appears once, with the most exact number available.
- A reaction type nobody used is 0, so the seven columns add up to the total.
- A reel found by two keywords is delivered once.
- Dates are UTC in ISO 8601, which Excel, Google Sheets, Python and SQL read directly.

### Facebook Reels Keyword Scraper test results

These numbers come from test runs of the Facebook Reels Keyword Scraper on the Apify platform on 2026-11-01.

| Test | Rows | Time |
|---|---|---|
| Keyword "weight loss", 10 reels | 10 | 78 s |
| Two keywords, 6 reels each | 12 | 67 s |
| One keyword with comments, 2 reels | 2 reels, 5 comments | 47 s |
| Date filter, 4 reels | 4 | 55 s |
| A keyword nobody searches | 0, with a clear message | 16 s |

### Facebook Reels Keyword Scraper limits, stated plainly

- The number of reels per keyword depends on what the search finds. Popular keywords return dozens; rare ones return few.
- A reel that is private, removed or not public cannot be read, and is skipped.
- Date filters use the reel's publish time, so a reel without a readable time is skipped when a date filter is on.
- Reaction counts change every minute. A count in your data is the count at the moment of your run.
- Facebook's media links expire after some hours; turn on permanent links if you need the files later.

### How to run the Facebook Reels Keyword Scraper

1. Open the Facebook Reels Keyword Scraper in Apify Console and type your keywords, one per line.
2. Set "Max reels per keyword", and a date window if you need one.
3. Keep the default residential proxy.
4. Start the run, watch the log, and download the dataset when the status says Done.
5. To automate it, call the Facebook Reels Keyword Scraper from the Apify API, schedule it, or connect it to Make, Zapier, n8n or Google Sheets.

Python example with the Apify API client:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {"keywords": ["weight loss"], "maxItems": 20}
run = client.actor("scraper_automation/facebook-reels-keyword-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["url"], item["playCount"], item["reactionLoveCount"])
```

#### Tips for large runs of the Facebook Reels Keyword Scraper

- Start with 5 or 10 reels per keyword to check the data, then raise the limit.
- Use several specific keywords instead of one broad keyword.
- Leave the date filters off if you do not need them; they cost extra.
- Turn comments on only for the reels you care about; run them in a second pass.
- Set a maximum cost per run so a large job has a firm ceiling.

#### Facebook Reels Keyword Scraper compared with searching by hand

|  | Facebook Reels Keyword Scraper | Manual work |
|---|---|---|
| Finding reels | One keyword, a list in seconds | Scroll and search reel by reel |
| Reaction types | All 7, exact | Open each reel and count |
| Fields | 100+ public fields, same order every time | Whatever you copy |
| Format | JSON, CSV, Excel, API | A spreadsheet you build yourself |
| Repeatable | Schedule it daily | Start again each time |

### Using the Facebook Reels Keyword Scraper in a workflow

- Send every new row to Google Sheets or Airtable with the Apify integration and keep a live table of reels per keyword.
- Trigger a Make, Zapier or n8n scenario with a webhook when the run finishes.
- Load the JSON export into Python, BigQuery or Looker Studio for reels dashboards.
- Schedule the same keywords daily and compare reactions over time.
- Save the video and audio permanently and pass the links to an editing or transcription step.

#### Troubleshooting the Facebook Reels Keyword Scraper

- No rows: the keyword may have no public reels, or your date filter is too narrow. The log says which.
- Fewer rows than expected: the search has no more public reels for that keyword. The log shows how many were found.
- Slow run: every reel is read in full, and comments and permanent links add time. Turn off what you do not need.
- Empty fields on a reel: Facebook did not publish that value for that reel; it stays empty instead of being guessed.
- Free plan stops at 30 rows: that is the free-plan cap; any paid Apify plan removes it.

#### Is it legal to use the Facebook Reels Keyword Scraper?

The Facebook Reels Keyword Scraper reads only data that Facebook shows to any logged-out visitor. It never logs in and never touches private content. Personal data may still be in public reels and comments, so check GDPR and the other laws that apply to you before you store or reuse it, and respect Facebook's terms.

### Related scrapers

| Actor | Link |
|---|---|
| Facebook Reels Scraper | [neuro-scraper/facebook-reels-scraper](https://apify.com/neuro-scraper/facebook-reels-scraper) |
| Facebook Posts Scraper | [neuro-scraper/facebook-posts-scarper](https://apify.com/neuro-scraper/facebook-posts-scarper) |
| Facebook Comments Scraper | [neuro-scraper/facebook-comments-scraper](https://apify.com/neuro-scraper/facebook-comments-scraper) |
| Facebook Video Details Scraper | [neuro-scraper/facebook-video-details-scraper](https://apify.com/neuro-scraper/facebook-video-details-scraper) |
| Facebook Video Downloader | [neuro-scraper/facebook-video-downloader](https://apify.com/neuro-scraper/facebook-video-downloader) |
| Facebook Reels Downloader | [neuro-scraper/facebook-reels-downloader](https://apify.com/neuro-scraper/facebook-reels-downloader) |
| Facebook Video Scraper | [neuro-scraper/facebook-video-scraper-pro](https://apify.com/neuro-scraper/facebook-video-scraper-pro) |
| Facebook Transcript Scraper | [neuro-scraper/facebook-transcript-scraper](https://apify.com/neuro-scraper/facebook-transcript-scraper) |
| Facebook Photos Scraper | [neuro-scraper/facebook-photo-posts-scraper](https://apify.com/neuro-scraper/facebook-photo-posts-scraper) |
| Facebook Reels Scraper Advanced | [neuro-scraper/facebook-reels-scraper-advanced](https://apify.com/neuro-scraper/facebook-reels-scraper-advanced) |
| Facebook Hashtag Scraper | [neuro-scraper/facebook-hashtag-scraper](https://apify.com/neuro-scraper/facebook-hashtag-scraper) |
| Facebook Reviews Scraper | [neuro-scraper/facebook-reviews-scraper](https://apify.com/neuro-scraper/facebook-reviews-scraper) |

### Leave a review

If the Facebook Reels Keyword Scraper saved you time, please leave a star rating and a short review on its Apify page. Reviews help other users find the Facebook Reels Keyword Scraper and tell us what to improve next.

### Frequently asked questions

#### Why is the Facebook Reels Keyword Scraper priced higher than other reels scrapers?

Because every reel comes with the specific count of each reaction type: Like, Love, Care, Haha, Wow, Sad and Angry. Other tools give one total or a rounded number. The breakdown is real, and it costs more to deliver.

#### Are the reaction counts real?

Yes. Open any reel link from your dataset in your own browser while logged in to Facebook and compare the reactions list with the columns in your data. They match, apart from reactions that arrive between your run and your check.

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

No. The Facebook Reels Keyword Scraper works logged out and never asks for your password or cookies. It reads only what Facebook shows to any visitor.

#### How do I find reels about my topic with the Facebook Reels Keyword Scraper?

Type your topic as a keyword, for example "weight loss" or "street food", and start the run. Add more keywords on new lines to search several topics in one run.

#### Can the Facebook Reels Keyword Scraper filter reels by date?

Yes. Use "Only reels newer than", "Only reels older than", or both for a window. Date filters cost extra: $10 per 1,000 reels delivered.

#### What does each plan pay per 1,000 reels?

Free plan $1,000, Bronze $6.99, Silver $5.99 and Gold $4.99 per 1,000 reels. Comments are $1,000 per 1,000 on the Free plan and $1.49 per 1,000 on Bronze, Silver and Gold.

#### Can the Facebook Reels Keyword Scraper return comments?

Yes. Turn on "Include comments" (and "Include replies" if you need them). Every comment and reply is charged at the comment price of your plan.

#### Can I download the reels?

Yes. Every row has HD and SD MP4 links and an audio link. Turn on "Save video, audio and thumbnail" to keep copies with links that never expire.

#### How many reels can I get per keyword?

Up to 1,000 per keyword, or as many as the search finds. Popular keywords return dozens; very specific keywords return fewer.

#### What formats can I export from the Facebook Reels Keyword Scraper?

JSON, CSV, Excel, XML, HTML and RSS from the dataset tab, or any format through the Apify API, webhooks and integrations.

#### Can I schedule the Facebook Reels Keyword Scraper?

Yes. Create a schedule in Apify Console to run the Facebook Reels Keyword Scraper daily or hourly and send the results to Google Sheets, Make, Zapier or n8n.

#### Do I need my own proxy?

No. The Facebook Reels Keyword Scraper uses Apify residential proxies by default and switches to a fresh IP when Facebook blocks one.

#### Can it read private accounts?

No. The Facebook Reels Keyword Scraper reads public reels only. Private content needs a login, and the Facebook Reels Keyword Scraper never logs in.

# Actor input Schema

## `keywords` (type: `array`):

One keyword or phrase per line (weight loss, yoga for beginners, street food). The scraper finds public Facebook reels about each one.

## `maxItems` (type: `integer`):

Reels delivered for each keyword. Fewer come back when the search has no more public reels for that keyword.

## `exactPhrase` (type: `boolean`):

On: the whole phrase must appear ("weight loss"). Off: reels that match the words in any order.

## `countryCode` (type: `string`):

Two-letter country of the search (us, gb, de, br ...). Reels that match your keyword in that market are found first.

## `languageCode` (type: `string`):

Language of the search (en, es, pt, fr ...).

## `maxConcurrency` (type: `integer`):

How many reels are read at the same time while the search keeps finding new ones. More workers finish large runs faster; 6 is a good balance.

## `onlyReelsNewerThan` (type: `string`):

Keep reels published on or after this date: 2026-09-01, a full ISO time, or a period such as "7 days", "2 weeks", "3 months". Extra cost: $10 per 1,000 reels while a date filter is used. Empty = no filter, no extra cost.

## `onlyReelsOlderThan` (type: `string`):

Keep reels published on or before this date (same formats). Use both for a date window. Same extra cost: $10 per 1,000 reels delivered.

## `includeReelDetails` (type: `boolean`):

Exact play, view, comment and reaction counts, the count of every reaction type (Like, Love, Care, Haha, Wow, Sad, Angry), shares and the engagement rate.

## `includeProfileDetails` (type: `boolean`):

Adds the owner's followers, following, talking-about count, likes, category, intro, websites and cover photo to every reel (read once per page).

## `includeTranscript` (type: `boolean`):

Adds the reel's caption track with timestamps when Facebook publishes one, otherwise Facebook's own speech text when available.

## `transcriptLanguage` (type: `string`):

Language code to prefer when a reel has caption tracks in several languages (en, es, pt, fr ...).

## `scrapeComments` (type: `boolean`):

Adds the public comments of every reel as "comments" (author, text, likes, reactions by type, time, attachments). Extra cost per 1,000 comments is on the pricing tab; every reply counts as a comment. Nothing extra is charged when this is off.

## `commentsMode` (type: `string`):

Order of the comments Facebook returns.

## `maxComments` (type: `integer`):

With "Include comments": comments are paged until this number or the end of the thread.

## `scrapeReplies` (type: `boolean`):

With "Include comments": also read the replies under each comment.

## `maxRepliesPerComment` (type: `integer`):

With "Include replies": replies are paged until this number or the end of the thread.

## `storeMedia` (type: `boolean`):

Facebook's media links expire after a few hours. Turn on to save every reel's HD video (MP4), its audio track (M4A) and its thumbnail in Apify storage and get links that keep working (videoFileUrl, audioFileUrl, thumbnailFileUrl). Runs take longer; give the run more memory for long reels.

## `keyValueStoreName` (type: `string`):

Save the files into a named key-value store (letters, digits and hyphens, 3-63 characters, e.g. weight-loss-reels) so they are kept after the run and several runs collect in one place. Empty = the run's own store.

## `maxFileSizeMb` (type: `integer`):

Larger files are skipped (the row says so in storageError).

## `includeTechnicalData` (type: `boolean`):

Adds a "technicalData" object (ids, tracking values, quality manifest and every other raw value) for developers.

## `proxyConfiguration` (type: `object`):

Facebook limits logged-out visitors per IP address. Residential proxies (the default) give the most reliable results; the scraper switches to a fresh IP when one is blocked.

## Actor input object example

```json
{
  "keywords": [
    "weight loss"
  ],
  "maxItems": 10,
  "exactPhrase": true,
  "countryCode": "us",
  "languageCode": "en",
  "maxConcurrency": 6,
  "includeReelDetails": true,
  "includeProfileDetails": false,
  "includeTranscript": false,
  "transcriptLanguage": "en",
  "scrapeComments": false,
  "commentsMode": "Most Relevant",
  "maxComments": 50,
  "scrapeReplies": false,
  "maxRepliesPerComment": 50,
  "storeMedia": false,
  "maxFileSizeMb": 500,
  "includeTechnicalData": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

One row per result, in the run's default dataset.

# 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 = {
    "keywords": [
        "weight loss"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper_automation/facebook-reels-keyword-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 = {
    "keywords": ["weight loss"],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper_automation/facebook-reels-keyword-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 '{
  "keywords": [
    "weight loss"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scraper_automation/facebook-reels-keyword-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraper_automation/facebook-reels-keyword-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/KzWSbIQpDHFJutvVr/builds/JRsrbUjQYLWpfJBV7/openapi.json
