Facebook User Search Scraper
Pricing
from $5.99 / 1,000 results
Facebook User Search Scraper
π Facebook User Search Scraper finds and extracts public user data from Facebook search results β names, profile links, bios, workplaces, education & locations (when visible). π Perfect for lead gen, recruiting & research. β Fast, accurate, and compliant.
Pricing
from $5.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
37
Total users
9
Monthly active users
15 days ago
Last modified
Categories
Share
Facebook User Search Scraper β Profiles, Photos and Work History
Facebook User Search Scraper turns a name, keyword, or list of profile URLs into structured public data β profile and cover photos, image galleries, and work and education history β pulled from each profile's About page. It discovers matching profiles through a Google-powered search, then scrapes each one without a Facebook login. Every response is structured JSON, ready to pass directly to an LLM, index into a vector store, or feed a monitoring pipeline. As Facebook locks down public data further, query-driven discovery keeps working.
What is Facebook User Search Scraper?
Facebook User Search Scraper is a query-driven Facebook profile scraper: give it one or more names or keywords, and it finds matching public Facebook profiles, then scrapes each one's About page for structured data. Unlike scrapers that stop at a name and a profile picture, it also parses the work and education history Facebook stores in each profile's About section. No Facebook account, login, or cookies are required β every request runs against logged-out public pages.
- Discovers public profiles from a name or keyword search, no manual URL hunting required
- Extracts full name, profile photo, cover photo, and up to 20 additional gallery images
- Parses work and education history into structured
type/text/iconentries - Accepts direct profile URLs (
startUrls) alongside or instead of search queries - Lets you cap results per run (
maxItems, 1β5000) and throttle request pacing (requestDelay) - Falls back automatically from no proxy to a datacenter proxy to a residential proxy if Facebook blocks a request
What data can you get with Facebook User Search Scraper?
Facebook User Search Scraper returns one structured record per matched profile, covering three kinds of data: identity fields, photos, and work/education history.
| Result Type | Extracted Fields | Primary Use Case |
|---|---|---|
| Profile identity | name, userId, profileUrl | Identifying and deduplicating matched profiles |
| Photos & image gallery | profileImage, coverImage, images | Visual verification and profile enrichment |
| Work & education history | userData (type, text, icon) | Sourcing, recruiting, and career/education monitoring |
Work and education history
Most Facebook people-search tools stop at a name, a profile ID, and a photo. Facebook User Search Scraper also parses each profile's About section for userData β a list of work and education entries structured the way Facebook itself renders them, each with a type (work or education), a text description, and an icon URL matching Facebook's own work/education iconography. This is the field that separates a name-and-photo lookup from something a recruiter, sales rep, or researcher can act on directly: it tells you where someone works or studied without opening the profile by hand.
"userData": [{ "type": "work", "text": "Works at Meta and Biohub", "icon": "https://static.xx.fbcdn.net/rsrc.php/ye/r/Wc6P-qNdeGZ.webp" },{ "type": "education", "text": "Studied Computer Science and Psychology at Harvard University", "icon": "https://static.xx.fbcdn.net/rsrc.php/v3/y5/r/TJztmYBP2MH.png" }]
When a profile's About section has nothing to show, the entry still arrives with text set to "No workplaces to show" or "No education to show" rather than being silently omitted.
Photos and image gallery
Alongside identity fields, each profile record carries profileImage and coverImage β the current profile and cover photos β plus an images array of up to 20 additional public photo URLs from the profile page. Missing images are simply left out of the item rather than filled with a placeholder. This is useful for visual verification during lead qualification or OSINT work β confirming a matched profile is the right person before acting on the rest of the record.
Why not build this yourself?
Scraping Facebook profiles by hand means fighting a moving target on three fronts at once. Facebook rotates the internal GraphQL doc_id and section tokens needed to fetch work/education data on every deploy, so a hardcoded query breaks without warning β this Actor extracts those values live from each profile page's HTML and JavaScript bundles instead of hardcoding them. Facebook also blocks scraping traffic with 400/401/403/429 and 5xx responses carrying a "Sorry, something went wrong" body, so a single fixed IP gets rate-limited fast β this Actor escalates through no proxy, then a datacenter proxy, then a residential proxy, only as needed. And maintaining your own pool of datacenter and residential proxies is an ongoing cost and maintenance burden most teams would rather not own. Building and maintaining all three pieces yourself is a real, recurring engineering cost; running an existing Actor is not.
How to scrape Facebook with Facebook User Search Scraper?
- Open Facebook User Search Scraper on the Apify Store and click Try for free (or Start, if already added to your account).
- Enter one or more search terms in queries β e.g.
"Jane Doe"β the field the Actor uses to discover matching profiles. - Set maxItems to cap total profiles for the run, and optionally add direct links under startUrls or raise requestDelay to reduce block risk.
- Click Start to launch the run.
- Open the Output tab once the run finishes (or watch it fill in live) and export as JSON, CSV, or Excel.
Example input for a request:
{"queries": ["Jane Doe"],"maxItems": 25,"requestDelay": 1}
How to run multiple queries in one job
Pass more than one term in the queries array β each string is treated as an independent search, and every match found across all of them is deduplicated against the others and against startUrls before scraping. Queries are processed one at a time, not concurrently, so a job with more queries takes proportionally longer; requestDelay and the proxy escalation ladder still apply per profile.
β¬οΈ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
queries | No | array | One or more search words or names. Each query is used to find Facebook profiles. | ["Jane Doe"] |
maxItems | No | integer | Maximum number of Facebook profiles to scrape in this run (1β5000, default 10). | 25 |
startUrls | No | array | Facebook profile URLs to scrape in addition to query results. Leave empty to use only search results. | ["https://www.facebook.com/markzuckerberg"] |
requestDelay | No | integer | Delay in seconds between Facebook profile requests (0β10, default 1). Higher values reduce block risk. | 2 |
proxyConfiguration | No | object | Proxy configuration for Facebook profile requests. Google search always uses a dedicated SERP proxy regardless of this setting. | {"useApifyProxy": true} |
No input parameter is required β provide at least one of queries or startUrls for the run to produce anything.
{"queries": ["Jane Doe", "John Smith"],"maxItems": 25,"startUrls": ["https://www.facebook.com/markzuckerberg"],"requestDelay": 1,"proxyConfiguration": { "useApifyProxy": true }}
Common pitfall: the maxItems field is titled "Max profiles per query," but it actually caps the total number of profiles scraped across the entire run β combining every query and every startUrls entry β not a per-query allowance. Setting it to 25 with three queries does not get you up to 75 profiles; it gets you at most 25 total.
β¬οΈ Output
Results are pushed to the dataset as typed JSON, one item per successfully scraped profile, with a consistent schema across runs. Download them as JSON, CSV, Excel, or query them through the dataset API.
Scraped results
[{"name": "Mark Zuckerberg","profileImage": "https://scontent.xx.fbcdn.net/v/t1.6435-1/p480x480/mark_profile.jpg","coverImage": "https://scontent.xx.fbcdn.net/v/t1.6435-9/s960x960/mark_cover.jpg","images": ["https://scontent.xx.fbcdn.net/v/t39.30808-6/mark_photo1.jpg","https://scontent.xx.fbcdn.net/v/t39.30808-6/mark_photo2.jpg"],"userId": "4","profileUrl": "https://www.facebook.com/profile.php?id=4","userData": [{ "type": "work", "text": "Works at Meta and Biohub", "icon": "https://static.xx.fbcdn.net/rsrc.php/ye/r/Wc6P-qNdeGZ.webp" },{ "type": "education", "text": "Studied Computer Science and Psychology at Harvard University", "icon": "https://static.xx.fbcdn.net/rsrc.php/v3/y5/r/TJztmYBP2MH.png" }]},{"name": "Jane Doe","profileImage": "https://scontent.xx.fbcdn.net/v/t1.6435-1/p480x480/jane_profile.jpg","userId": "100003847261950","profileUrl": "https://www.facebook.com/jane.doe.7503","userData": [{ "type": "work", "text": "Works at Acme Logistics", "icon": "https://static.xx.fbcdn.net/rsrc.php/ye/r/Wc6P-qNdeGZ.webp" }]},{"name": "John Smith","profileImage": "https://scontent.xx.fbcdn.net/v/t1.6435-1/p480x480/john_profile.jpg","coverImage": "https://scontent.xx.fbcdn.net/v/t1.6435-9/s960x960/john_cover.jpg","userId": "100009182736450","profileUrl": "https://www.facebook.com/john.smith.948","userData": [{ "type": "education", "text": "No education to show", "icon": "https://static.xx.fbcdn.net/rsrc.php/v3/y5/r/TJztmYBP2MH.png" }]}]
Fields the scraper couldn't find on a given profile are omitted from that item rather than filled with placeholder or fabricated values.
How can I use the data extracted with Facebook User Search Scraper?
- Recruiters and sourcers: search a candidate's name, pull
userDatato review current employer and education against a role's requirements, without opening each profile by hand. - Sales and lead-gen teams: feed a prospect list through
queriesorstartUrls, useuserDatato confirm current employer before outreach, and dedupe againstprofileUrl/userId. - AI engineers and LLM developers: an agent issues a name or keyword as a query, receives the structured JSON profile record back, and passes
userDataand identity fields to the model as grounded context for the next step. - OSINT researchers: build a catalog of public profile data β identity, photos, and work/education β for a fixed list of names, with every field traceable to what the profile page itself showed.
How do you monitor work and education changes over time?
Monitoring is the practice of running the same queries or startUrls repeatedly and diffing the results, rather than trusting a single snapshot. A person's userData array changes when they update a job title, switch employers, or add a degree β none of which show up unless the profile is re-scraped and compared against the last run.
The fields worth diffing between runs are the ones the differentiator returns: each userData entry's type (work or education) and text. A new text value under type: "work" for the same userId or profileUrl usually signals a job change; a new education entry usually signals a newly added or edited degree. name, profileImage, and coverImage are useful secondary signals for confirming you're still tracking the same person across runs.
A practical workflow: schedule a run across a fixed list of startUrls (or queries) on a recurring interval using Apify's Scheduler, store each run's dataset, and compare the current userData array against the previous run's for each userId. Alert only on the rows where userData actually changed β a lead just switched companies, a candidate just finished a degree, a contact just took a new title. This turns a one-time profile lookup into an ongoing signal feed for recruiting, sales, or research pipelines, without requiring anything beyond what a logged-out visitor could already see.
Integrate Facebook User Search Scraper and automate your workflow
Facebook User Search Scraper works with any language or tool that can send an HTTP request.
REST API with Python
import requestsAPI_TOKEN = "YOUR_APIFY_TOKEN"ACTOR_ID = "scrapier~facebook-user-search-scraper-pay-per-events"run_input = {"queries": ["Jane Doe"], "maxItems": 20}resp = requests.post(f"https://api.apify.com/v2/acts/{ACTOR_ID}/run-sync-get-dataset-items",params={"token": API_TOKEN},json=run_input,)for profile in resp.json():print(profile.get("name"), profile.get("profileUrl"))
MCP for query-grounded AI agents
Facebook User Search Scraper is reachable through Apify's hosted MCP server at https://mcp.apify.com β no local install required for MCP-aware clients such as Claude Desktop and Cursor. An agent connects to the endpoint, discovers this Actor by name, calls it with a query, and gets the JSON profile list back as tool output β enough to ground an answer about a person's public work history without the model inventing anything.
Scheduled monitoring and delivery
Runs can be triggered on a recurring cron schedule using Apify's built-in Scheduler, with results readable afterward through the dataset API or exported as JSON/CSV. This Actor has no dedicated webhook input of its own, but Apify's platform-wide webhook feature can still fire on run completion to push a notification or trigger a downstream job.
Is it legal to scrape Facebook user search results?
Scraping publicly accessible Facebook profile data is generally legal in the US β courts have held that accessing data any logged-out visitor can already see does not violate the Computer Fraud and Abuse Act (hiQ Labs, Inc. v. LinkedIn Corp., 9th Cir., 2019). Facebook User Search Scraper only returns what appears on a profile's public About page; it does not bypass a login, paywall, or privacy setting. Because names, photos, and profile identifiers are personal data, processing them at scale can still fall under GDPR or CCPA depending on your jurisdiction and purpose β operational monitoring of a known contact list carries a different risk profile than bulk collection for AI training or resale. Consult your legal team for commercial use cases involving bulk data storage.
Frequently asked questions
Does Facebook User Search Scraper require a Facebook login or cookies?
No. Every request β search discovery and profile scraping alike β runs against Facebook's logged-out public pages. There is no cookie, session, or password field anywhere in the input.
Can I combine name-based search with direct profile URLs in the same run?
Yes. queries and startUrls both feed the same run β direct startUrls are scraped as given, and profiles discovered via queries are merged in and deduplicated against them, up to maxItems.
How does Facebook User Search Scraper handle Facebook's anti-bot measures?
It treats 400/401/403/429 and 5xx responses, and any page missing the profile's og:title tag, as a block, then escalates automatically: first with no proxy, then a datacenter proxy, then a residential proxy, retrying a blocked profile up to three times on the residential tier before giving up on it.
Does Facebook User Search Scraper extract work and education history?
Yes β it arrives in the userData array as { "type": "work" | "education", "text": ..., "icon": ... } entries parsed from each profile's About section. If a section is genuinely empty, the entry still appears with text set to "No workplaces to show" or "No education to show".
How many profiles does Facebook User Search Scraper return per query?
maxItems sets the ceiling β 1 to 5,000, default 10 β but that cap applies to the whole run's combined output across every query and every startUrls entry, not to each query individually.
How do I monitor a person's job or education changes over time?
Schedule a recurring run over the same startUrls or queries using Apify's Scheduler, then diff each run's userData array against the previous run's for the same userId, alerting only on rows where text actually changed.
Does Facebook User Search Scraper work with Claude, ChatGPT, and AI agent frameworks?
Yes. It's reachable through Apify's hosted MCP server at https://mcp.apify.com for MCP-aware clients, and callable as a plain HTTP endpoint from any other agent framework β either path lets an agent retrieve live profile data before answering.
How does Facebook User Search Scraper compare to other Facebook search scrapers?
As observed on their live Apify Store listings on 2026-07-26, competing keyword-based Facebook people-search Actors ("Search Facebook People by Keyword β No Login," "Facebook People Search Results Scraper") return identity fields only β profile ID, name, URL, verification status, and a profile picture β with no work or education data. Facebook User Search Scraper returns the same identity and photo fields plus the userData work/education array.
Can I use Facebook User Search Scraper without managing proxies or Facebook credentials?
Yes. No Facebook account, login, or cookies are ever required, and proxy escalation (datacenter, then residential) happens automatically when Facebook blocks a request. You only need to supply an optional custom proxyConfiguration if you want to override the default behavior.
Your feedback
Found a bug or missing a field? Let us know through the Issues tab on this Actor's Apify Console page β reports are reviewed as part of active maintenance.