# CyberBackgroundChecks People Search Scraper (`jungle_synthesizer/cyberbackgroundchecks-people-search-scraper`) Actor

Scrape US people records from CyberBackgroundChecks by name, address, phone or email, or walk the full A-Z surname index for bulk corpus extraction. Results carry name, age, current and past addresses, phone numbers with line type, email addresses, aliases, and possible relatives and associates.

- **URL**: https://apify.com/jungle\_synthesizer/cyberbackgroundchecks-people-search-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation
- **Stats:** 3 total users, 2 monthly users, 99.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 record scrapeds

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

## CyberBackgroundChecks People Search Scraper

Scrape US people records from [CyberBackgroundChecks](https://www.cyberbackgroundchecks.com) by name, phone, address or email — or walk the site's own A-Z surname index for bulk extraction. Returns full name, age, current and past addresses, phone numbers with line type, email addresses, aliases, and possible relatives and associates.

CyberBackgroundChecks is a free US people-search aggregator. Most people-search sources stop at name, address and phone — this one also publishes email addresses, so a single record can feed both a skip-trace locate and an email-append workflow.

### Features

- **Four lookup verticals**: search by name, reverse phone, reverse address, or email
- **Bulk mode**: walk the site's own A-Z surname index for one letter at a time, for corpus-scale extraction rather than one lookup at a time
- **Rich per-person output**: name, age, current + past addresses, phone numbers (with line type), email addresses, aliases ("other observed names"), and possible relatives and associates
- **maxItems control**: caps the run in every mode

### Input

| Field        | Type    | Description                                                                         |
|--------------|---------|-------------------------------------------------------------------------------------|
| `searchMode` | string  | `bulk` (default), `name`, `phone`, `address`, or `email`                            |
| `letter`     | string  | Single letter A-Z (required for bulk mode) — walks that letter's full surname index |
| `firstName`  | string  | First name (required for name mode)                                                 |
| `lastName`   | string  | Last name (required for name mode)                                                  |
| `phone`      | string  | Phone number, digits only (required for phone mode), e.g. `5551234567`              |
| `address`    | string  | Street address (required for address mode), e.g. `123 Main St`                      |
| `city`       | string  | City for the address lookup (required for address mode)                             |
| `state`      | string  | US state abbreviation for the address lookup (required for address mode)            |
| `email`      | string  | Email address (required for email mode)                                             |
| `maxItems`   | integer | Maximum number of person records to return and bill for (default: 10)               |

#### Example: Name search

```json
{
  "searchMode": "name",
  "firstName": "John",
  "lastName": "Smith",
  "maxItems": 10
}
```

#### Example: Bulk surname-index walk

```json
{
  "searchMode": "bulk",
  "letter": "S",
  "maxItems": 200
}
```

#### Example: Reverse phone lookup

```json
{
  "searchMode": "phone",
  "phone": "4052468459",
  "maxItems": 5
}
```

### Output

Each result record contains:

| Field                 | Type    | Description |
|-----------------------|---------|---------------------------------------------------------------------------------------|
| `full_name`           | string  | Full name of the person |
| `age`                 | integer | Age if listed |
| `current_address`     | string  | Current street address |
| `current_city`        | string  | Current city |
| `current_state`       | string  | Current US state (2-letter abbreviation) |
| `current_zip`         | string  | Current ZIP code |
| `prior_addresses`     | array   | Past addresses |
| `phone_numbers`       | array   | Phone numbers |
| `phone_line_types`    | array   | Line type per phone number (e.g. Wireless, LandLine/Services, Voip) — index-aligned with `phone_numbers` |
| `email_addresses`     | array   | Email addresses (sparse — most profiles carry none) |
| `possible_relatives`  | array   | Names of possible relatives |
| `possible_associates` | array   | Names of possible associates (sparse — most profiles carry none) |
| `aliases`             | array   | Other observed names / AKAs for this person |
| `profile_url`         | string  | Direct link to the CyberBackgroundChecks detail page |
| `index_letter`        | string  | First letter of the person's surname (A-Z) |
| `scraped_at`          | string  | ISO-8601 timestamp |

#### Example output record

```json
{
  "full_name": "Edna J Smith",
  "age": 82,
  "current_address": "1008 W Monroe Ave",
  "current_city": "Hartford",
  "current_state": "WI",
  "current_zip": "53027",
  "prior_addresses": ["7347 Janisch Rd UNIT 2, Marshall, WI 53559 9461"],
  "phone_numbers": ["6086553280", "9206232057"],
  "phone_line_types": ["LandLine/Services", "LandLine/Services"],
  "email_addresses": ["phichaguimor@aol.com"],
  "possible_relatives": ["John E Smith", "Kaila C Schmidt"],
  "possible_associates": [],
  "aliases": ["Edna Smith", "Edna Jane Smith"],
  "profile_url": "https://www.cyberbackgroundchecks.com/detail/edna-j-smith/pidaxyalqxqqggqmxpyzxb",
  "index_letter": "S",
  "scraped_at": "2026-09-28T16:23:17.461Z"
}
```

### Notes

- **A name/phone/address/email search can return more than one candidate.** CyberBackgroundChecks matches broadly (household members, name variants), so a single lookup may return several people; `maxItems` caps how many of them are opened for full detail.
- **Bulk mode is a corpus tool, not a quick lookup.** It walks the letter's surname index breadth-first and opens full profiles as it goes — use a generous `maxItems` and expect the run to take longer than a single-name lookup.
- **Sparse fields are real, not broken.** `email_addresses` and `possible_associates` are empty on most profiles; that reflects what the source actually publishes for that person, not a missed extraction.

### Use cases

- Skip-tracing and locate work where an email address is useful alongside phone and address
- Lead enrichment for US-only contact lists
- Bulk corpus extraction by surname letter
- Cross-referencing phone numbers, addresses and relatives for identity verification

### Related Actors

- **[TruePeopleSearch — People Search Scraper](https://apify.com/jungle_synthesizer/truepeoplesearch-people-search-scraper)** — US people search by name, phone or address.
- **[FastPeopleSearch — People Search Scraper](https://apify.com/jungle_synthesizer/fastpeoplesearch-people-search-scraper)** — US people search with current addresses, phone numbers and relatives.
- **[ZabaSearch — People Search Scraper](https://apify.com/jungle_synthesizer/zabasearch-people-search-scraper)** — US people search by name or phone.

***

**Further reading:** [People Search Data in Bulk: 14 Sources, What Each One Returns](https://orbtop.com/articles/people-search-data-in-bulk/)

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

## `searchMode` (type: `string`):

"bulk" walks the full A-Z surname index for the chosen letter (corpus extraction). "name", "phone", "address" and "email" run a single lookup against that search vertical.

## `letter` (type: `string`):

Single letter A-Z. Required for bulk mode — walks that letter's full surname index.

## `firstName` (type: `string`):

First name of the person to search for (required for name mode).

## `lastName` (type: `string`):

Last name of the person to search for (required for name mode).

## `phone` (type: `string`):

Phone number to reverse-lookup (required for phone mode). Format: digits only, e.g. 5551234567.

## `address` (type: `string`):

Street address to reverse-lookup (required for address mode), e.g. "123 Main St".

## `city` (type: `string`):

City for the address lookup (required for address mode).

## `state` (type: `string`):

US state abbreviation, e.g. CA, TX, NY (required for address mode).

## `email` (type: `string`):

Email address to reverse-lookup (required for email mode).

## `maxItems` (type: `integer`):

Maximum number of person records this run returns and is billed for. In bulk mode this caps how far the A-Z index walk goes; in lookup modes it caps how many matching candidates are opened for full detail.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "searchMode": "bulk",
  "letter": "A",
  "firstName": "John",
  "lastName": "Smith",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "searchMode": "bulk",
    "letter": "A",
    "firstName": "John",
    "lastName": "Smith",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/cyberbackgroundchecks-people-search-scraper").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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "searchMode": "bulk",
    "letter": "A",
    "firstName": "John",
    "lastName": "Smith",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/cyberbackgroundchecks-people-search-scraper").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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "searchMode": "bulk",
  "letter": "A",
  "firstName": "John",
  "lastName": "Smith",
  "maxItems": 10
}' |
apify call jungle_synthesizer/cyberbackgroundchecks-people-search-scraper --silent --output-dataset

```

## MCP server setup

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

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/ybUke25wLBFdNn1Qy/builds/U5FEx2akoF8kaQ19N/openapi.json
