Real Estate Skip Trace | Owner Phone & Email | $12/1K
Pricing
from $12.00 / 1,000 skip trace matches
Real Estate Skip Trace | Owner Phone & Email | $12/1K
Paste a US property address and get the people on it: phones, emails, mailing address, absentee flag, relatives. One row per person. Deep-search extra sites on a miss, plus Dallas County owner-of-record. Pay only on matches. $12 per 1,000 matches. Lawful B2B — not for FCRA.
Pricing
from $12.00 / 1,000 skip trace matches
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
31
Total users
26
Monthly active users
8 hours ago
Last modified
Categories
Share
Property Skip Tracing — Address to People Lookup 🏠🔎
Turn a US property address into named leads in seconds. Submit a street address and get back the people connected to it — current and former residents with phones, emails, age, current city, prior locations and relatives — plus the owner of record from county appraisal data where available (Dallas County, TX today). Built for wholesalers, real-estate investors, title researchers, and B2B due-diligence teams who start from a property list, not a name.
You pay when an address returns people. A blank lookup costs nothing, except in Dallas County, where the county's owner of record comes back as one owner-only row (turn ownerOnlyRows off to skip it).
How it works

✨ Why use this Actor?
- Address-first by design. Pass
street+citystatezipand get everyone associated with that address — no need to know a name first. - Four people-search sites, one row per person. ThatsThem first; when nobody there has a phone or email, TruePeopleSearch, SearchPeopleFree and USPhoneBook are checked in turn. The same person found on several sites is merged into one row with every phone and email.
- The real owner, not just residents. For Dallas County addresses the county appraisal district's owner of record, mailing address and account id go on every row, and the resident who matches the owner is flagged (
isCountyOwner). When no site finds anyone living there, you still get one row with the owner of record and an absentee flag. - Typed phones.
phoneDetailsgives each number's line type (Wireless / Landline / Voip), carrier and last-seen month where the site shows them. - Pay only on matches. The
SkipTraceMatchevent fires once per address that returns at least one person. An address where only the county owner comes back is billed oneOwnerRecordevent instead; other empty lookups cost nothing beyond the run start. - One row per person. Output is flat and denormalized with the input address — drop it straight into a CSV, Google Sheet, or dialer with no joins.
- Single, bulk, or file input. One address, an array of addresses, or a public CSV/TXT URL — no custom plumbing.
- Built-in deduplication. The same person appearing more than once is removed automatically.
- HTML run report. Match rate, per-address breakdown, and the lawful-use reminder, saved to the run's key-value store.
- Standard Apify exports. JSON, CSV, Excel, plus a webhook to push each record to Zapier / Make / GoHighLevel.
🎯 Use cases
| You are a… | Use it to… |
|---|---|
| Wholesaler / real-estate investor | Turn a distressed-property list into named leads for cold outreach |
| Owner-occupancy checker | See who currently lives at a property — spot likely-absentee owners for direct mail |
| Title / probate researcher | Pull current and former occupants for genealogy / probate context |
| B2B due-diligence / fraud analyst | Cross-check who is associated with a registered business address |
| Process server / investigator | Confirm the people tied to an address before lawful service |
📥 Supported inputs
| Input | Example | Returns |
|---|---|---|
| Addresses (one-line) | ["3828 Double Oak Ln, Irving, TX 75061"] | People connected to each address |
| Single address (split) | street: "3828 Double Oak Ln", citystatezip: "Irving, TX 75061" | Same lookup, two boxes |
| Bulk addresses | [{ street, citystatezip }, …] | People for each address, one row per person |
| Addresses from URL | https://example.com/leads.csv | People for every row of a two-column CSV/TXT |
| Direct URL (advanced) | https://thatsthem.com/address/3828-Double-Oak-Ln-Irving-TX-75061 | Scraped verbatim and parsed the same way |
Not supported: international addresses (US-only), records behind a login, and any premium "unlock"-gated report pages.
🔄 How it works
- Look up the owner of record in the county appraisal district's data (Dallas County, TX today), alongside the people search.
- Search ThatsThem for the address and read every person with their phones and emails.
- Deep search: while nobody has a phone or email, or the county owner is missing, check TruePeopleSearch, SearchPeopleFree and USPhoneBook in turn, fetching the owner's profile first. On TruePeopleSearch and SearchPeopleFree, up to two more results pages are checked when the owner isn't on the first. The run moves on as soon as the address has what you need.
- Merge people found on several sites into one row and stamp the county owner fields on every row. People with a phone or email come first, the owner first among them. If nobody turned up but the county has an owner, that owner becomes the address's one row (
lookupStatus: "owner_only"). - Charge once per matched address, then push one row per person to the dataset (capped at your
maxItems).
⚙️ Input parameters
| Field | Type | Description |
|---|---|---|
addresses | array | Full one-line US addresses (123 Main St, Dallas, TX 75201). Same paste format as other property skip-trace tools. |
street | string | US street address line (optional if addresses is set). |
citystatezip | string | City, ST ZIP (optional if addresses is set). |
includePhone | boolean | Deliver phones. Default true. |
includeEmail | boolean | Deliver emails. Default true. |
bulkAddresses | array | Array of { street, citystatezip } objects. |
addressesFromUrl | string | Public CSV/TXT URL with two columns: street, citystatezip. |
startUrls | array | Direct thatsthem.com URLs, scraped as-is (advanced). |
webhookUrl | string | Each person record is POSTed here as JSON as it's found. Best-effort. |
deepSearch | boolean | When ThatsThem has nobody with a phone or email (or misses the county owner), check TruePeopleSearch, SearchPeopleFree and USPhoneBook in turn. No extra charge. Default true. |
ownerLookup | boolean | Add the county appraisal district's owner of record, mailing address and account id to every row and flag the matching resident. Dallas County, TX today; other addresses get null owner fields. Free. Default true. |
ownerOnlyRows | boolean | When no site finds anyone at an address but the county has an owner of record, return one row with that owner, their mailing address, account id and an absentee flag. Billed as one OwnerRecord event. Default true. |
includeContacts | boolean | Deliver full phone numbers & emails on each row (billed per person that has them). Default true. |
demoMode | boolean | Return one sample record with no lookup and no charge. Default false. |
maxItems | integer | Hard cap on person records returned. Default 1000. |
maxConcurrency | integer | How many addresses to fetch in parallel. Default 8. |
📊 Output overview
The dataset contains one row per person connected to the input address. Every row is denormalized with the inputStreet and inputCityStateZip you submitted, so the file is ready for CSV / Sheet workflows with no joins. Fields the source doesn't have for a given person come back null rather than guessed.
📦 Output sample
{"inputStreet": "123 Sample St","inputCityStateZip": "Dallas, TX 75201","name": "Jane Q. Sample","personId": "Jane-Q-Sample","age": 40,"livesIn": "Dallas, TX","usedToLiveIn": "Austin, TX","relatedTo": "John Sample, Mary Sample","phones": "(214) 555-0134","emails": "jane.q.sample@example.com","propertyAddress": "123 Sample St, Dallas, TX 75201","ownerFullName": "Jane Q. Sample","ownerMailingAddress": "123 Sample St, Dallas, TX 75201","isAbsentee": false,"lookupStatus": "contact","phoneNumbers": ["(214) 555-0134"],"emailAddresses": ["jane.q.sample@example.com"],"phoneDetails": [{"number": "(214) 555-0134","type": "Wireless","carrier": "Sample Wireless","firstReported": null,"lastReported": "Jul 2026","isPrimary": true,"isInactive": false}],"source": "thatsthem, truepeoplesearch","countyOwnerName": "SAMPLE JANE Q","countyOwnerMailingAddress": "123 SAMPLE ST, DALLAS, TX 75201-0000","countyOwnerAccountId": "00000000000000000","countyOwnerSource": "dcad","isCountyOwner": true,"relatives": ["John Sample","Mary Sample"],"sourceUrl": "https://thatsthem.com/address/123-Sample-St-Dallas-TX-75201","profileUrl": "https://thatsthem.com/name/Jane-Q-Sample","page": 1,"scrapedAt": "2026-09-19T08:00:00.000Z"}
🗂 Key output fields
| Field | Type | Notes |
|---|---|---|
inputStreet | string | Street address you submitted (denormalized on every row) |
inputCityStateZip | string | City/state/ZIP you submitted |
name | string | Full name of the connected person |
personId | string | Stable identifier derived from the source profile |
age | integer | null | Reported age when available |
livesIn | string | null | Most recent city/state of residence |
usedToLiveIn | string | null | Prior cities/states, comma-separated |
relatedTo | string | null | Reported relatives / associates, comma-separated |
phones | string | null | Full phone numbers, comma-separated (with includeContacts) |
emails | string | null | Full email addresses, comma-separated (with includeContacts) |
phoneDetails | object[] | Each phone with type (Wireless / Landline / Voip), carrier, firstReported, lastReported, isPrimary, isInactive where the site shows them. Same shape as our TruePeopleSearch and FastPeopleSearch actors. |
source | string | Sites the person was found on, e.g. thatsthem, truepeoplesearch |
countyOwnerName | string | null | Owner of record from the county appraisal district, e.g. SMITH JOHN A & SMITH MARY B. Null outside supported counties. |
countyOwnerMailingAddress | string | null | The county owner's mailing address (spot absentee owners) |
countyOwnerAccountId / countyOwnerSource | string | null | County account id and which district answered (dcad) |
isCountyOwner | boolean | null | True for the resident whose name matches the county owner; null when there is no county record |
lookupStatus | string | contact (the row has a phone or email), name_only, or owner_only (nobody found at the address; the row is the county owner) |
isAbsentee | boolean | null | The person lives elsewhere; on an owner_only row, the owner's mailing address is not the property |
profileUrl | string | Public profile URL on the source |
page | integer | Result page index (single-hop, always 1) |
scrapedAt | string | ISO timestamp of the scrape |
💰 Pricing
Pay-per-event, charged only for what you get:
- Actor start — a small fixed charge once per run.
SkipTraceMatch— charged only when an address returns at least one person. Empty lookups are not charged.ContactInfo— charged only per delivered person who actually has a phone number or email on file (people without contact data are free). TurnincludeContactsoff to skip both the fields and the charge.OwnerRecord— charged perowner_onlyrow: an address where no site found anyone but the county has an owner of record. TurnownerOnlyRowsoff to skip these rows and the charge.
There's also a free demo mode (demoMode: true) that returns a sample record with no lookup and no charge, so you can preview the exact output shape before scaling.
❓ FAQ
Where does the data come from? The Actor reads publicly available people-search content and returns the people the source associates with an address. Profile URLs in each record link back to the source.
What if no people are returned for an address? With deepSearch on (the default), the address is checked on TruePeopleSearch, SearchPeopleFree and USPhoneBook as well. If every site comes up empty, you're not charged the match event for it. For a Dallas County address the county's owner of record is returned as one owner_only row instead (one OwnerRecord event; turn ownerOnlyRows off to skip it). The run-start charge still applies once per run.
Where does the owner of record come from? From the county appraisal district (for Dallas County, TX: DCAD's public property search). The owner can be a person, a couple, a company or a trust; the resident whose name matches is flagged with isCountyOwner. Other counties are on the roadmap; for now their rows carry null owner fields.
Some sites answer for a nearby address — do I get those people? No. SearchPeopleFree and USPhoneBook sometimes answer a lookup with a similar street ("123 W Main St" for "123 Main St", or "Main Ave" for "Main St"). Pages for a different house number, street direction, street type or ZIP are discarded. Include the ZIP in your address: without one, a street you wrote without its direction ("Main St" when the county has "W Main St") can only be checked against the site's spelling, so those pages are discarded too.
Why do some addresses return people who don't live there now? Public records list everyone historically associated with an address — current owner, previous tenants, and their relatives. Use livesIn / usedToLiveIn to filter.
What does a run on the free Apify plan get? Up to 3 addresses per run. The first three rows of a run are complete; in later rows the phone numbers and emails are partly hidden, the owner's mailing address, the relatives and the source links are hidden, and the row carries a freePlanNote field saying so. Pages are fetched through Apify Proxy in your own Apify account (Apify's unblocker first, residential as a second try), so a free run uses your account's proxy allowance. If the sites refuse 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.
Are international addresses supported? No — US addresses only.
Can I bulk-process a list? Yes. Use bulkAddresses for an array, or addressesFromUrl for a two-column CSV/TXT.
Can I use this to deny someone housing, credit, or a job? No. This Actor is not a consumer reporting agency and is not FCRA-regulated — see the Disclaimer.
💬 Support
Found a missing field or an address that didn't parse? Open an issue from the Actor's Issues tab on Apify with the input you used.
🔎 Explore more scrapers
Need name / phone / email lookups too? Try the companion Skip Trace — People, Phone & Address Finder for reverse lookups by any identifier, plus full unmasked phone numbers and address history. Browse the developer's other people-data and lead-generation Actors on the Apify Store.
🤖 For AI Agents & LLM Apps
Compact reference for agents calling this actor via the Apify MCP server or the Apify API (memo23/property-skip-tracing).
Purpose: US address → people on that property (current + former residents). One dataset row per person, stamped with the input address.
Minimal input:
{ "addresses": ["3828 Double Oak Ln, Irving, TX 75061"], "maxItems": 5 }
Output: inputStreet, inputCityStateZip, propertyAddress, name / ownerFullName, age, livesIn, usedToLiveIn, relatedTo / relatives[], phones / phoneNumbers[], phoneDetails[] (type, carrier, dates), emails / emailAddresses[], ownerMailingAddress, isAbsentee, lookupStatus (contact, name_only or owner_only), source, countyOwnerName, countyOwnerMailingAddress, countyOwnerAccountId, countyOwnerSource, isCountyOwner, profileUrl, sourceUrl, scrapedAt.
Behaviors an agent should know:
- Prefer
addresses(one-line strings).street+citystatezipstill work. - Always set
maxItems. One address can return many people; each row is a person, not an address. - Empty addresses are not billed the match event.
includePhone/includeEmaildefault true. countyOwnerNameis the owner of record (Dallas County, TX today);ownerFullNameis the person on the row. FilterisCountyOwner: truewithlookupStatus: "contact"for the owner's own phones and emails;owner_onlyrows carry the county owner with no contact data.- US only. Not for FCRA decisions.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow Group, ThatsThem, TruePeopleSearch, SearchPeopleFree, USPhoneBook, the Dallas Central Appraisal District, or any consumer reporting agency. Brand and source names are used solely descriptively to identify the public data the Actor reads. All trademarks are the property of their respective owners.
Lawful B2B use only. This Actor returns information about individuals derived from public records. It is NOT a consumer reporting agency and its output is NOT a "consumer report" under the U.S. Fair Credit Reporting Act (FCRA). You may not use any output — directly or indirectly — as a factor in establishing a person's eligibility for credit or insurance, employment, housing or tenant screening, or any other purpose covered by Section 604 of the FCRA (15 U.S.C. § 1681b). You are also responsible for compliance with all applicable privacy laws (CCPA/CPRA, VCDPA, CPA, GDPR, DPPA, GLBA, and any sector-specific regulations). If you are unsure whether your use is permitted, consult qualified legal counsel.
SEO Keywords
property skip tracing, skip tracing scraper, address to owner lookup, owner lookup by address, real estate skip trace, wholesaler skip tracing, absentee owner finder, address to people lookup, reverse address lookup, people search by address, distressed property leads, real estate lead generation, resident lookup, current and former residents, relatives lookup, probate research, title research, b2b due diligence address, thatsthem scraper, apify skip trace, pay per match skip tracing, us address people finder