Facebook User Search Scraper: Photos & AI Bio Analysis avatar

Facebook User Search Scraper: Photos & AI Bio Analysis

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Facebook User Search Scraper: Photos & AI Bio Analysis

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

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

2

Monthly active users

2 days ago

Last modified

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 categoryPublic (no login)Restricted (login)
Name, profile & cover photoYes
/about work & educationIf not restrictedHidden if Friends-only
/photos galleryYesFriends-only albums excluded
Bio / quotes textIf populatedOften absent regardless
Friends list, networkNoYes
Private messages, postsNoLogin + relationship
"Friends"-only postsNoYes

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

FieldDescription
nameFull display name, read from the profile's og:title meta tag (falls back to the page <title> tag when stripped)
profileImageDirect URL to the profile photo, highest resolution located
coverImageDirect URL to the cover photo (falls back to the profile photo when no cover exists)
userIdNumeric Facebook user ID, resolved from meta tags or embedded page JSON
profileUrlCanonical facebook.com profile URL
sourceQueryThe search term (or "startUrls") this profile was discovered from
scrapedAtUTC timestamp (ISO 8601) of when the row was scraped

Bio, work/education & AI analysis fields

FieldDescription
bioSnippetShort 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
bioBio/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
userDataArray of {type, text, icon} work/education entries scraped from the About section
aiEnabledBoolean — whether AI bio/quote analysis actually ran for this row
aiBioTopicsUp to 5 topic/keyword strings the AI model extracted from bio + quotes; null when AI is off or no bio text existed
aiBioLanguageISO 639-1 language code the AI model detected in the bio/quotes text
aiLeadQualityHintShort AI-generated phrase estimating professional/decision-maker signal (e.g. "possible decision-maker")
FieldDescription
photosArray of direct image URLs harvested from the profile's public /photos gallery
photoCountNumber of gallery photos actually returned for this profile (bounded by maxPhotos)
imagesAdditional 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.

FeatureMeta Graph APIFacebook User Search Scraper: Photos & AI Bio Analysis
Arbitrary user search by nameNot supportedSearches by name/keyword directly
Access scopeOnly the user who authorized your appAny public profile, no app install needed
Required credentialsAccess token + public_profile permission + App ReviewNone — no login, token, or review
Fields exposedid, first_name, last_name, name, pictureName, images, work/education, bio/quotes, photos, AI tags
Photo gallery accessNot exposed via public_profileHarvests the public /photos gallery
Setup timeApp Review can take days to weeksMinutes — 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.

  1. Open Facebook User Search Scraper: Photos & AI Bio Analysis on the Apify Store and click Run, or call it via the API.
  2. Add one or more names/keywords to searchNames (or paste direct profile URLs into profileLinks) — this is the input the Actor needs to find profiles.
  3. Set maxProfiles and maxPhotos to control scale and gallery depth; toggle aiEnhancement (with aiModel and aiApiKey) if you want bio/quote analysis.
  4. Optionally configure proxySettings and requestDelaySec, then start the run.
  5. 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) and name to shortlist people with matching employers or schools before reaching out.
  • A sales or lead researcher building a prospect list uses aiLeadQualityHint and bio to flag profiles worth a personal outreach message first.
  • A background researcher verifying an identity uses profileUrl, userId, and photos to cross-check a name against the public photo gallery and work history.
  • A brand or OSINT analyst monitoring public figures uses bioSnippet and quotes to track how a person publicly describes themselves over time.
  • An AI engineer building a lead-scoring agent feeds bio, quotes, aiBioTopics, and aiLeadQualityHint into 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

ParameterRequiredTypeDescriptionExample value
searchNamesNoarrayNames 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"]
maxProfilesNointegerMaximum 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
maxPhotosNointegerHow 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
extendedGalleryNobooleanWhen 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
profileLinksNoarrayFacebook 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"]
aiEnhancementNobooleanWhen 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
aiModelNostringAI 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"
aiApiKeyNostringAPI 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-…"
proxySettingsNoobjectProxy 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 }
requestDelaySecNointegerPause 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 ApifyClient
client = 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.

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.

ScraperWhat it extracts
Facebook Photos Scraper With Engagement AnalyticsPhotos with reaction, comment, and share counts
Facebook Group Lead & Contact ScraperEmails, phones, and social handles from Group posts
Facebook Page Posts Scraper With Engagement AnalyticsPage posts with reaction breakdown
Facebook Comments Scraper: Reaction BreakdownPer-comment text and per-reaction-type split
Facebook Marketplace ScraperPublic Marketplace listings
Facebook URL → ID ScraperBatch-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.