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

Search public Facebook pages, profiles, posts, and reels by keyword. Google page search returns contact details, followers, and ratings.
Search public Facebook by keyword and get clean rows for pages, profiles, posts, or reels. Add a city or country to focus the search, and set how many results you want. No Facebook login, no cookies, and you pay only for results that are saved.
Restaurant).Austin.| Field | Type | What it does |
|---|---|---|
categories | array | Search terms. Required. Each term is searched until the limit is reached. |
locations | array | City, region, or country applied to each term. Optional. |
searchType | select | pages (default), profiles, posts, reels, or pages-google. |
resultsLimit | integer | Results to save for the whole run. Default 10. |
proxyConfiguration | object | Datacenter proxy by default. Switch to residential if a search only loads from a residential IP. |
{
"categories": ["Restaurant"],
"locations": ["Austin"],
"searchType": "pages",
"resultsLimit": 10
}
Search several terms and places in one run:
{
"categories": ["Coffee", "Bakery"],
"locations": ["Berlin", "Hamburg"],
"searchType": "pages",
"resultsLimit": 50
}
Find public reels instead:
{
"categories": ["street food"],
"searchType": "reels",
"resultsLimit": 20
}
One dataset row per result. Page rows include the name, URL, profile image, verification flag, and the description shown in search. Profile rows use the same fields and add a bio when Facebook shows one. Post rows include the post id, text, publish time, author, reactions, and media. Reel rows include the caption, author, duration, and public counts when the reel page exposes them. Pages - Google search rows are the public page itself: title, categories, followers, phone, email, address, website, rating, and ad status.
| Field (pages) | Description |
|---|---|
facebookUrl | The search URL the row came from. |
searchType | Which search type produced the row. |
id | Facebook page id. |
name | Page name. |
url | Public page URL. |
profilePictureUrl | Profile image (a CDN link that expires). |
isVerified | Whether the page shows a verification badge. |
description | Description shown in search. |
{
"facebookUrl": "https://www.facebook.com/search/top?q=Restaurant",
"searchType": "pages",
"id": "100083535933598",
"name": "Lalezar - Restaurant & Cafe",
"url": "https://www.facebook.com/lalezarrestaurantandcafe",
"profilePictureUrl": "https://scontent-iad3-2.xx.fbcdn.net/v/t39.30808-1/286430160_102680862477366_1063033409...",
"isVerified": false,
"description": "Lalezar Restaurant"
}
The image URL is shortened in this example.
Posts, reels, and Pages - Google search rows add their own fields on top of this shape, so check the dataset table view for the columns of the search type you picked.
$0.003 per result saved, which is $3.00 per 1,000 results, plus platform usage for compute and proxy traffic (datacenter proxy traffic is $1 per GB). A run with no matching rows does not charge a result fee.
Worked example: a 10-result search is about $0.03 in result fees, plus the platform usage of the run.
Is it legal to scrape Facebook search? The actor only reads publicly available results without logging in. You are responsible for how you use the data and for following local law and platform terms.
Do I need a Facebook account or a proxy? No account. A datacenter proxy is configured by default.
How many results can I get? As many as you set for the whole run. Facebook ends a logged-out search after a few hundred results per keyword, so add more keywords or locations to get more rows.
What does a location do? Each search term runs once per location. Facebook search receives the place as a filter. Pages - Google search adds the place to the Google query.
Which search type includes phone and email? Pages - Google search. Pages and profile search return the fields shown on the search result, not the full about section.
What if a field is empty? Facebook does not show every field for every result, so some fields can be empty or missing on a given row.
Can I schedule it or use the API? Yes, through schedules in the console or the API.
pages for the most dependable results.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.
categoriesarrayRequireddefault ["Restaurant"]Search terms
Keywords to search. Add one or more. Each term is searched until the result limit is reached.
locationsarrayOptionalLocations
City, region, or country applied to each search term. Leave empty to search without a place.
searchTypeenumOptionaldefault "pages"Search type
Pages, profiles, posts, and reels come from public Facebook search. Pages - Google search finds pages on Google and opens each public page.
resultsLimitintegerOptionaldefault 10Maximum results
How many results to save for the whole run. The run stops at this number. Facebook ends a logged-out search after a few hundred results per keyword, so add keywords or locations for more.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are used by default. Switch to residential if a search only loads from a residential IP. Proxy traffic is billed per GB, and compute is billed separately.
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 |
|---|---|---|
| searchType | string | null | Search type that produced this row. |
| name | string | null | Page or profile name from Facebook search. |
| title | string | null | Page title from a Google page result. |
| url | string | null | URL of the result. |
| pageUrl | string | null | Facebook page URL. |
| description | string | null | Text shown under a page in Facebook search. |
| bio | string | null | Text shown under a profile in Facebook search. |
| text | string | null | Post text. |
| caption | string | null | Reel caption. |
| followers | number | null | Follower count on a Google page result. |
| likes | number | null | Like count on a page, or reaction count on a post. |
| phone | string | null | Public phone number. |
| string | null | Public email address. | |
| website | string | null | Primary website. |
| address | string | null | Street address. |
| profilePictureUrl | string | null | Profile image URL. |
| isVerified | boolean | null | Whether the page or profile is verified. |
| authorName | string | null | Reel author name. |
| viewCount | number | null | Reel view count. |
| time | string | null | Post publish time in ISO 8601. |
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 |
|---|---|---|
| Result | One page, profile, post, or reel saved from a Facebook search. | $0.003 |
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-search-official').call({
"categories": [
"Restaurant"
],
"locations": [
"Austin"
],
"searchType": "pages",
"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-search-officialPaste 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-search-official"
}
}
}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.
Find Facebook pages by category and city.
Find business pages with contact details.
Search public Facebook posts by keyword.
Search Facebook reels by keyword.
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.