Real Estate Skip Trace | Owner Phone & Email | $12/1K avatar

Real Estate Skip Trace | Owner Phone & Email | $12/1K

Pricing

from $12.00 / 1,000 skip trace matches

Go to Apify Store
Real Estate Skip Trace | Owner Phone & Email | $12/1K

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

31

Total users

26

Monthly active users

8 hours ago

Last modified

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

How Property Skip Tracing works

✨ Why use this Actor?

  • Address-first by design. Pass street + citystatezip and 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. phoneDetails gives each number's line type (Wireless / Landline / Voip), carrier and last-seen month where the site shows them.
  • Pay only on matches. The SkipTraceMatch event fires once per address that returns at least one person. An address where only the county owner comes back is billed one OwnerRecord event 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 investorTurn a distressed-property list into named leads for cold outreach
Owner-occupancy checkerSee who currently lives at a property — spot likely-absentee owners for direct mail
Title / probate researcherPull current and former occupants for genealogy / probate context
B2B due-diligence / fraud analystCross-check who is associated with a registered business address
Process server / investigatorConfirm the people tied to an address before lawful service

📥 Supported inputs

InputExampleReturns
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 URLhttps://example.com/leads.csvPeople for every row of a two-column CSV/TXT
Direct URL (advanced)https://thatsthem.com/address/3828-Double-Oak-Ln-Irving-TX-75061Scraped 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

  1. Look up the owner of record in the county appraisal district's data (Dallas County, TX today), alongside the people search.
  2. Search ThatsThem for the address and read every person with their phones and emails.
  3. 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.
  4. 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").
  5. Charge once per matched address, then push one row per person to the dataset (capped at your maxItems).

⚙️ Input parameters

FieldTypeDescription
addressesarrayFull one-line US addresses (123 Main St, Dallas, TX 75201). Same paste format as other property skip-trace tools.
streetstringUS street address line (optional if addresses is set).
citystatezipstringCity, ST ZIP (optional if addresses is set).
includePhonebooleanDeliver phones. Default true.
includeEmailbooleanDeliver emails. Default true.
bulkAddressesarrayArray of { street, citystatezip } objects.
addressesFromUrlstringPublic CSV/TXT URL with two columns: street, citystatezip.
startUrlsarrayDirect thatsthem.com URLs, scraped as-is (advanced).
webhookUrlstringEach person record is POSTed here as JSON as it's found. Best-effort.
deepSearchbooleanWhen 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.
ownerLookupbooleanAdd 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.
ownerOnlyRowsbooleanWhen 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.
includeContactsbooleanDeliver full phone numbers & emails on each row (billed per person that has them). Default true.
demoModebooleanReturn one sample record with no lookup and no charge. Default false.
maxItemsintegerHard cap on person records returned. Default 1000.
maxConcurrencyintegerHow 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

FieldTypeNotes
inputStreetstringStreet address you submitted (denormalized on every row)
inputCityStateZipstringCity/state/ZIP you submitted
namestringFull name of the connected person
personIdstringStable identifier derived from the source profile
ageinteger | nullReported age when available
livesInstring | nullMost recent city/state of residence
usedToLiveInstring | nullPrior cities/states, comma-separated
relatedTostring | nullReported relatives / associates, comma-separated
phonesstring | nullFull phone numbers, comma-separated (with includeContacts)
emailsstring | nullFull email addresses, comma-separated (with includeContacts)
phoneDetailsobject[]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.
sourcestringSites the person was found on, e.g. thatsthem, truepeoplesearch
countyOwnerNamestring | nullOwner of record from the county appraisal district, e.g. SMITH JOHN A & SMITH MARY B. Null outside supported counties.
countyOwnerMailingAddressstring | nullThe county owner's mailing address (spot absentee owners)
countyOwnerAccountId / countyOwnerSourcestring | nullCounty account id and which district answered (dcad)
isCountyOwnerboolean | nullTrue for the resident whose name matches the county owner; null when there is no county record
lookupStatusstringcontact (the row has a phone or email), name_only, or owner_only (nobody found at the address; the row is the county owner)
isAbsenteeboolean | nullThe person lives elsewhere; on an owner_only row, the owner's mailing address is not the property
profileUrlstringPublic profile URL on the source
pageintegerResult page index (single-hop, always 1)
scrapedAtstringISO 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). Turn includeContacts off to skip both the fields and the charge.
  • OwnerRecord — charged per owner_only row: an address where no site found anyone but the county has an owner of record. Turn ownerOnlyRows off 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 + citystatezip still 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 / includeEmail default true.
  • countyOwnerName is the owner of record (Dallas County, TX today); ownerFullName is the person on the row. Filter isCountyOwner: true with lookupStatus: "contact" for the owner's own phones and emails; owner_only rows 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