
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Extract public likes and reactions from Facebook posts. Returns the reaction type plus the person's name and profile link.
Extract the public likes and reactions from any Facebook post and get one row per person: the reaction type, the name, and a link to the profile. No login, no cookies, and just $4.00 per 1,000 reactions.
| Field | Key | What it does |
|---|---|---|
| Facebook URLs | startUrls | Public post URLs. One reaction list is read per URL. |
| Maximum reactions | resultsLimit | How many reactions to save per URL. Default 10. Facebook shows about 10 public names per reaction type. |
| Proxy configuration | proxyConfiguration | Datacenter by default. Use residential only if Facebook refuses the datacenter pool. |
{
"startUrls": [
{
"url": "https://www.facebook.com/WBBPosts/posts/pfbid02j21mpxEygikxxqKh3AaQxsct5vByRpuZVTgpBMELoKArJT6oJjvek8Y3TdRdDgvYl"
}
],
"resultsLimit": 10,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": ["DATACENTER"]
}
}
One dataset row per reaction.
| Field | Description |
|---|---|
reaction | like, love, care, haha, wow, sad, or angry. |
name | Public display name of the person. |
profileUrl | Link to the profile. |
facebookId | Id of the post. |
facebookUrl, inputUrl | The post URL. |
pageAdLibrary | Page id and business-page status returned by Facebook. |
{
"facebookUrl": "https://www.facebook.com/WBBPosts/posts/pfbid02j21mpxEygikxxqKh3AaQxsct5vByRpuZVTgpBMELoKArJT6oJjvek8Y3TdRdDgvYl",
"reaction": "like",
"name": "Jane Doe",
"profileUrl": "https://www.facebook.com/jane.doe.example",
"facebookId": "1230893832410400",
"pageAdLibrary": {
"is_business_page_active": true,
"id": "587961008265666"
},
"inputUrl": "https://www.facebook.com/WBBPosts/posts/pfbid02j21mpxEygikxxqKh3AaQxsct5vByRpuZVTgpBMELoKArJT6oJjvek8Y3TdRdDgvYl"
}
Posts that do not return reaction names are not saved as rows and are never charged. They are listed in the run's status message and in the OUTPUT key-value record as failedInputs: [{input, reason}]. For example, a post that only shows the total gets the reason no_items: Empty or private data for provided input (81402 reactions in total, names not public), and a URL that is not a public post gets not_available.
You pay $0.004 per reaction saved, which is $4.00 per 1,000 reactions. Platform usage (compute and proxy) is billed on top.
Worked example: 10 reactions cost 10 × $0.004 = $0.04 in events plus about $0.002 of platform usage, around $0.042 in total.
The actor only reads what is visible without logging in. You are responsible for using the data in line with privacy law and Facebook's terms, since names are personal data.
No login or cookies. Datacenter proxy is the default; switch to residential only if Facebook refuses it.
Facebook shows about 10 public names per reaction type to logged-out visitors. A higher limit continues with the next reaction type, so large totals are not fully listed.
You get a single no_items row with the total reaction count instead of names.
Yes, from the console or through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayRequiredFacebook URLs
Public post URLs. One reaction list is read per URL.
resultsLimitintegerOptionaldefault 10Maximum reactions
How many reactions to save per URL. Facebook shows logged-out visitors about 10 public names per reaction type, so a post returns at most about 70 names whatever the limit.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are the default. Use residential only when Facebook refuses the datacenter pool.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| reaction | string | Reaction type: like, love, care, haha, wow, sad, or angry. |
| name | string | Display name of the person who reacted. |
| profileUrl | string | Public profile link. |
| facebookUrl | string | Post URL the reaction belongs to. |
| facebookId | string | Numeric Facebook id of the post. |
| inputUrl | string | URL submitted in the input. |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Reaction | One public reaction saved from a post. | $0.004 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/facebook-likes-scraper').call({
"startUrls": [
{
"url": "https://www.facebook.com/WBBPosts/posts/pfbid02j21mpxEygikxxqKh3AaQxsct5vByRpuZVTgpBMELoKArJT6oJjvek8Y3TdRdDgvYl"
}
],
"resultsLimit": 10,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/facebook-likes-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/facebook-likes-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.