# Skip Trace Scraper \[$6/1K] | People Finder (`ahmed_jasarevic/skip-trace-people-finder`) Actor

Find people records from a name, phone, address, email or lookup URL. Get phones, emails, current and previous addresses, aliases, age range, relatives and address history for lawful contact research.

- **URL**: https://apify.com/ahmed_jasarevic/skip-trace-people-finder.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 99.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 person founds

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

## Skip Trace People Finder - Phones, Emails & Address History

Turn a name, phone, address or email into a consolidated person record.

### How It Works

![Skip Trace People Finder workflow: from a name, phone, address or email to consolidated public-record contact data](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-skip-trace.webp)

Looking for a **skip trace scraper** or a practical **people-search API alternative**? Start with a name, phone number, address, email or direct lookup URL. The Actor consolidates public-record results into person records with phones, emails, current and previous addresses, aliases, age range, relatives and address history.

Use the dataset for lawful contact research, CRM enrichment and identity verification workflows. Export as JSON, CSV or Excel, or pull results through the Apify API. Pricing starts at $6 per 1,000 matched records, with lower rates at higher volume tiers.

### What You Get

- Full name, aliases and age range
- Phone numbers and email addresses
- Current and previous addresses with address count
- Relatives, profile URL and lookup context

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `names` | array | - | Full names such as `Jane Doe`, optionally with a location. |
| `phones` | array | - | US phone numbers in any common format. |
| `addresses` | array | - | Street address with city, state and ZIP. |
| `emails` | array | - | Email addresses for reverse lookup. |
| `startUrls` | array | - | Direct result URLs from the supported people-search site. |
| `csvUrl` | string | - | Raw CSV URL with Name, Phone, Address and/or Email columns. |
| `webhookUrl` | string | - | Receives each person record as JSON when found. |
| `maxItems` | integer | 10 | Maximum matched records across all lookups. |

#### Example Input

```json
{
  "names": [
    "Jane Doe, Springfield, IL"
  ],
  "phones": [
    "(217) 555-0148"
  ],
  "maxItems": 10
}
```

### Output

One dataset item per record.

| Field | Description |
|---|---|
| `type`, `fullName`, `aliases` | Person identity and name variants. |
| `ageText`, `deceased`, `lastUpdated` | Age and record status. |
| `phones`, `emails` | Contact details. |
| `currentAddress`, `previousAddresses`, `addressCount` | Address history. |
| `relatives` | Linked names from the same record. |
| `profileUrl`, `lookupType`, `lookupQuery` | Result context. |
| `sourceUrl`, `scrapedAt` | Record and collection timestamps. |

#### Example Output

```json
{
  "type": "person",
  "fullName": "Jordan A Miller",
  "ageText": "41",
  "phones": [
    "+1 217-555-0148"
  ],
  "emails": [
    "j.miller@example.com"
  ],
  "currentAddress": {
    "streetAddress": "123 Main St",
    "addressLocality": "Springfield",
    "addressRegion": "IL",
    "postalCode": "62704"
  },
  "addressCount": 3,
  "relatives": [
    {
      "name": "Avery Miller"
    },
    {
      "name": "Casey Miller"
    }
  ],
  "lookupType": "name"
}
```

### Pricing

| Volume | Cost |
|---|---|
| 1 matched record | $0.006 |
| 1,000 matched records | $6.00 |
| 10,000 matched records | $60.00 |

Higher Apify plan tiers receive lower per-record rates: Silver $0.0055 and Gold $0.005. Records without usable contact data are not charged. The standard Actor start charge applies to each run.

### Integrations

- Export the dataset as JSON, CSV or Excel from Apify.
- Pull results through the Apify API.
- Schedule repeat runs for monitoring and change tracking.
- Connect webhooks to Slack, Google Sheets, Make, Zapier, n8n or your own workflow.

### FAQ

#### Is this for FCRA-regulated decisions?

No. This Actor is not a consumer reporting agency and must not be used for credit, employment, housing, insurance or other FCRA eligibility decisions.

#### What if no match is found?

The run completes with the records that match your inputs. Records without usable contact data are not charged.

#### Can I batch a CSV?

Yes. Provide a raw CSV URL with Name, Phone, Address and/or Email columns and set `maxItems` to cap the output.

#### How accurate is the data?

Public records can be incomplete or outdated. Verify important details independently and follow applicable privacy laws.

### Legal & Compliance

This Actor collects publicly available information. It is not affiliated with, endorsed by or sponsored by the data source. Users are responsible for complying with applicable terms, privacy laws and data-protection regulations.

# Actor input Schema

## `names` (type: `array`):

Full names to look up. A first and last name are required, e.g. "Jane Doe". Optionally append a location after a comma, e.g. "Jane Doe, Springfield, IL".

## `phones` (type: `array`):

US phone numbers in any format. Numbers that are not 10 digits after removing a leading 1 are skipped.

## `addresses` (type: `array`):

Street addresses with city, state and ZIP, e.g. "123 Main St, Springfield, IL 62704". Each address returns the people associated with that property.

## `emails` (type: `array`):

Email addresses for reverse lookup, e.g. "jane.doe@email.com". Invalid emails are skipped.

## `startUrls` (type: `array`):

Direct result URLs to read as-is, e.g. "https://example.com/name/Jane-Doe". Accepted path prefixes: /name/, /phone/, /address/, /email/.

## `csvUrl` (type: `string`):

HTTPS URL of a raw CSV. Header names should include Name, Phone, Address, and/or Email. Each populated cell becomes one lookup. Leave empty when using the array inputs.

## `webhookUrl` (type: `string`):

HTTPS URL that receives each person record as JSON when found. Leave empty to skip.

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

Maximum matched records across all lookups. You are billed per record.

## `maxConcurrency` (type: `integer`):

How many lookups run in parallel. Lower this if lookups are slow.

## `proxyConfiguration` (type: `object`):

Optional Apify proxy configuration for the run.

## Actor input object example

```json
{
  "names": [
    "Jane Doe, Springfield, IL"
  ],
  "phones": [
    "(202) 555-0182"
  ],
  "addresses": [
    "123 Main St, Springfield, IL 62704"
  ],
  "emails": [
    "jane.doe@email.com"
  ],
  "startUrls": [],
  "maxItems": 10,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `personRecords` (type: `string`):

Dataset with one row per matched person: identity, phones, emails, current and previous addresses, relatives and aliases.

## `runSummary` (type: `string`):

JSON summary of the run: record and lookup counts, cache hits, skipped inputs and finish time.

# 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 = {
    "names": [
        "Jane Doe, Springfield, IL"
    ],
    "phones": [
        "(202) 555-0182"
    ],
    "addresses": [
        "123 Main St, Springfield, IL 62704"
    ],
    "emails": [
        "jane.doe@email.com"
    ],
    "startUrls": [],
    "csvUrl": "",
    "webhookUrl": "",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/skip-trace-people-finder").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 = {
    "names": ["Jane Doe, Springfield, IL"],
    "phones": ["(202) 555-0182"],
    "addresses": ["123 Main St, Springfield, IL 62704"],
    "emails": ["jane.doe@email.com"],
    "startUrls": [],
    "csvUrl": "",
    "webhookUrl": "",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/skip-trace-people-finder").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 '{
  "names": [
    "Jane Doe, Springfield, IL"
  ],
  "phones": [
    "(202) 555-0182"
  ],
  "addresses": [
    "123 Main St, Springfield, IL 62704"
  ],
  "emails": [
    "jane.doe@email.com"
  ],
  "startUrls": [],
  "csvUrl": "",
  "webhookUrl": "",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call ahmed_jasarevic/skip-trace-people-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/skip-trace-people-finder"
        }
    }
}
```

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/4cwNhgjlNP4eWD7jd/builds/wlAMHhctAfZbmiNBu/openapi.json
