Facebook User Search Scraper With Profile Bio Enrichment avatar

Facebook User Search Scraper With Profile Bio Enrichment

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Facebook User Search Scraper With Profile Bio Enrichment

Facebook User Search Scraper With Profile Bio Enrichment

🔎 Facebook User Search Scraper (Facebook-User-Search-Scraper) extracts public profile data from Facebook search results—names, profile URLs, locations, work/education & more. 🤖 Fast, scalable CSV/JSON exports. 🚀 Ideal for lead gen, recruiting, and market research.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

2

Monthly active users

15 days ago

Last modified

Share

Facebook Scraper — Extract Profiles, Bios and Demographics as JSON

Facebook scraper that searches for people by name or keyword and returns matching profiles enriched with demographics and bio data — bio text, current city, hometown, relationship status, gender, birthday, languages, verified badge, and follower count. Every response is typed, normalized JSON — no HTML, no selectors, no parsing. Add direct profile URLs alongside search to guarantee specific people are included. After reading this, you'll know exactly which fields the scraper returns, how the enrichment bundle works, and how to wire the output into a script, a spreadsheet, or an agent pipeline.

What is Facebook User Search Scraper With Profile Bio Enrichment?

Facebook User Search Scraper With Profile Bio Enrichment is an Apify Actor that searches Facebook for public profiles by name or keyword (using Google-powered discovery, not Facebook's own search), then fetches each matched profile's About tab and its sub-pages to build a demographics-and-bio bundle on top of the base identity fields. It runs entirely logged-out — no Facebook account, password, or cookies are required. Because every result is public, unauthenticated data, coverage of any single field depends on what that person has chosen to make visible on their own profile.

  • Discover profiles by name or keyword via Google site:facebook.com search
  • Enrich matched (and directly-linked) profiles with bio, city, relationship, gender, birthday, languages, category
  • Capture verified badge, follower count, and work/education history per profile
  • Compute a derived profile-completeness score and approximate age
  • Export results as JSON, CSV, Excel, or any format the Apify dataset API supports

What data does Facebook User Search Scraper With Profile Bio Enrichment collect?

The scraper returns one enriched row per profile, built from three field groups:

Data TypeKey FieldsJSON Field Names
Profile identityName, profile URL, numeric user ID, photos, work/education historyname, profileUrl, userId, profileImage, coverImage, images, userData
Bio & demographicsAbout-me text, quotes, location, relationship, gender, birthday, languages, categorybio, quotes, currentCity, hometown, relationshipStatus, partnerName, partnerProfileUrl, gender, birthday, languages, category
Verification & reach signalsVerified badge, follower count, derived completeness score, derived ageisVerified, followerCount, followerCountNumeric, profileCompletenessScore, approxAge, scrapedAt

Need more Facebook data?

If you're mining a post or video's commenters for leads rather than searching by name, Facebook Comments Scraper With Author Lead Enrichment turns each commenter into a lead row with contact extraction and a lead score. If you need a Page's own content instead of people, Facebook Page Posts Scraper pulls a Page's posts and engagement data. Both run in the same account and pair naturally with this Actor's profile-level enrichment.

How does Facebook User Search Scraper With Profile Bio Enrichment differ from the official Facebook API?

Meta's Graph API requires app review and OAuth consent for almost any field beyond a handful of Page-level basics, and it has no endpoint that lets a third-party app search arbitrary public profiles by name or keyword — access is scoped to Pages you manage or users who have explicitly authorized your app. This Actor instead discovers public profile URLs through Google search and reads each profile's already-public About pages logged-out, with no review process and no user consent flow to build.

FeatureFacebook Graph APIThis Scraper
Search by name/keywordNot available to third-party appsYes, via Google-powered discovery
Approval processMeta app review & business verification for most permissionsNone — start with an Apify token
Login/consent requiredOAuth consent from the profile owner for personal fieldsNo login, no cookies — public pages only
Bio/demographics accessLimited to fields your token's granted scopes allowFull bio & demographics bundle when public
Entity coverageScoped to Pages you manage or consenting usersAny public profile found by search or direct link
Output consistencyField availability shifts with API version and granted scopesStable, normalized JSON schema across runs
Setup timeDays to weeks for reviewMinutes — paste input, click Start

The Graph API is the right choice when you already run a Meta-approved app and only need data for users who've authorized it. This scraper is the right choice when you need to look up public profiles by name at scale without an app-review process.

Why do developers and teams scrape Facebook?

For recruiters and screening teams

Recruiters and community-safety teams use name-based search to build a public-profile picture of a candidate or community member before an interview or approval decision — current city, employer/education history from userData, and a verified badge as a quick authenticity signal. Running a batch of searchNames against a shortlist returns each match's bio, category, and profileCompletenessScore in one pass, so screening reviews start from the same public snapshot instead of manual profile-by-profile lookups.

For sales, growth and B2B lead-generation teams

Sales and growth teams turn a list of prospect names or company-adjacent keywords into enriched contact context — currentCity for territory routing, category and followerCount for qualifying public figures or micro-influencers, and relationshipStatus/partnerProfileUrl for warm-intro paths when relevant. Combined with directProfileLinks for named accounts already on a CRM list, a single run produces a prioritized outreach sheet without opening Facebook profile by profile.

For OSINT researchers and investigators

Researchers and investigators use keyword search to build a public-data profile of a subject for due diligence, fraud investigation, or academic study — this Actor only ever reads what a profile's owner has already made visible, never bypassing privacy settings or authenticating as anyone. The derived profileCompletenessScore is useful here too: it flags at a glance how much demographic signal a given profile actually exposes, so a researcher can triage which matches are worth a closer manual look.

For AI engineers and agent builders

Agent builders feed searchNames results directly into a RAG pipeline or an agent's tool-call loop to ground a conversation in real, structured profile data — no HTML to strip, no selectors to maintain. A support or CRM-enrichment agent can call this Actor with a lead's name, read back bio, currentCity, and category as typed JSON fields, and use them to personalize a response or route a workflow, all without a parsing step between the scraper and the LLM context window.

How to scrape Facebook (step by step)

  1. Open Facebook User Search Scraper With Profile Bio Enrichment on its Apify Store listing and click Try for free (or Run, if you've already added it to your account).
  2. Enter one or more names or keywords in searchNames — each is run through Google to discover matching Facebook profile URLs. Add exact URLs to directProfileLinks instead (or alongside) if you already know which profiles you want.
  3. Set maxProfilesToEnrich to cap how many profiles are discovered and enriched, and leave includeBioDemographics on (default) for the full bio/demographics bundle, or turn it off for a faster identity-only scrape.
  4. Click Start and watch results populate the dataset in real time — no queue, no separate export step.
  5. Download results as JSON, CSV, or Excel from the Storage tab, or pull them programmatically via the Apify API/client.

What to do when Facebook changes its structure

The Actor is maintained, and its output field names and types stay stable on your end even when Facebook's underlying page markup changes — integrations built against this schema keep working without code changes on your side.

⬇️ Input

ParameterRequiredTypeDescriptionExample Value
searchNamesNoarrayNames/keywords to search. Each is run through Google to discover matching Facebook profile URLs, which are then enriched. Also accepts the base field name queries.["Mark Zuckerberg"]
maxProfilesToEnrichNointeger (1–50000, default 10)Maximum number of profiles to discover and enrich per run. Also accepts maxItems.25
includeBioDemographicsNoboolean (default true)When on, fetches the four About sub-pages and merges bio, city, relationship, gender, birthday, languages, category, verified badge, follower count, plus derived completeness score and age. Turn off for a faster base-only scrape.true
directProfileLinksNoarrayFacebook profile URLs to enrich directly, alongside any search results. Also accepts startUrls.["https://www.facebook.com/zuck"]
fetchDelaySecondsNointeger (0–10, default 1)Seconds to wait between each profile's requests (politeness delay). Also accepts requestDelay.1
networkConfigurationNoobject (proxy editor)Proxy configuration for profile requests. Search always uses a dedicated Google SERP proxy regardless of this setting; profile fetches use no proxy by default and auto-escalate datacenter → residential only if blocked. Also accepts proxyConfiguration.{"useApifyProxy": false}

No parameter is required — running the Actor with no input at all still works, using the default searchNames prefill.

{
"searchNames": ["Mark Zuckerberg"],
"maxProfilesToEnrich": 25,
"includeBioDemographics": true,
"directProfileLinks": ["https://www.facebook.com/zuck"],
"fetchDelaySeconds": 1,
"networkConfiguration": { "useApifyProxy": false }
}

The most common input mistake is turning includeBioDemographics off and then expecting bio, currentCity, or profileCompletenessScore in the output — those fields only populate when the bundle is on.

⬆️ Output

Every run writes one row per profile to the Apify dataset, exportable as JSON, CSV, or Excel. Fields with no public value on that profile are omitted rather than sent as fabricated placeholders.

Scraped Facebook Profiles

{
"name": "Jane Doe",
"profileUrl": "https://www.facebook.com/jane.doe.example",
"userId": "123456789012345",
"isVerified": true,
"bio": "Coffee, code, and Sunday hikes.",
"quotes": "\"Stay curious.\"",
"currentCity": "Austin, Texas",
"hometown": "Denver, Colorado",
"relationshipStatus": "Married",
"partnerName": "John Doe",
"partnerProfileUrl": "https://www.facebook.com/john.doe.example",
"gender": "Female",
"birthday": "March 14, 1990",
"approxAge": 36,
"languages": ["English", "Spanish"],
"category": "Public figure",
"followerCount": "12K followers",
"followerCountNumeric": 12000,
"profileCompletenessScore": 83,
"userData": [
{ "type": "work", "text": "Acme Inc.", "icon": "https://static.xx.fbcdn.net/rsrc.php/ye/r/Wc6P-qNdeGZ.webp" },
{ "type": "education", "text": "State University", "icon": "https://static.xx.fbcdn.net/rsrc.php/v3/y5/r/TJztmYBP2MH.png" }
],
"profileImage": "https://scontent.xx.fbcdn.net/v/p480x480/profile.jpg",
"coverImage": "https://scontent.xx.fbcdn.net/v/s960x960/cover.jpg",
"images": ["https://scontent.xx.fbcdn.net/v/photo1.jpg"],
"scrapedAt": "2026-07-25T12:00:00Z"
}

How many results can you scrape with Facebook User Search Scraper With Profile Bio Enrichment?

maxProfilesToEnrich caps the run at up to 50,000 profiles, with a default of 10 if you don't set it. There's no additional hard cap inside the Actor itself beyond that schema maximum. For larger targets, the Actor automatically requests more Google search-result pages (scaling with your maxProfilesToEnrich value, up to 10 pages) to discover enough distinct profile URLs to fill the request. How many profiles Google actually surfaces for a given name or keyword varies — it's a real-world search result, not a guaranteed count — so for specific people you already know, add their URLs to directProfileLinks to guarantee they're included regardless of what search turns up.

Integrate Facebook User Search Scraper With Profile Bio Enrichment and automate your workflow

Facebook User Search Scraper With Profile Bio Enrichment works with any language or tool that can send an HTTP request.

REST API integration

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("API-Empire/facebook-user-search-scraper-with-profile-bio-enrichment").call(
run_input={
"searchNames": ["Mark Zuckerberg"],
"maxProfilesToEnrich": 25,
"includeBioDemographics": True,
}
)
for profile in client.dataset(run["defaultDatasetId"]).iterate_items():
print(profile.get("name"), profile.get("bio"))

Works in Python, Node.js, Go, Ruby, cURL — any client that can call the Apify API with your token.

MCP for AI agents

This Actor is reachable through Apify's official MCP server, which exposes Apify Actors as callable tools to any MCP-compatible client (e.g. Claude Desktop, Cursor). Register it with npx @apify/actors-mcp-server, an APIFY_TOKEN environment variable, and pass --actors API-Empire/facebook-user-search-scraper-with-profile-bio-enrichment, or let the agent discover it at runtime via the server's search-actors and call-actor tools.

Automation platforms (n8n, Make)

Apify publishes an official Apify node for n8n and an official Apify module for Make. Pick "Run Actor and get dataset" (n8n) or the equivalent "Run Actor" action (Make), point it at this Actor's ID, pass the same searchNames/maxProfilesToEnrich input shown above, and feed the returned dataset items into the rest of your workflow — no custom code required on either platform.

Yes — this Actor only collects data that is already publicly visible on a Facebook profile; it never logs in, never bypasses a privacy setting, and never returns a field the profile owner hasn't made public. Because the output is identifiable personal data (names, bios, birthdays, relationship details), it falls under data-protection regimes like GDPR and CCPA — you need a lawful basis for collecting, storing, and using it, and you're responsible for how you handle it downstream, including retention limits and any subject-access obligations. Consult legal counsel for commercial use cases involving bulk personal data.

Frequently asked questions

Does Facebook User Search Scraper With Profile Bio Enrichment work without a Facebook account?

Yes. It runs entirely logged-out — no Facebook account, password, or cookies are used at any point, either for search discovery or for reading a profile's public pages.

How often is the profile data updated?

Every run fetches live from Facebook and Google at the time it executes — nothing is served from a cache. Run it again whenever you need a current snapshot.

Why is a field like bio, birthday, or relationship status sometimes empty?

Facebook only shows each About section to logged-out visitors when that person has made it public. A missing field means the profile owner hasn't made it public, not a scraping failure — the Actor never guesses or fabricates a value; unavailable fields are simply omitted from the row.

What happens when a searched name returns no matching profile?

If Google discovery finds no matching Facebook URLs for a query, the Actor logs a warning and moves on rather than failing the run; other queries in the same run still produce results. Broadening the search term or adding a direct profile URL via directProfileLinks usually resolves it.

Can I scrape private Facebook profiles or login-gated content?

No. Only profiles and About-page content that Facebook already serves to a logged-out visitor are returned. Private profiles and any field a person has restricted to friends-only are not accessible to this Actor.

Does Facebook User Search Scraper With Profile Bio Enrichment work for AI agent workflows and LLM pipelines?

Yes. It's callable as a standard HTTP endpoint from any agent framework, and it's also reachable through Apify's MCP server for MCP-compatible clients. Every response is typed JSON — bio, currentCity, category, and the rest — with no parsing step needed before passing it to an LLM.

How does Facebook User Search Scraper With Profile Bio Enrichment handle Facebook's anti-bot system?

Profile requests start with no proxy and automatically escalate to an Apify datacenter proxy, then to a residential proxy, whenever Facebook returns a blocked response (an error status or a "something went wrong" page). Search requests always run through a dedicated Google SERP proxy, and a configurable delay is applied between each profile's requests.

Does Facebook User Search Scraper With Profile Bio Enrichment return data in a format LLMs can use directly?

Yes. Typed, normalized JSON with stable field names — no HTML, no selectors. Pass it directly into an LLM context window, index it into a vector store, or route it through an agent tool.

Can I use this scraper without managing proxies myself?

Yes. Profile fetches default to no proxy and only escalate to Apify's own datacenter or residential proxy tiers automatically when blocked; you don't configure or rotate proxies yourself unless you want to override the default via networkConfiguration.

How is Facebook User Search Scraper With Profile Bio Enrichment billed?

It uses Apify's pay-per-event pricing: you're billed for each row_result event, which fires once per profile actually written to the dataset. A query that finds no matching profile doesn't generate a charge for that query.

What happens when Facebook changes its structure or blocks the scraper?

The Actor is maintained, and its output schema stays stable on your end — field names and types don't change even when Facebook's underlying page markup does.

Your feedback

Found a bug or missing a field? We want to know. Reach out through this Actor's Apify Store page or Issues tab so we can take a look — active maintenance is what keeps this scraper's schema stable for everyone building on top of it.