# Facebook People Search Scraper (`maximedupre/facebook-people-search`) Actor

Search public Facebook people results without a Facebook login. Get structured profiles with names and direct links, plus profile IDs, verification status, and image data when Facebook exposes them, and a partial coverage flag.

- **URL**: https://apify.com/maximedupre/facebook-people-search.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 public profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🔎 Find public Facebook profiles without a login

For recruiters, researchers, and sales teams, Facebook People Search Scraper searches one public Facebook name, phrase, location, or interest at a time. It returns structured profile rows with names, direct links, profile IDs, verification status, and profile image data when Facebook exposes them. It does not need a customer-provided Facebook login, cookies, or source credential, so you can review matching public profiles in a structured dataset.

- Find public profiles by name with **[Search Facebook People By Name](https://apify.com/maximedupre/facebook-people-search/examples/search-facebook-people-by-name)**.
- Search a location for public profiles with **[Facebook Profile Search By Location](https://apify.com/maximedupre/facebook-people-search/examples/facebook-profile-search-by-location)**.
- Find public profiles without a Facebook account with **[Facebook People Search Without Account](https://apify.com/maximedupre/facebook-people-search/examples/facebook-people-search-without-account)**.
- Build a list of matching public profiles with **[Find Public Facebook Profiles](https://apify.com/maximedupre/facebook-people-search/examples/find-public-facebook-profiles)**.
- Find public people matches with **[Facebook People Finder](https://apify.com/maximedupre/facebook-people-search/examples/facebook-people-finder)**.

#### 👤 Public Facebook profile rows

Each saved row is one eligible public Facebook profile match. Required values are the display name, direct profile URL, and partial coverage flag. Facebook profile IDs, verification status, and profile image data appear when Facebook exposes them.

If the same profile appears again during discovery, the first eligible occurrence is saved immediately and later matches are ignored. The saved row describes that first match only.

#### ▶️ Search one expression and review profiles

**Run steps**

1. Open the Actor's **Input** tab.
2. Enter one name, phrase, location, or interest in **Search query**. Use one search expression per run.
3. Start the run.
4. Open the default dataset and review the saved public profile rows.

Rows are saved as qualifying public matches are found. Facebook may make only part of its public matches available, and `isPartialCoverage` shows when the returned coverage is partial.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `searchQuery` | string | Searches for matching public Facebook profiles by one name, phrase, location, or interest. |

**Example input**

This example is copied from the successful current-beta default-input run.

```json
{
  "searchQuery": "Jane Doe"
}
```

#### 🧾 Output

**Dataset link**

| Field | Type | What it does |
| --- | --- | --- |
| `defaultDatasetItems` | URL string | Opens the `Facebook people` view for the default dataset. |

**Dataset rows**

The default dataset uses one profile row shape. Optional fields can be omitted when Facebook does not expose them.

| Field | Type | What it does |
| --- | --- | --- |
| `displayName` | string | Public display name shown on the Facebook profile. |
| `profileUrl` | string (URI) | Direct public URL of the Facebook profile. |
| `profileId` | string, optional | Facebook profile identifier when Facebook exposes it. |
| `isVerified` | boolean, optional | Whether Facebook marks the public profile as verified. |
| `profileImage` | object, optional | Public profile image data when Facebook exposes it. |
| `profileImage.url` | string (URI) | Direct public URL of the profile image. |
| `profileImage.width` | integer, optional | Image width in pixels when available. |
| `profileImage.height` | integer, optional | Image height in pixels when available. |
| `isPartialCoverage` | boolean | Shows whether the returned public matches represent only part of the matches Facebook makes available. |

**Example profile row**

This genuine row is from the successful current-beta run with the `Mark Zuckerberg` search.

```json
{
  "displayName": "Mark Zuckerberg",
  "profileUrl": "https://www.facebook.com/zuck",
  "isPartialCoverage": true,
  "profileId": "zuck",
  "isVerified": true,
  "profileImage": {
    "url": "https://scontent-dfw5-1.xx.fbcdn.net/v/t39.30808-1/798035993_10117964355140091_4488314344426088727_n.jpg?stp=cp0_dst-jpg_s74x74_tt6&_nc_cat=1&ccb=1-7&_nc_sid=fe59b0&_nc_ohc=pQvaGec9v4QQ7kNvwGYcQGf&_nc_oc=Adpn6o3Uom-tx7K8HyJ0pzi7BTT5dQd4FJSEi9Aj-DGxX9Ose7P71wL2ECCEq35h0-g&_nc_zt=24&_nc_ht=scontent-dfw5-1.xx&_nc_gid=pb1mshlonq2Xzt3Pen95MA&_nc_ss=70289&oh=00_AQJDjo4QEKqc8M9VSH8ndoNjMuldC0HYqs19awUQ6BI1LQ&oe=6AB88905",
    "width": 72,
    "height": 72
  }
}
```

#### 💳 Pricing

This Actor uses pay-per-event pricing. One chargeable event covers each qualifying public Facebook profile saved to the dataset. The pricing panel shows the current tiered rates.

#### 🔌 Integrations

Open the default dataset in Apify Console or read it through the Apify API. Use the returned profile URLs and available profile IDs in your own research workflow.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### What does partial coverage mean?

It means the returned public profiles may represent only part of the matches Facebook makes available for the search. It does not promise an exhaustive list.

##### Why is a matching profile missing?

Only public matches Facebook makes available can be returned. The search uses one expression per run, and optional profile fields appear only when Facebook exposes them.

##### What happens when the same profile appears more than once?

The first eligible occurrence is saved. Later matches for that profile are ignored, and the row describes the first saved match only.

##### Can I search private profiles?

No. Private, login-only, and otherwise non-public Facebook profiles and data are outside this Actor's scope.

##### Can I use several search expressions in one run?

No. Use one name, phrase, location, or interest per run. Start separate runs when you need separate searches.

##### Does the Actor need my Facebook login?

No. It does not require a customer-provided Facebook login, cookies, or source credential.

##### Which profile fields can be missing?

Facebook may omit the profile ID, verification status, or profile image data. The Actor keeps the core public profile fields when they are available and does not invent missing values.

##### How is a profile event charged?

One event covers each qualifying public Facebook profile saved to the dataset. The pricing panel shows the current rates.

### 📝 Changelog

**v0.0** (22-09-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~facebook-people-search/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Facebook Profile Lead Scraper](https://apify.com/maximedupre/facebook-profile-lead-scraper): Add richer public profile and lead fields when a search list needs more context.
- [Facebook User Posts Scraper](https://apify.com/maximedupre/facebook-user-posts-scraper): Review public posts from profile links returned by a people search.
- [Instagram User Search Scraper](https://apify.com/maximedupre/instagram-user-search-scraper): Find related public Instagram accounts for cross-platform profile research.
- [Facebook People Search Results Scraper by Keyword - Cookieless](https://apify.com/patient_discovery/facebook-search-people): Compare another keyword-based Facebook people search workflow.
- [Facebook People Search Scraper](https://apify.com/powerai/facebook-people-search-scraper): Compare another focused Facebook people search option.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `searchQuery` (type: `string`):

Enter one name, phrase, location, or interest to find matching public Facebook profiles. Use one search expression per run.

## Actor input object example

```json
{
  "searchQuery": "Jane Doe"
}
```

# Actor output Schema

## `defaultDatasetItems` (type: `string`):

Structured public Facebook people profiles returned by the search.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "Jane Doe"
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/facebook-people-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQuery": "Jane Doe" }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/facebook-people-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "Jane Doe"
}' |
apify call maximedupre/facebook-people-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/facebook-people-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YD6B2cIQp6FtWVqQw/builds/2GLWfqFhSRNpcsYdJ/openapi.json
