ThatsThem Scraper | Skip Trace by Name, Phone, Address & Email
Pricing
from $7.00 / 1,000 person records
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
Maintained by CommunityActor stats
0
Bookmarked
4.1K
Total users
42
Monthly active users
6 hours ago
Last modified
Categories
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

✨ 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 / wholesaler | Find the people connected to a property address |
| B2B data / lead-gen team | Append phone numbers and address history to contact lists |
| Due-diligence analyst | Check public address history and known relatives |
📥 Supported inputs
| Input | Example | Returns |
|---|---|---|
| Name | Jane Doe, Springfield, IL | People matching the name (optional location narrows it) |
| Phone (reverse) | (202) 555-0182 | The likely owner of the number + their record |
| Address (reverse) | 123 Main St, Springfield, IL 62704 | People associated with the address |
| Email (reverse) | jane.doe@email.com | The likely owner of the email |
| Direct URL | https://thatsthem.com/name/Jane-Doe | Scraped verbatim and parsed the same way |
Not supported: pages behind a ThatsThem login, premium background-check reports, and non-US records.
🔄 How it works
- Build the lookup URL for each value you provide (name →
/name/…, phone →/phone/…, address →/address/…, email →/email/…). - Fetch the result page with a single HTTP request (impit + sliding-window concurrency for bulk lists).
- Parse the person cards on the result page (and JSON-LD when the site still serves it).
- Extract every person's name, aliases, age, phones, emails, addresses (with geo), and relatives.
- Push one row per matched person to the dataset, capped at your
maxItems.
⚙️ Input parameters
| Field | Type | Description |
|---|---|---|
names | array | Full names to look up; append , City, ST to narrow. |
phones | array | US phone numbers, any format. Reverse lookup. |
addresses | array | Street addresses (123 Main St, City, ST ZIP). Reverse lookup. |
emails | array | Email addresses. Reverse lookup. |
startUrls | array | Direct thatsthem.com result URLs, scraped as-is. |
csvUrl | string | URL 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. |
webhookUrl | string | Each person record is POSTed here as JSON as it's found (Zapier / Make / GoHighLevel). Best-effort. |
demoMode | boolean | Return one sample record with no lookup and no charge, to preview the output shape. Default false. |
maxItems | integer | Hard cap on person records returned (billed per record). Default 100. |
maxConcurrency | integer | How many lookups to fetch in parallel. Default 8. |
cacheMaxAgeHours | integer | Reuse 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
| Field | Type | Notes |
|---|---|---|
fullName, givenName, middleName, familyName | string | Name + parsed parts |
aliases | string[] | "Known as" / AKA names |
ageText | string | e.g. "December 1962 (63 years old)" (when shown) |
deceased | boolean | Flagged when ThatsThem marks the person deceased |
phones | string[] | Full numbers (XXX-XXX-XXXX): the one ThatsThem shows in full, or all of them when filled from the index |
emails | string[] | Emails ThatsThem shows in full, plus the matched person's emails from the index |
contactsSource | string | people-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 |
currentAddress | object | Street, city, region, ZIP, country, latitude, longitude, ThatsThem URL |
previousAddresses | object[] | Same shape; the person's address history |
addressCount | integer | Total addresses on record |
relatives | object[] | Relatives / associates (name) |
lastUpdated | string | How fresh ThatsThem's record is (e.g. "1 week ago") |
sourceUrl | string | The lookup page the record came from |
scrapedAt | string | ISO timestamp of the scrape |
Pricing
| Event | When | Rate |
|---|---|---|
| Actor start | Once per run (per GB of memory) | $0.005 |
| Person record | Each matched person pushed to the default dataset | $0.007 |
| Phone number | Each phone number on a delivered record | $0.001 |
| Email address | Each 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, orcsvUrl. An empty run fails and is not billed. demoMode: truewrites a fake row to thepreviewdataset and theOUTPUTkey — 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