ThatsThem Scraper | Skip Trace by Name, Phone, Address & Email avatar

ThatsThem Scraper | Skip Trace by Name, Phone, Address & Email

Pricing

from $7.00 / 1,000 person records

Go to Apify Store
ThatsThem Scraper | Skip Trace by Name, Phone, Address & Email

ThatsThem Scraper | Skip Trace by Name, Phone, Address & Email

Look up a US name, phone, address or email on ThatsThem: one public-records row per match with address history, relatives and aliases. Phones and emails ThatsThem hides are filled from our people-search index when matched. Mix inputs or drop a CSV. $7 per 1,000 matches. Lawful B2B — not for FCRA.

Pricing

from $7.00 / 1,000 person records

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

4.1K

Total users

42

Monthly active users

6 hours ago

Last modified

Share

ThatsThem Scraper — Skip Trace by Name, Phone, Address & Email

Look up a US name, phone, address, or email and get one structured record per matched person: phones, emails, current and previous addresses, relatives, aliases, and age. Built for lawful B2B contact enrichment and public-records research — not for FCRA decisions.

Reads publicly available ThatsThem pages. No ThatsThem account or API key required.

About phones and emails (since late October 2026). ThatsThem now shows each phone only as its first six digits and hides most emails. This Actor fills a person's phones and emails from its own people-search index (public records gathered by this Actor and its sister people-search Actors) when it can match the person reliably: same last name, same first name, same state, and at least one stored phone that starts with a prefix ThatsThem shows. A person the index does not know is looked up live in public people-search records, and kept only when one of their phones matches the digits ThatsThem shows (fillContactsLive, on by default; it adds 10-60 s per person looked up). Every row says where its contacts came from in contactsSource. A person it cannot match comes back without phones and emails, and you are not charged for contacts that are not there.

How it works

How the Skip Trace scraper works

✨ Why use this scraper?

  • Phones and emails where they can be matched. ThatsThem shows contacts only in part; the Actor fills them from its own people-search index when the match is unambiguous, and each row says so in contactsSource.
  • Four lookup modes in one Actor. Search by name, reverse-phone, reverse-address, or reverse-email — mix them in a single run.
  • Whole-person records. Each row carries name + name variants, aliases, age, deceased flag, every phone, current + previous addresses (with latitude/longitude), and relatives/associates.
  • Bulk-ready. Drop in a list of names, phones, or addresses and get one row per matched person, billed per record.
  • CSV + CRM built in. Feed a CSV URL of lookups, POST each result straight to Zapier / Make / GoHighLevel, or preview the exact output for free with demo mode.
  • Fast & clean. Each search page is the result page — a single HTTP call per lookup, no detail-page hop, no pagination.
  • No proxy headaches. Works on standard US IPs; no captcha-solving or anti-bot bypass required.

🎯 Use cases

You are a…Use it to…
Real-estate investor / wholesalerFind the people connected to a property address
B2B data / lead-gen teamAppend phone numbers and address history to contact lists
Due-diligence analystCheck public address history and known relatives

📥 Supported inputs

InputExampleReturns
NameJane Doe, Springfield, ILPeople matching the name (optional location narrows it)
Phone (reverse)(202) 555-0182The likely owner of the number + their record
Address (reverse)123 Main St, Springfield, IL 62704People associated with the address
Email (reverse)jane.doe@email.comThe likely owner of the email
Direct URLhttps://thatsthem.com/name/Jane-DoeScraped verbatim and parsed the same way

Not supported: pages behind a ThatsThem login, premium background-check reports, and non-US records.

🔄 How it works

  1. Build the lookup URL for each value you provide (name → /name/…, phone → /phone/…, address → /address/…, email → /email/…).
  2. Fetch the result page with a single HTTP request (impit + sliding-window concurrency for bulk lists).
  3. Parse the person cards on the result page (and JSON-LD when the site still serves it).
  4. Extract every person's name, aliases, age, phones, emails, addresses (with geo), and relatives.
  5. Push one row per matched person to the dataset, capped at your maxItems.

⚙️ Input parameters

FieldTypeDescription
namesarrayFull names to look up; append , City, ST to narrow.
phonesarrayUS phone numbers, any format. Reverse lookup.
addressesarrayStreet addresses (123 Main St, City, ST ZIP). Reverse lookup.
emailsarrayEmail addresses. Reverse lookup.
startUrlsarrayDirect thatsthem.com result URLs, scraped as-is.
csvUrlstringURL to a raw CSV whose header names Name / Phone / Address / Email columns (City/State/Zip fold into the name). Each row's cells become lookups.
webhookUrlstringEach person record is POSTed here as JSON as it's found (Zapier / Make / GoHighLevel). Best-effort.
demoModebooleanReturn one sample record with no lookup and no charge, to preview the output shape. Default false.
maxItemsintegerHard cap on person records returned (billed per record). Default 100.
maxConcurrencyintegerHow many lookups to fetch in parallel. Default 8.
cacheMaxAgeHoursintegerReuse a page one of your own earlier runs already fetched, if it is younger than this many hours — faster, and gentler on the source. 0 always fetches fresh. Only your account's pages are reused. Default 24.

📊 Output overview

The dataset contains one row per matched person. Identity, phones, emails, addresses (current + previous, each with latitude/longitude), and relatives all come merged into that single row — there are no separate address or relative rows to join. Phone numbers are returned complete, in +1-XXX-XXX-XXXX form. Fields that ThatsThem doesn't have for a given person (e.g. emails, jobTitle) come back empty rather than guessed.

📦 Output sample

{
"type": "person",
"fullName": "John Smith Sandreth",
"givenName": "John",
"middleName": null,
"familyName": "Smith Sandreth",
"aliases": ["John S. Sandreth", "John W. Smith"],
"ageText": "December 1962 (63 years old)",
"deceased": false,
"lastUpdated": "1 week ago",
"phones": ["+1-541-517-3975", "+1-541-344-1845", "+1-541-682-6594", "+1-214-497-4501"],
"emails": [],
"currentAddress": {
"streetAddress": "85036 Spencer Hollow Rd",
"addressLocality": "Eugene",
"addressRegion": "OR",
"postalCode": "97405",
"addressCountry": "US",
"latitude": 43.97259,
"longitude": -123.087356,
"url": "https://thatsthem.com/address/85036-Spencer-Hollow-Rd-Eugene-OR-97405"
},
"previousAddresses": [
{
"streetAddress": "370 Juniper St",
"addressLocality": "Florence",
"addressRegion": "OR",
"postalCode": "97439",
"latitude": 43.969859,
"longitude": -124.10961
}
],
"addressCount": 5,
"relatives": [
{ "name": "Mary Sandreth" },
{ "name": "Madison Sandreth" },
{ "name": "Gabriel Sandreth" },
{ "name": "Mark Sandreth" }
],
"sourceUrl": "https://thatsthem.com/name/John-Smith/Florence-OR",
"scrapedAt": "2026-06-20T21:04:28.471Z"
}

🗂 Key output fields

FieldTypeNotes
fullName, givenName, middleName, familyNamestringName + parsed parts
aliasesstring[]"Known as" / AKA names
ageTextstringe.g. "December 1962 (63 years old)" (when shown)
deceasedbooleanFlagged when ThatsThem marks the person deceased
phonesstring[]Full numbers (XXX-XXX-XXXX): the one ThatsThem shows in full, or all of them when filled from the index
emailsstring[]Emails ThatsThem shows in full, plus the matched person's emails from the index
contactsSourcestringpeople-index when phones/emails were filled from our index, live-lookup when they were looked up live for this run, thatsthem when they are only what the page showed
currentAddressobjectStreet, city, region, ZIP, country, latitude, longitude, ThatsThem URL
previousAddressesobject[]Same shape; the person's address history
addressCountintegerTotal addresses on record
relativesobject[]Relatives / associates (name)
lastUpdatedstringHow fresh ThatsThem's record is (e.g. "1 week ago")
sourceUrlstringThe lookup page the record came from
scrapedAtstringISO timestamp of the scrape

Pricing

EventWhenRate
Actor startOnce per run (per GB of memory)$0.005
Person recordEach matched person pushed to the default dataset$0.007
Phone numberEach phone number on a delivered record$0.001
Email addressEach email address on a delivered record$0.0015

Phone and email charges start on 2026-10-30. A record with none of those fields pays only the person-record price. Free Apify plan rows are masked, so they are not charged for phones or emails. Empty / no-match lookups are not billed. demoMode writes a sample to the preview dataset only.

❓ FAQ

Are the phone numbers complete? ThatsThem now shows only the first six digits of each phone. When the Actor can match the person in its own index (name, state and those digits), it returns the full numbers and emails from there and sets contactsSource to people-index. When it cannot, the row has the name, age, addresses and relatives but no phones or emails, and no phone or email charges.

How am I billed? Per person record pushed to the dataset ($0.007), plus $0.001 for each phone number and $0.0015 for each email address on that record. A record with no phones or no emails does not pay those events. Higher Apify plans pay a little less per phone and per email. Use maxItems to cap a run. Lookups that return no match cost nothing for that lookup beyond the page fetch. The phone and email events take effect on 2026-10-30.

Can I bulk-process a list? Yes — pass arrays of names, phones, or addresses (or a mix). Each value becomes one lookup and may return several matched people.

What does a run on the free Apify plan get? One lookup and at most 20 people. Every row has the phone numbers and emails partly hidden, the street addresses and coordinates hidden, and a freePlanNote field saying so. Names, ages, cities, states and relatives stay visible so you can see the records are real. Pages are fetched through Apify Proxy in your own Apify account (residential, with Apify's unblocker as a fallback), so a free run uses your account's proxy allowance. If ThatsThem refuses those requests, or the account has neither proxy group, the run finishes with no rows, nothing is charged for results, and the run's status message says why. Any paid Apify plan uses the full data path and returns every field in full.

Does it cover non-US people? No. ThatsThem is a US public-records dataset, so coverage is US-only.

Why are some emails or coordinates empty? Those fields aren't present for every record on ThatsThem. The Actor returns what's available and leaves the rest empty rather than guessing.

Is this legal to use? The Actor reads only publicly available ThatsThem pages. You are responsible for using the data lawfully — see the Disclaimer below.

💬 Support

Found a missing field or a record that didn't parse? Open an issue from the Actor's Issues tab on Apify with the input you used, and it'll be looked into.

🛠 Additional services

Need this wired into a CRM, scheduled as a recurring enrichment job, or combined with email/phone validation? Reach out through the Apify contact form on the developer profile.

🔎 Explore more scrapers

Looking for related data tools? Browse the developer's other people-data, lead-generation, and public-records Actors on the Apify Store. FastPeopleSearch (name / phone / address only) is a separate Actor — this one is the email + mixed-input slot.

🤖 For AI Agents & LLM Apps

Compact reference for agents calling this actor via the Apify MCP server or the Apify API (memo23/skip-trace-people-finder).

Purpose: US public-records people lookup on ThatsThem. Mix name, reverse-phone, reverse-address, and reverse-email in one run. One dataset row per matched person.

Minimal input:

{ "names": ["Jane Doe, Springfield, IL"], "emails": ["jane.doe@email.com"], "maxItems": 5 }

Output: one row per person — fullName, givenName, middleName, familyName, aliases, ageText, deceased, phones[], emails[], currentAddress {streetAddress, addressLocality, addressRegion, postalCode, latitude, longitude, url}, previousAddresses[], addressCount, relatives[{name}], profileUrl, sourceUrl, scrapedAt.

Behaviors an agent should know:

  • Always set maxItems. A common name can return many people. Each row is billed, plus each phone number and each email on that row (from 2026-10-30). A free Apify plan gets one lookup, at most 20 people, and masked phones, emails and street addresses.
  • Fill any combination of names, phones, addresses, emails, startUrls, or csvUrl. An empty run fails and is not billed.
  • demoMode: true writes a fake row to the preview dataset and the OUTPUT key — no lookup, no charge.
  • Empty / no-match lookups are not billed. US records only. Not for FCRA decisions.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by ThatsThem, Intelius, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

This Actor is an independent tool and is not affiliated with ThatsThem. It reads only publicly available pages. Output may be regulated under the Fair Credit Reporting Act (FCRA), DPPA, GDPR/CCPA, or similar laws. Do not use this data for credit, employment, insurance, tenant screening, or any FCRA-regulated purpose. You are responsible for lawful use.


SEO Keywords

thatsthem scraper, people search, reverse phone lookup, reverse address lookup, reverse email lookup, contact enrichment, address history, public records people search, b2b contact data