Facebook User Search Scraper: Photos & AI Bio Analysis
Pricing
from $4.99 / 1,000 results
Facebook User Search Scraper: Photos & AI Bio Analysis
🔎 Facebook User Search Scraper extracts public profile data from Facebook search results—names, profile links, locations & keywords—at scale. 🚀 Perfect for lead gen, recruiting, and research. ✅ Public data only, consent-first, and TOS/GDPR compliant.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Facebook User Search Scraper — Profiles, Photos and Bio Data
Facebook User Search Scraper finds public Facebook profiles by name or keyword and returns each one's name, profile and cover images, work/education history, and public photo gallery as structured JSON. An optional AI bio/quote analysis step — off by default, using your own model API key — adds topic, language, and lead-quality tags. No Facebook login or cookies are required; only logged-out, publicly visible pages are read. Start a run on Apify Console and get typed dataset rows in minutes.
What is Facebook User Search Scraper: Photos & AI Bio Analysis?
Facebook User Search Scraper: Photos & AI Bio Analysis is an Apify Actor that discovers public Facebook profiles matching a name or keyword — using Google-indexed search rather than Facebook's own search box — then scrapes each profile's About page, work/education history, and public photo gallery into structured JSON. It never logs in or uses cookies; every profile page is fetched the same way a logged-out visitor's browser would see it. It's built for recruiters, sales and lead researchers, and data or AI engineers who need Facebook profile data as clean, queryable JSON rather than manual browsing.
What Facebook user profile data is publicly available to scrape?
Facebook exposes a profile's name, photos, work/education, and public gallery to any logged-out visitor; friend lists and private posts stay behind a login.
| Data category | Public (no login) | Restricted (login) |
|---|---|---|
| Name, profile & cover photo | Yes | — |
/about work & education | If not restricted | Hidden if Friends-only |
/photos gallery | Yes | Friends-only albums excluded |
| Bio / quotes text | If populated | Often absent regardless |
| Friends list, network | No | Yes |
| Private messages, posts | No | Login + relationship |
| "Friends"-only posts | No | Yes |
This Actor only returns publicly visible data — what any logged-out visitor sees. Nothing behind a login wall.
What data can I extract with Facebook User Search Scraper: Photos & AI Bio Analysis?
Every run returns one row per profile, combining identity fields, work/education and bio text, the public photo gallery, and — when enabled — AI-analyzed bio insights.
Profile identity fields
| Field | Description |
|---|---|
name | Full display name, read from the profile's og:title meta tag (falls back to the page <title> tag when stripped) |
profileImage | Direct URL to the profile photo, highest resolution located |
coverImage | Direct URL to the cover photo (falls back to the profile photo when no cover exists) |
userId | Numeric Facebook user ID, resolved from meta tags or embedded page JSON |
profileUrl | Canonical facebook.com profile URL |
sourceQuery | The search term (or "startUrls") this profile was discovered from |
scrapedAt | UTC timestamp (ISO 8601) of when the row was scraped |
Bio, work/education & AI analysis fields
| Field | Description |
|---|---|
bioSnippet | Short bio-style text from the og:description meta tag — populated mainly on Page-backed/public-figure profiles; generic "is on Facebook" placeholders are filtered to null |
bio | Bio/about text captured from the public /about_details page; used as the AI analysis input |
quotes | "Quotes" field text from /about_details, when the profile has one public |
userData | Array of {type, text, icon} work/education entries scraped from the About section |
aiEnabled | Boolean — whether AI bio/quote analysis actually ran for this row |
aiBioTopics | Up to 5 topic/keyword strings the AI model extracted from bio + quotes; null when AI is off or no bio text existed |
aiBioLanguage | ISO 639-1 language code the AI model detected in the bio/quotes text |
aiLeadQualityHint | Short AI-generated phrase estimating professional/decision-maker signal (e.g. "possible decision-maker") |
Photo gallery fields
| Field | Description |
|---|---|
photos | Array of direct image URLs harvested from the profile's public /photos gallery |
photoCount | Number of gallery photos actually returned for this profile (bounded by maxPhotos) |
images | Additional photo URLs found incidentally on the About page (up to 20) |
🤖 Add-on: Need additional Facebook data?
Want photo-level engagement instead of just gallery URLs? Facebook Photos Scraper With Engagement Analytics adds reaction, comment, and share counts to each photo. If you're mining Facebook Groups for leads rather than searching by name, Facebook Group Lead & Contact Scraper extracts emails, phone numbers, and social handles straight from group post text. For page-level content and engagement instead of personal profiles, see Facebook Page Posts Scraper With Engagement Analytics.
How does Facebook User Search Scraper: Photos & AI Bio Analysis differ from the official Facebook API?
Meta's Graph API User reference has no endpoint for searching arbitrary public users by name — it only returns fields for a person you already have an ID for, gated behind a user access token and the public_profile permission. Facebook User Search Scraper: Photos & AI Bio Analysis instead discovers profiles from a name or keyword directly and reads the same logged-out public page any visitor sees.
| Feature | Meta Graph API | Facebook User Search Scraper: Photos & AI Bio Analysis |
|---|---|---|
| Arbitrary user search by name | Not supported | Searches by name/keyword directly |
| Access scope | Only the user who authorized your app | Any public profile, no app install needed |
| Required credentials | Access token + public_profile permission + App Review | None — no login, token, or review |
| Fields exposed | id, first_name, last_name, name, picture | Name, images, work/education, bio/quotes, photos, AI tags |
| Photo gallery access | Not exposed via public_profile | Harvests the public /photos gallery |
| Setup time | App Review can take days to weeks | Minutes — provide a query and run |
Use the Graph API when you manage the app/profile relationship and need a permissioned integration. Use this Actor when you need public profiles you don't control, without app review.
How to use Facebook User Search Scraper: Photos & AI Bio Analysis
Facebook User Search Scraper: Photos & AI Bio Analysis runs on the Apify platform — start it from its Store listing in Apify Console, or trigger it via the Apify API using your Apify account.
- Open Facebook User Search Scraper: Photos & AI Bio Analysis on the Apify Store and click Run, or call it via the API.
- Add one or more names/keywords to
searchNames(or paste direct profile URLs intoprofileLinks) — this is the input the Actor needs to find profiles. - Set
maxProfilesandmaxPhotosto control scale and gallery depth; toggleaiEnhancement(withaiModelandaiApiKey) if you want bio/quote analysis. - Optionally configure
proxySettingsandrequestDelaySec, then start the run. - Export results as JSON or CSV from the dataset, or read them via the API.
How to scale to bulk Facebook user search extraction
searchNames and profileLinks both accept arrays, so you list every name, keyword, or direct profile URL you want covered in a single run — no need to launch a separate run per target. maxProfiles controls how many results are kept across all your queries combined; the Actor internally caps this at 5,000 profiles per run even though the input schema's field allows entering a higher number.
What can you do with Facebook user profile data?
- A recruiter sourcing candidates uses
userData(work/education entries) andnameto shortlist people with matching employers or schools before reaching out. - A sales or lead researcher building a prospect list uses
aiLeadQualityHintandbioto flag profiles worth a personal outreach message first. - A background researcher verifying an identity uses
profileUrl,userId, andphotosto cross-check a name against the public photo gallery and work history. - A brand or OSINT analyst monitoring public figures uses
bioSnippetandquotesto track how a person publicly describes themselves over time. - An AI engineer building a lead-scoring agent feeds
bio,quotes,aiBioTopics, andaiLeadQualityHintinto a RAG pipeline or LLM tool call to auto-triage which profiles merit human follow-up.
How does Facebook User Search Scraper: Photos & AI Bio Analysis handle rate limits and blocking?
Facebook User Search Scraper: Photos & AI Bio Analysis treats any 400/401/403/429/5xx response, an empty body, a "Sorry, something went wrong" error page, or a suspiciously short page with no og:title tag as a block. On the first block it escalates from no proxy to an Apify datacenter proxy, then to a residential proxy if datacenter is also blocked, retrying up to 3 times on the residential tier before giving up on that profile. requestDelaySec (plus a small random jitter) pauses between profile fetches to look less bot-like; the Google-search discovery step routes through a dedicated GOOGLE_SERP Apify Proxy group rather than your own residential/datacenter proxy. If a profile still can't be loaded after the ladder is exhausted, the Actor logs it as unavailable and moves on to the next URL — the run does not stop. No uptime or response-time figure is published for this behavior; it reflects what the retry and proxy logic actually does in the source code.
⬇️ Input
| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
searchNames | No | array | Names or keywords to search — each is searched via Google to discover matching public Facebook profiles. Same as the base actor's queries field; either key works. | ["mark", "john smith recruiter"] |
maxProfiles | No | integer | Maximum number of Facebook profiles to scrape in this run (schema range 1–50,000). The Actor internally clamps this to 1–5,000 regardless of the value entered. | 25 |
maxPhotos | No | integer | How many photos to collect per profile from the public /photos gallery, beyond the couple of thumbnails already on the About page. 0 disables the gallery feature entirely. Default 40. | 40 |
extendedGallery | No | boolean | When true, attempts to paginate past the initial /photos grid via Facebook's internal photo-collection API to reach maxPhotos. Best-effort — silently keeps only first-grid photos if pagination isn't available for a profile. Default true. | true |
profileLinks | No | array | Facebook profile URLs to scrape in addition to search results. Leave empty to use only search results. Same as the base actor's startUrls field; either key works. | ["https://www.facebook.com/markzuckerberg"] |
aiEnhancement | No | boolean | When true, analyzes each profile's bio and quotes text (from the public /about_details page) with the model selected in aiModel. Requires an API key for that provider. Default false. | false |
aiModel | No | string | AI model/provider for bio analysis; the provider is auto-detected from the model name prefix (claude-* = Anthropic, gpt-*/o1/o3 = OpenAI, gemini-* = Google, grok-* = xAI, deepseek-* = DeepSeek, sonar* = Perplexity, mistral-* = Mistral). Default "claude-haiku-4-5". | "claude-haiku-4-5" |
aiApiKey | No | string | API key for the selected provider. Falls back to ANTHROPIC_API_KEY / OPENAI_API_KEY / GEMINI_API_KEY / XAI_API_KEY / DEEPSEEK_API_KEY / PERPLEXITY_API_KEY / MISTRAL_API_KEY environment variables if left blank. Only used when aiEnhancement is on. | "sk-ant-…" |
proxySettings | No | object | Proxy configuration. The Google search step always uses a dedicated SERP proxy; Facebook profile requests use no proxy by default and auto-escalate to datacenter, then residential, if blocked. | { "useApifyProxy": false } |
requestDelaySec | No | integer | Pause between Facebook profile requests, in seconds (0–10), to reduce blocking. Default 1. | 1 |
Example input
{"searchNames": ["mark", "john smith recruiter"],"maxProfiles": 25,"maxPhotos": 40,"extendedGallery": true,"profileLinks": ["https://www.facebook.com/markzuckerberg"],"aiEnhancement": true,"aiModel": "claude-haiku-4-5","aiApiKey": "sk-ant-your-own-key","proxySettings": { "useApifyProxy": false },"requestDelaySec": 1}
⬆️ Output
Every run writes typed, normalized JSON rows to an Apify dataset — one row per profile, with the same field names on every run. Export as JSON, CSV, Excel, or any other format the Apify platform's dataset export supports.
Example output
{"name": "Mark Zuckerberg","profileImage": "https://scontent.xx.fbcdn.net/v/t39.30808-1/300000000_profile_p480x480.jpg","coverImage": "https://scontent.xx.fbcdn.net/v/t39.30808-6/300000000_cover_s960x960.jpg","images": ["https://scontent.xx.fbcdn.net/v/t39.30808-6/300000001_about.jpg"],"userId": "4","profileUrl": "https://www.facebook.com/zuck","userData": [{ "type": "work", "text": "Founder and CEO at Meta", "icon": "https://static.xx.fbcdn.net/rsrc.php/ye/r/Wc6P-qNdeGZ.webp" },{ "type": "education", "text": "Harvard University", "icon": "https://static.xx.fbcdn.net/rsrc.php/v3/y5/r/TJztmYBP2MH.png" }],"bioSnippet": "Building things that help people connect. Founder and CEO at Meta.","photos": ["https://scontent.xx.fbcdn.net/v/t39.30808-6/400000001_o.jpg","https://scontent.xx.fbcdn.net/v/t39.30808-6/400000002_o.jpg"],"photoCount": 2,"bio": "Building things that help people connect and get access to opportunity.","quotes": "\"The biggest risk is not taking any risk.\"","aiEnabled": true,"aiBioTopics": ["technology", "entrepreneurship", "connection"],"aiBioLanguage": "en","aiLeadQualityHint": "possible decision-maker","sourceQuery": "mark","scrapedAt": "2026-07-25T09:00:00Z"}
The default dataset view surfaces all 18 of these fields — nothing is hidden behind a subset view. Fields return null (never a fabricated value) when Facebook doesn't expose that data logged out, or when AI analysis is off or has no bio/quote text to analyze.
How does it work?
Facebook User Search Scraper: Photos & AI Bio Analysis first turns each name/keyword into a site:facebook.com Google search (plus a few "dork" query variants) and extracts the Facebook profile URLs that appear in the results — Facebook itself is never searched directly. For each discovered or supplied profile URL, it requests the public /about page the same way a logged-out browser would, parsing the embedded page data for name, images, and work/education. It then fetches the public /photos grid for the gallery, and, only if AI analysis is enabled, the /about_details page for bio/quotes text to send to your chosen model. Requests escalate through a proxy ladder (none → datacenter → residential) when blocked. Because parsing targets Facebook's embedded data rather than its visual layout, the output schema stays stable even as Facebook's UI changes. Only what a logged-out visitor can see is ever returned.
Integrations
Facebook User Search Scraper: Photos & AI Bio Analysis works with the tools you already use to run and consume Apify Actors — direct API calls, AI agent frameworks, and no-code automation platforms.
Calling Facebook User Search Scraper: Photos & AI Bio Analysis programmatically
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("<YOUR_ACTOR_ID>").call(run_input={"searchNames": ["mark"],"maxProfiles": 25,"maxPhotos": 40,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["photoCount"])
Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.
MCP integration for AI agents
Facebook User Search Scraper: Photos & AI Bio Analysis is callable through Apify's MCP Server, which exposes Apify Actors as tools for MCP-compatible clients. Add this Actor's ID to the actors list when configuring Apify's MCP Server, then call it from Claude, or any other MCP client, the same way you'd call a local tool — no separate integration code required.
No-code tools (n8n, Make, LangChain)
In n8n, use the Apify node (or an HTTP Request node against the Actor's run endpoint) to trigger a run and pull dataset items into your workflow. In Make, use Apify's native app module to start a run and fetch the resulting dataset. In LangChain, use the Apify integration to call this Actor by ID and load its dataset items directly as Documents for a chain or agent.
Is it legal to scrape Facebook user profiles?
Scraping publicly available Facebook profile data — what any logged-out visitor can already see — is generally permitted, though Facebook's Terms of Service restrict automated access and you remain responsible for how you use the data. Facebook User Search Scraper: Photos & AI Bio Analysis returns only what a logged-out visitor can see; it does not log in, bypass privacy settings, or collect anything hidden behind a login wall. Because names, photos, bios, and work/education history are personal data about identifiable individuals, any storage, profiling, or reuse of this output should rest on a documented lawful basis under GDPR and comparable notice obligations under the CCPA, and you should honor deletion and access requests from the people described. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What Facebook profile fields does Facebook User Search Scraper: Photos & AI Bio Analysis return?
The core fields are name, profileUrl, userData (work/education), photos, and — when AI analysis is on — aiBioTopics and aiLeadQualityHint. See the data fields section above for the full 18-field row.
Does Facebook User Search Scraper: Photos & AI Bio Analysis require a Facebook account or login?
No. It reads the same logged-out /about, /photos, and /about_details pages Facebook serves any visitor — you never supply Facebook credentials, cookies, or a session.
How many profiles can I extract, and can I run multiple searches at once?
maxProfiles accepts values up to the Actor's internal cap of 5,000 profiles per run (the input schema's field itself allows a higher number, but the code clamps it), and both searchNames and profileLinks are arrays — list every name, keyword, or direct profile URL you want covered and they're all processed within a single run.
What happens if a profile is private, deleted, or doesn't exist?
The Actor treats a blocked, missing, or checkpoint-gated profile as unavailable, logs it, and moves on to the next URL — it never fabricates a placeholder row. A page that returns only a generic userId of "0" or has no real name, ID, or profile URL is treated the same way and skipped rather than saved as an empty shell.
Does Facebook User Search Scraper: Photos & AI Bio Analysis work with Claude, ChatGPT, and other AI agent tools?
Yes. It's reachable through Apify's MCP Server for MCP-compatible clients like Claude, and it's callable as a standard HTTP API endpoint from any other agent framework.
How does the search in Facebook User Search Scraper: Photos & AI Bio Analysis differ from other Facebook profile scrapers?
Unlike scrapers that require you to already know a profile's exact URL, this Actor discovers candidate profiles from a name or keyword first — via a Google site:facebook.com search, since Facebook's own public user-search endpoint no longer exists. That means discovery quality depends on what Google has indexed for that name; it is a discovery aid, not a guaranteed complete match list, so pairing searchNames with known profileLinks gives the most reliable coverage.
Does Facebook User Search Scraper: Photos & AI Bio Analysis return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with consistent field names across runs — no HTML parsing or selectors required. Pass it directly to an LLM, index it into a vector store, or feed it to an agent tool.
What happens when Facebook changes its layout or anti-bot system?
The Actor is maintained and its output schema is designed to stay stable across Facebook UI changes, since parsing targets the underlying embedded data rather than page layout. No specific update turnaround time is published.
Can I use Facebook User Search Scraper: Photos & AI Bio Analysis without managing proxies or browser infrastructure?
Yes. The Actor handles the proxy fallback ladder (none → datacenter → residential) and a dedicated Google-SERP proxy for discovery internally — you only need to supply Apify Proxy access if you want the residential tier enabled, and your own model API key only if you turn AI analysis on.
Is the AI bio analysis genuinely AI-generated, and by what model?
Yes. When aiEnhancement is on, aiBioTopics, aiBioLanguage, and aiLeadQualityHint come from a real call to the LLM you choose in aiModel — Anthropic Claude by default, or any of the OpenAI, Gemini, Grok, DeepSeek, Perplexity, or Mistral models listed in the schema — sent the profile's scraped bio/quotes text with a fixed analysis prompt. It's off by default, needs your own provider API key, and returns null fields rather than a fabricated answer whenever there's no bio/quote text to analyze or the model call fails.
Which Facebook profile fields work best for AI training data and RAG indexing?
For RAG, index the high-information text fields — bio, quotes, and bioSnippet — alongside name for retrieval context. For training or structured-data use, userData, aiBioTopics, aiBioLanguage, and photoCount return as consistently typed primitives (arrays, strings, integers) across every row.
Related scrapers
| Scraper | What it extracts |
|---|---|
| Facebook Photos Scraper With Engagement Analytics | Photos with reaction, comment, and share counts |
| Facebook Group Lead & Contact Scraper | Emails, phones, and social handles from Group posts |
| Facebook Page Posts Scraper With Engagement Analytics | Page posts with reaction breakdown |
| Facebook Comments Scraper: Reaction Breakdown | Per-comment text and per-reaction-type split |
| Facebook Marketplace Scraper | Public Marketplace listings |
| Facebook URL → ID Scraper | Batch-resolves Facebook URLs to numeric IDs |
Your feedback
Found a bug or missing a field? Open an issue on this Actor's Issues tab on the Apify Store, or reach out through Scraper-Engine's Apify Store profile. Reports like these directly shape what gets fixed and added next.