Facebook Search Scraper avatar

Facebook Search Scraper

Pricing

$2.00 / 1,000 search results

Go to Apify Store
Facebook Search Scraper

Facebook Search Scraper

Search public Facebook by keyword and get Pages, people, posts, videos, places and events as clean, ranked rows. Native Facebook search, multi-query, per-query limits. No Facebook login or cookies needed.

Pricing

$2.00 / 1,000 search results

Rating

0.0

(0)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

11

Monthly active users

9 days ago

Last modified

Categories

Share

Facebook Search Scraper — Pages, People, Posts, Videos, Places & Events

Facebook Search Scraper — find public Facebook Pages, people, posts, videos, places and events by keyword

Start from a keyword, not a URL. Type what you are looking for — Canberra plumber, a brand, a topic, a person's name — choose what kind of result you want, and get public Facebook Pages, people, posts, videos, places or events back as clean, ranked rows you can export to JSON, CSV or Excel.

  • 🔎 Native Facebook search — results come from Facebook's own search, not a Google site:facebook.com workaround
  • 🔓 No Facebook login, cookies, account or token — nothing to hand over, nothing to get banned
  • 🧾 One typed row per result — every row says what it is (rowType), which query found it, and where Facebook ranked it (position)
  • 📚 Many queries per run — up to 100, each with its own result limit
  • 📍 City filter for Places and Events
  • 🔗 Built to feed other Actors — Page URLs into a leads scraper, post URLs into a comments scraper
  • 💸 Pay only for results delivered — searches, pagination, retries, duplicates and empty searches are never charged

Search typeWhat you getTypical fields
pagesBusiness, brand and community Pagesname, URL, picture, verified, description
peoplePublic profilesname, URL, picture, "Lives in …" line, location
postsPublic poststext, author, post URL, date, reactions, comments, shares, image/video
videosPublic videos and Reels (contentType: "reel")title/text, author, URL, thumbnail, duration, date or Facebook's "17 Aug · 51K views" line
placesLocal businesses and placesname, URL, picture, description
eventsPublic eventsname, event URL, picture, "Online event" where shown
topFacebook's mixed "Top" results — mostly posts, plus Pages and videoseach row's rowType says which

Groups search is not offered. Facebook returns no Groups results to a logged-out visitor (measured: an empty answer on every query tried), and we would rather not list an option that always comes back empty. If you already have Group URLs, a dedicated Groups scraper reads them directly.

Reels are returned by the videos search type and marked contentType: "reel" — there is no separate Reels search to choose.


Quick start

{
"queries": ["Canberra plumber"],
"searchType": "pages",
"maxResults": 100
}

That's all that is required. Leave the proxy at its default (Apify Datacenter).

More examples

Several queries in one run — each query is searched on its own and gets its own maxResults:

{
"queries": ["Canberra plumber", "Canberra electrician", "Canberra landscaper"],
"searchType": "pages",
"maxResults": 50
}

Public posts about a topic (with engagement):

{
"queries": ["AI automation", "workflow automation"],
"searchType": "posts",
"maxResults": 100
}

Videos and Reels:

{
"queries": ["sneaker restoration"],
"searchType": "videos",
"maxResults": 50
}

People by name:

{
"queries": ["John Smith"],
"searchType": "people",
"maxResults": 50
}

Places in one city (London's Facebook ID is 106078429431815):

{
"queries": ["pizza", "coffee"],
"searchType": "places",
"maxResults": 50,
"locationUid": "106078429431815"
}

Events in one city:

{
"queries": ["live music"],
"searchType": "events",
"locationUid": "106078429431815"
}

Input

FieldTypeDefaultWhat it does
queriesarray of strings— (required)Keywords or phrases. Any language. Up to 100 per run; blank and duplicate queries are skipped with a warning.
searchTypepages · people · posts · videos · places · events · toppagesWhich Facebook search tab to read.
maxResultsinteger, 1–5000100Maximum unique results per query (see below).
locationUidstring (digits)—Facebook ID of a city. Applied to places and events only.
maxConcurrencyinteger, 1–103Queries searched in parallel. Pages of one query are always read in order.
proxyConfigurationproxyApify DatacenterSee Proxy policy.

What does maxResults mean?

It is a limit per query, not per run. "queries": ["plumber", "electrician"] with "maxResults": 100 can return up to 200 rows — 100 for each query, if Facebook has that many.

Why might I get fewer results than I asked for?

Because Facebook stops sooner. Logged-out search has a depth limit that varies by query and by type. In our measurements (October 2026) Facebook ended its result lists at roughly:

  • Pages: ~30 for a local query (Canberra plumber)
  • People: ~140 for a local query
  • Posts: ~55 for a topic (AI automation)
  • Videos: ~95 for a topic
  • Top: ~80 for a topic

When Facebook says its list has ended, the query stops with RESULTS_EXHAUSTED and you are charged only for what was delivered. These figures are a guide, not a promise — they change with the query and over time.


Does location filtering work?

Yes for places and events, using a city's Facebook ID — those are the two search types where Facebook offers a city filter to logged-out visitors. In our test, London's ID turned a worldwide pizza search into Wood Green, Wembley, Brixton and Borough Market results. The filter is Facebook's own and is approximate — the odd place from elsewhere in the country can still appear (one Birmingham pizzeria in 25 results).

  • How do I find the ID? It is the number at the end of the city's Facebook page URL, e.g. facebook.com/pages/London-United-Kingdom/106078429431815 → 106078429431815.
  • Can I type a city name instead? No. Facebook's city lookup refuses logged-out visitors ("Unauthorized logged out query"), so a name cannot be turned into an ID reliably. Rather than guess, the Actor ignores a free-text location field and says so in the log.
  • Pages, People, Posts, Videos, Top? Facebook offers no logged-out location filter for these. If you set locationUid with one of them, the run continues without the filter and logs: Location filtering is not supported for searchType=pages. The location ID was ignored. It never pretends a filter was applied. Tip: put the place in the query itself (Canberra plumber) — that is how the examples above work.

Output

One row per search result. Every row has every column (null where a field does not apply), so CSV and spreadsheet exports line up even when a run mixes types.

Common fields

FieldMeaning
rowTypepage, person, post, video, place, event (on top, a group can also appear)
queryThe query that found this row
searchTypeThe search type you chose
positionFacebook's ranking for this query: 1, 2, 3… Never re-ranked by us
idFacebook's ID for the result
namePage / person / place / event name, or a video's title
urlLink to the result on Facebook
profilePicturePicture of the entity, or of the post's author
isVerifiedFacebook's verified badge, where Facebook shows one (null when not shown)
searchSourceAlways "facebook" — native Facebook search, never a web-search fallback
inputIndexPosition of the query in your input list
scrapedAtWhen the row was collected

Type-specific fields

FieldFilled for
subtitlePeople (Lives in Canberra, Australian Capital Territory), events (Online event)
locationPeople — the place from the "Lives in …" line, nothing inferred beyond it
descriptionPages and places — the description snippet Facebook shows in search
textPosts and videos
textTruncatedtrue when Facebook itself cut the text short in the search result (video cards end in "…")
postUrl, createdAtPosts, and videos that are posts
authorName, authorId, authorUrlPosts and videos
authorPlatformVideos — facebook, or instagram for an Instagram video Facebook shows in its results
contentTypePosts: text, photo, video, reel, link, share. Videos: video or reel
reactionCount, commentCount, shareCountPosts, and videos that are posts
imageUrl, videoUrl, thumbnailUrl, durationSecondsPosts and videos
publishedText, viewCountTextVideo cards — Facebook's own wording, e.g. 17 Aug and 51K views
locationUidThe city ID you filtered by, if any

Dates are never guessed. createdAt is filled from Facebook's exact timestamp, or from a complete date like 21 Apr 2024. A date shown without a year (17 Aug) or as 3 days ago stays in publishedText with createdAt: null.

Output views and sample records

The Console's Output tab offers four views of the same dataset. Below is one real record for each, taken from Apify runs on 6 October 2026 (Facebook CDN image links shortened to …).

Posts — table view

Facebook Search Scraper output — Posts table view

All results — every column on every row

A Reel that is also a post (searchType: "videos"), shown with all columns so you can see the full shape. Columns that don't apply to this row are null:

{
"rowType": "video",
"query": "AI automation",
"searchType": "videos",
"position": 17,
"id": "122133421491117663",
"name": null,
"url": "https://www.facebook.com/reel/1263836071861909/",
"profilePicture": "https://scontent-lga3-1.xx.fbcdn.net/v/t39.30808-1/…",
"isVerified": false,
"subtitle": null,
"description": null,
"location": null,
"authorName": "Basick.ai",
"authorId": "61583529912538",
"authorUrl": "https://www.facebook.com/people/Basickai/61583529912538/",
"authorPlatform": null,
"text": "Automate your work using AI for a smoother workflow 💻🛠️ Follow for more ❤️\n\n#ai #aiautomation #aitool #productivity #aiappbuilder",
"textTruncated": false,
"postUrl": "https://www.facebook.com/reel/1263836071861909/",
"createdAt": "2026-03-28T12:53:39.000Z",
"publishedText": null,
"contentType": "reel",
"imageUrl": null,
"videoUrl": "https://www.facebook.com/reel/1263836071861909/",
"thumbnailUrl": "https://scontent-lga3-1.xx.fbcdn.net/v/t51.82787-10/…",
"durationSeconds": 57,
"viewCountText": null,
"reactionCount": 1011,
"commentCount": 161,
"shareCount": 80,
"locationUid": null,
"searchSource": "facebook",
"inputIndex": 2,
"scrapedAt": "2026-10-06T06:46:57.297Z"
}

Pages, people, places & events

A Page (searchType: "pages", query Canberra plumber; empty columns omitted):

{
"rowType": "page",
"query": "Canberra plumber",
"searchType": "pages",
"position": 7,
"id": "100063723635900",
"name": "Woden Valley Plumbing & Gasfitting",
"url": "https://www.facebook.com/wodenvalleyplumbing",
"profilePicture": "https://scontent-ord5-2.xx.fbcdn.net/v/t39.30808-1/…",
"isVerified": false,
"description": "Canberra’s trusted family plumber. Quality plumbing, drainage, gasfitting, heating & cooling with a focus on service ⭐⭐⭐⭐⭐",
"searchSource": "facebook",
"inputIndex": 0,
"scrapedAt": "2026-10-06T06:13:47.846Z"
}

Posts

A post (searchType: "posts", query Sydney electrician; empty columns omitted). Posts search also returns posts made in public groups — the url then points into the group:

{
"rowType": "post",
"query": "Sydney electrician",
"searchType": "posts",
"position": 7,
"id": "1545888783898969",
"url": "https://www.facebook.com/groups/848858940268627/permalink/1545888783898969/",
"postUrl": "https://www.facebook.com/groups/848858940268627/permalink/1545888783898969/",
"profilePicture": "https://scontent-ord5-1.xx.fbcdn.net/v/t39.30808-1/…",
"isVerified": false,
"authorName": "Watts Next Electrical",
"authorId": "100063477826522",
"authorUrl": "https://www.facebook.com/wattsnextelectrical",
"text": "Stay cooler. Sleep better. Keep energy costs under control.\n\nwattsnextelectrical.com.au/contact/\n\nWarmer weather is on the way, and a professionally installed ceiling fan can make your home feel more comfortable without relying on the air conditioner all day. …",
"textTruncated": false,
"createdAt": "2026-10-05T06:36:11.000Z",
"contentType": "photo",
"imageUrl": "https://scontent-ord5-1.xx.fbcdn.net/v/t39.30808-6/…",
"thumbnailUrl": "https://scontent-ord5-1.xx.fbcdn.net/v/t39.30808-6/…",
"reactionCount": 0,
"commentCount": 0,
"shareCount": 0,
"searchSource": "facebook",
"inputIndex": 1,
"scrapedAt": "2026-10-06T06:23:25.437Z"
}

(The post text is shortened here; the dataset holds the full text.)

Videos & Reels

A video card (searchType: "videos", query AI automation; empty columns omitted). Cards carry Facebook's own date and view wording instead of reaction counts; createdAt stays null because "Jul 2" has no year:

{
"rowType": "video",
"query": "AI automation",
"searchType": "videos",
"position": 1,
"id": "1522032579426533",
"name": "Comment “CLAUDE” and we’ll send you the exact prompt! 👇 …",
"url": "https://www.facebook.com/reel/1522032579426533/",
"isVerified": false,
"authorName": "Careerflow.ai",
"authorId": "100063586508349",
"authorUrl": "https://www.facebook.com/careerflowai",
"authorPlatform": "facebook",
"text": "Comment “CLAUDE” and we’ll send you the exact prompt! 👇\n\nJob searching doesn’t have to take hours anymore. …",
"textTruncated": false,
"createdAt": null,
"publishedText": "Jul 2",
"contentType": "reel",
"videoUrl": "https://www.facebook.com/reel/1522032579426533/",
"thumbnailUrl": "https://scontent-lga3-1.xx.fbcdn.net/v/t51.82787-15/…",
"durationSeconds": 26,
"viewCountText": "131K views",
"searchSource": "facebook",
"inputIndex": 2,
"scrapedAt": "2026-10-06T06:46:53.047Z"
}

(name and text shortened here; the dataset holds the full caption.)

Run summary and retries

Each run also writes, to its key-value store:

  • RUN_SUMMARY — per-query status (SUCCESS, NO_RESULTS, PARTIAL_RESULT, RATE_LIMITED, BLOCKED, TEMPORARY_FACEBOOK_ERROR, PROVIDER_ERROR), why each query stopped (LIMIT_REACHED, RESULTS_EXHAUSTED, CURSOR_REPEATED, NO_NEW_RESULTS, RATE_LIMITED, PARTIAL), results per type, duplicates skipped, and request counts.
  • RETRY_INPUT — only when some queries failed: your input with just those queries, ready to run again.

One failed query never fails the run — the others carry on.


Do I need a Facebook login or cookies?

No. The Actor never asks for a Facebook username, password, cookies, session ID, access token or developer app. It reads what Facebook's search shows a logged-out visitor.

Are these native Facebook search results?

Yes. Every row comes from Facebook's own search — the same search Facebook's website runs — and carries searchSource: "facebook". There is no Google or Bing fallback; if one is ever added it will be a separate, clearly labelled mode.

Why are results different from what I see when logged in?

Logged-in Facebook personalises search: friends, groups you belong to, your location and history all change the ranking and what is visible. This Actor sees what a logged-out visitor sees — public content only, ranked for nobody in particular. Expect overlap with your own results, not an exact match. Results can also vary by region and over time.


💸 How is pricing calculated?

Pay per result. You are charged once per unique result delivered to your dataset (search-result event). You are not charged for:

  • search requests, pagination or retries,
  • a result Facebook repeats within the same query (delivered once, charged once),
  • queries that fail or return nothing,
  • the run summary and diagnostics.

There is no start fee: a run that finds nothing costs nothing in results. The same Page found by two different queries appears — and counts — once per query, because each query is its own search; the query field shows which.

Current prices are on the Actor's Pricing tab. This README deliberately doesn't quote figures, so it can never disagree with the live price.

If you set a spending limit on your run, the Actor stops when it is reached and keeps everything already delivered.


🔗 Coregent workflows — enrich what you discover

Search finds the URLs; other Coregent Actors read them in depth.

Discover with this ActorThenTo get
pages → urlFacebook Pages & Business Leads Scrapercategory, phone, email, website, address, followers
posts → postUrlFacebook Comments Scraperthe full comment thread, with replies

Example: "Canberra plumber" → Pages → leads scraper → a contact list of local plumbers.


Can I schedule searches?

Yes. Save your input as a Task and add a Schedule in Apify Console — daily, weekly or any cron expression. Because every row carries query and position, repeated runs show how results and rankings move over time.

Can I call it through the API or MCP?

Yes — like any Apify Actor:

curl -X POST "https://api.apify.com/v2/acts/coregent~facebook-search-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"queries": ["Canberra plumber"], "searchType": "pages", "maxResults": 20}'

It is also available to AI agents through the Apify MCP server, and from the Apify SDKs for JavaScript and Python.


🚦 Proxy policy

Use Apify Datacenter proxy (the default) for normal runs.

Apify Residential proxy is not supported. The Actor fails at startup if apifyProxyGroups includes RESIDENTIAL. Reason: on pay-per-result Actors, residential bandwidth is billed to the Actor's developer rather than to your run, and search responses are large (a Videos page can be several MB), so a single run could cost more than its results earn.

If you genuinely need residential routing, supply your own provider under Custom proxy URLs in the proxy editor — that traffic goes through your own account and is used as given:

http://user:pass@proxy.iproyal.com:12321
http://user:pass@proxy.brightdata.com:22225
http://user:pass@proxy.oxylabs.io:7777

Limitations

  • Public, logged-out results only. Private, friends-only and personalised content is not reachable, by design.
  • Groups search is not supported — Facebook returns no Groups results logged out.
  • Depth is Facebook's, not ours — see Why might I get fewer results.
  • Location filtering works for places and events only, by city ID only.
  • No date filter for posts. Facebook offers no logged-out date filter for post search, and filtering a partial result set locally would wrongly suggest a complete date search — so the Actor doesn't.
  • Search snippets, not full profiles. Pages and places carry the name, picture and description snippet search shows — no category, phone, website or address. Use the Pages & Business Leads Scraper for those.
  • Events carry name, picture and URL; Facebook's logged-out event results do not include the date or venue.
  • Some people have no url. Facebook serves some profiles in search with no link at all; their url is null rather than a guessed link.
  • Video cards carry Facebook's shortened caption (textTruncated: true) and its rounded view count as text (51K views).
  • Logged-out search quality varies. For some broad brand queries, logged-out Pages results favour small namesake Pages over the official brand Page. That is Facebook's ranking for a logged-out visitor; the Actor reports it as served.

Privacy and responsible use

This is an unofficial tool and is not affiliated with, endorsed by or sponsored by Meta or Facebook.

It collects only what Facebook shows publicly to a logged-out visitor. It does not log in, does not use cookies, and does not bypass any access control. Public search results can still include personal information — names, profile pictures, a "Lives in" line. You are responsible for having a lawful basis to collect and process that data (for example under GDPR or CCPA), for how you store and use it, and for complying with Facebook's terms where they apply to you. Result availability differs by region and changes over time.


Need something else?

Found a bug, or need a search type, field or filter that isn't here? Open an issue on the Actor's Issues tab — we read them.