# Skip Trace Scraper — Phone, Email & Address by Name (`scrapersdelight/skip-trace-scraper`) Actor

Skip trace a person, address, or phone: current + previous addresses, phones, emails, relatives, age & aliases. Powered by ThatsThem — full records inline, no login. Export JSON/CSV.

- **URL**: https://apify.com/scrapersdelight/skip-trace-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Automation, Lead generation, Agents
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 per person record returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🔎 Skip Trace Scraper — Phone, Email & Address by Name, Address or Phone

**Skip trace any person, address, or phone number and get a full contact record back — current + previous addresses, phone numbers, emails, relatives, age and aliases. Powered by ThatsThem, served inline, no login. The cheapest and most reliable skip tracing on the store at $5 per 1,000 records.**

> 🕒 Updated continuously · 💵 $5 / 1,000 records (pay only for what returns) · 🇺🇸 US people data · 🚫 No login or API key · ⚡ Name · Address · Phone lookups

Turn a name, an address, or a phone number into a clean, structured person record in seconds. Feed one lookup or thousands in a single run and export to JSON, CSV, Excel, or Google Sheets — or pull straight into your CRM/app via API. A drop-in **skip-trace / batch skip tracing API** for real-estate investors, collections, process servers, and lead-gen teams.

***

### What it does

- 🧍 **Three ways to search** — by **Name** (+ city/state), by **Address**, or by **Phone number**. Mix and match in one bulk run.
- 📇 **A full person record per match** — name, aliases, age, and where they live now.
- 🏠 **Current + previous addresses** — the full address history, not just the latest.
- 📞 **Phone numbers** — associated landline & mobile numbers, most-relevant first.
- 📧 **Email addresses** — associated emails for outreach and matching.
- 👪 **Relatives & aliases** — related people and "also known as" names to confirm identity.
- 📦 **Bulk skip tracing** — paste a list of names, addresses, or phones and skip-trace them all in one job.

### 📊 Output — one record per matched person

Every match comes back as a flat, ready-to-use JSON record. The key fields:

| Field | Type | Example |
|---|---|---|
| 🧍 `name` | text | `John Smith` |
| 🎂 `age` / `born` | number / text | `61` / `March 1965` |
| 📞 `phone` (+ `phones[]`) | text / array | `214-695-0688` |
| 📧 `email` (+ `emails[]`) | text / array | `chriss@bellsouth.net` |
| 🏠 `current_address` | text | `1119 Bonnie View Rd, Dallas, TX 75203-3928` |
| 🏙️ `current_city` / `current_state` / `current_zip` | text | `Dallas` / `TX` / `75203-3928` |
| 🗺️ `previous_addresses[]` | array | `["5036 Hummingbird Ln, Plano, TX 75093", …]` |
| 👪 `relatives[]` | array | `["Janet Smith"]` |
| 🪪 `also_known_as[]` | array | `["John C. Smith", "Chris J. Smith"]` |
| 🔗 `search_type` / `search_query` | text | `name` / `John Smith — Dallas, TX` |

<details><summary>🔎 Sample record</summary>

```json
{
  "search_type": "name",
  "search_query": "John Smith — Dallas, TX",
  "name": "John Smith",
  "gender": "Male",
  "age": 61,
  "born": "March 1965",
  "lives_in": "Dallas, TX",
  "current_address": "1119 Bonnie View Rd, Dallas, TX 75203-3928",
  "current_city": "Dallas", "current_state": "TX", "current_zip": "75203-3928",
  "phone": "214-695-0688",
  "phones": ["214-695-0688", "972-403-0262", "214-731-6105"],
  "email": "chriss@bellsouth.net",
  "emails": ["chriss@bellsouth.net", "jgsmith620@aol.com"],
  "previous_addresses": ["5036 Hummingbird Ln, Plano, TX 75093", "1145 Hampton Dr, Allen, TX 75013"],
  "relatives": ["Janet Smith"],
  "also_known_as": ["John C. Smith", "John Andrew Smith"],
  "scraped_at": "2026-07-09T00:00:00.000Z"
}
```

</details>

***

### Who it's for

- 🏘️ **Real-estate investors & wholesalers** — skip-trace owner lists to reach off-market sellers by phone and email.
- 💸 **Collections & recovery** — locate current phones and addresses for right-party contact.
- 📨 **Process servers & investigators** — confirm identity with relatives, aliases, and address history.
- 🎯 **Lead-gen & sales teams** — enrich a name or address into direct contact details.

### How to use it

1. Click **Try for free**.
2. Pick **Search by** = *Name*, *Address*, or *Phone*, and fill the matching field(s).
   - **Name:** e.g. `John Smith`, City `Dallas`, State `TX`.
   - **Address:** e.g. `1600 Pennsylvania Ave NW, Washington, DC 20500`.
   - **Phone:** e.g. `214-695-0688`.
3. *(Bulk)* add many lookups at once in **Bulk searches**.
4. Set **Max records** and click **Start**. Export from the **Dataset** tab (JSON, CSV, Excel, Google Sheets) or via API.

#### Examples

Skip-trace a name in a city:

```json
{ "searchType": "name", "name": "John Smith", "city": "Dallas", "state": "TX" }
```

Reverse-search an address:

```json
{ "searchType": "address", "address": "1600 Pennsylvania Ave NW, Washington, DC 20500" }
```

Reverse-search a phone:

```json
{ "searchType": "phone", "phone": "214-695-0688" }
```

Bulk skip tracing:

```json
{ "searches": [
  { "searchType": "name", "name": "Jane Doe", "city": "Austin", "state": "TX" },
  { "searchType": "phone", "phone": "512-555-0134" }
] }
```

***

### ❓ FAQ

**Is this a skip-tracing API?** Yes — give it a name, address, or phone and get back structured JSON with phones, emails, and address history. Call it from your app or run it in bulk.

**Do I need a login or API key?** No. It reads publicly available people-search data — no account, no key.

**How much does it cost?** Pay-per-result at **$5 per 1,000 records** — you only pay for the person records returned. A targeted lookup is a fraction of a cent, and it's free to try.

**Can I skip-trace a whole list?** Yes — use **Bulk searches** (or **ThatsThem URLs**) to run thousands of name/address/phone lookups in one job.

**What data comes back?** Current + previous addresses, associated phone numbers and emails, relatives, age/birth month, and aliases — whatever ThatsThem publishes for that person.

**Why do some records have more phones/emails than others?** Coverage varies by person. Use `maxPhonesPerRecord` / `maxEmailsPerRecord` to keep the top N, or `0` to keep everything found.

**Can I export to Excel or Google Sheets?** Yes — the dataset exports to JSON, CSV, Excel, or Google Sheets, or pull it via API.

### ⚖️ Notes & fair use

This actor reads publicly available people-search listings from ThatsThem. **People data is regulated.** You are solely responsible for having a permissible, lawful purpose for each lookup and for complying with all applicable laws — including the **FCRA** (this data is **not** a consumer report and must **not** be used for credit, employment, insurance, or tenant-screening decisions), **DPPA**, **TCPA**, and state privacy laws (**CCPA/CPRA** etc.) — as well as ThatsThem's Terms of Service. Do not use it for stalking, harassment, or any unlawful purpose.

# Actor input Schema

## `searchType` (type: `string`):

What you are searching with: a person's Name (+ city/state), an Address, or a Phone number. Fill the matching field(s) below.

## `name` (type: `string`):

Name mode: the person's full name, e.g. "John Smith". Combine with City + State to narrow the results.

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

Name mode (optional): city to narrow the name search, e.g. "Dallas". Leave blank to search the name nationwide.

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

Name mode (optional): 2-letter state code to narrow the name search, e.g. "TX".

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

Address mode: a full US street address, e.g. "1600 Pennsylvania Ave NW, Washington, DC 20500". Returns the people associated with that address.

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

Phone mode: a US phone number in any format, e.g. "214-695-0688" or "(214) 695-0688". Returns the owner + associated people.

## `searches` (type: `array`):

Optional. Run many lookups in one job. Each item is an object, e.g. {"searchType":"name","name":"Jane Doe","city":"Austin","state":"TX"} or {"searchType":"phone","phone":"512-555-0134"} or {"searchType":"address","address":"1 Infinite Loop, Cupertino, CA 95014"}.

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

Optional. Paste ThatsThem name/address/phone result URLs directly (e.g. https://thatsthem.com/name/John-Smith/Dallas-TX) to scrape as-is.

## `maxRecords` (type: `integer`):

Cap on person records returned this run (cost/speed guard). Default 50; set 0 for every match across all searches.

## `maxPhonesPerRecord` (type: `integer`):

Keep at most this many phone numbers per person (they are ordered most-relevant first). 0 = keep all found.

## `maxEmailsPerRecord` (type: `integer`):

Keep at most this many email addresses per person (most-relevant first). 0 = keep all found.

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

Proxy settings. RESIDENTIAL is the default for clean IP reputation on this people-search site; switch to a cheaper group only if results stay reliable.

## `requestConcurrency` (type: `integer`):

Max parallel requests. Keep modest to respect the site and avoid rate limits.

## `diagnose` (type: `boolean`):

Dev only. Fetches the first search, logs one parsed record, then exits.

## Actor input object example

```json
{
  "searchType": "name",
  "name": "John Smith",
  "city": "Dallas",
  "state": "TX",
  "maxRecords": 50,
  "maxPhonesPerRecord": 10,
  "maxEmailsPerRecord": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "requestConcurrency": 3,
  "diagnose": false
}
```

# Actor output Schema

## `records` (type: `string`):

The dataset of scraped person records (one item per matched person).

# 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 = {
    "searchType": "name",
    "name": "John Smith",
    "city": "Dallas",
    "state": "TX"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/skip-trace-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 = {
    "searchType": "name",
    "name": "John Smith",
    "city": "Dallas",
    "state": "TX",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/skip-trace-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchType": "name",
  "name": "John Smith",
  "city": "Dallas",
  "state": "TX"
}' |
apify call scrapersdelight/skip-trace-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapersdelight/skip-trace-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/UyFWsAD0X1U8kmIOj/builds/DkeD1kw4TaTvBLoUV/openapi.json
