TruePeopleSearch — People Search Scraper avatar

TruePeopleSearch — People Search Scraper

Pricing

from $0.85 / 1,000 person records

Go to Apify Store
TruePeopleSearch — People Search Scraper

TruePeopleSearch — People Search Scraper

Scrape US people from TruePeopleSearch by name, phone or address. Each row: full phone numbers, emails, current + past addresses with geo, relatives, associates, aliases, age and property details (beds, baths, value, year built). Cloudflare handled. Bulk lists, CSV & webhook. JSON or CSV out.

Pricing

from $0.85 / 1,000 person records

Rating

5.0

(4)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

2

Bookmarked

519

Total users

96

Monthly active users

7.2 hours

Issues response

2 days ago

Last modified

Categories

Share

TruePeopleSearch scraper logo

Find anyone in the US by name, phone, or address and get one clean, structured record per person — full (unmasked) phone numbers, emails, current and past addresses with geo-coordinates, relatives, associates, aliases, age, and even property details (beds, baths, sqft, value, year built). Built for lawful skip tracing, debt recovery, process serving, and B2B contact enrichment.

Powered by TruePeopleSearch public-records data. The site is protected by Cloudflare — this Actor clears it for you, so the data that a browser struggles to reach comes straight out in your dataset.

How it works

How the TruePeopleSearch scraper works

✨ Why use this scraper?

  • Full phone numbers. Every phone on the profile, in the familiar (NPA) NXX-XXXX format — no "unlock" wall.
  • Four lookup modes in one Actor. Search by name, reverse-phone, reverse-address, or email — mix them in a single run.
  • Whole-person records. Each row carries name + name parts, aliases, age + birth month, every phone and email, current + past addresses (with latitude/longitude), relatives, and associates — each relative/associate with their own profile URL.
  • Property intelligence. Where TruePeopleSearch publishes it, the current-address property is parsed into structured fields: bedrooms, bathrooms, square feet, ownership (owner/renter), estimated value, equity, year built, and HOA.
  • Cloudflare handled. The site sits behind Cloudflare; every page goes through an unblocker, so you don't manage proxies, fingerprints or captchas. Lookups run in parallel.
  • Bulk-ready. Drop in a list of names, phones, or addresses (or a CSV URL) and get one row per matched person, billed per record, per search, and per phone number and email in each record (see Pricing).
  • CSV + CRM built in. Feed a CSV URL of lookups, POST each result straight to Zapier / Make / GoHighLevel, flatten to Email-1 / Phone-1 / Phone-1 Type columns, or preview the exact output for free with demo mode.
  • Resume cursor. Paste resumeCursor from a capped run to continue without re-billing people you already received.

🎯 Use cases

You are a…Use it to…
Skip tracer / collections agencyLocate debtors and account holders — current address + every known phone
Real-estate investor / wholesalerFind the owner behind a property address and reach them directly
Process serverConfirm a current address for lawful service
Private investigatorBuild a contact + associates picture from a single identifier
B2B data / lead-gen teamAppend phone numbers and address history to your contact lists
Fraud / due-diligence analystVerify identity, address history, and known relatives

📥 Supported inputs

InputExampleReturns
NameJohn Smith, Irving, TXPeople matching the name (optional city/state/ZIP narrows it)
Phone (reverse)(972) 917-9873The likely owner of the number + their record
Address (reverse)935 Turtle Cv, Irving, TX 75060People associated with the address
Email (reverse)jane@example.comPeople tied to that email
Direct URLhttps://www.truepeoplesearch.com/find/person/p4246290nl4r29r2l8n6A profile URL scraped verbatim; search URLs also supported

Not supported: non-US records, and any content behind a TruePeopleSearch login. This Actor reads only public pages.

Coming from another skip-trace actor?

Complaint we keep seeing on the category leaderWhat this actor does
Charged full price for “Person Not Found” / 404sA search that finds nobody costs only $0.001; removed or 404 profiles are never billed
One name per runPass names[] / phones[] / emails[] — one run, many lookups
Detail page 502s, empty datasetListing-card fallback still writes the name, age, city, and relatives
Re-paying for page 1 of a huge name searchPaste resumeCursor from the previous run

🔄 How it works

  1. Each name / phone / address query is turned into a TruePeopleSearch search URL (/results, /resultphone, /resultaddress).
  2. The search page is fetched (Cloudflare cleared) and every matched person's profile link is collected; result pages are paginated with ?page=N.
  3. Each /find/person/{id} profile page is fetched in parallel (sliding-window concurrency, capped at maxItems).
  4. The profile's JSON-LD is parsed for name, aliases, full phones, emails, current address + geo, relatives and associates; past addresses and property details are read from the page.
  5. One row per person is pushed to the dataset (and optionally POSTed to your webhook).

⚙️ Input parameters

FieldTypeDescription
namesarrayFull names to look up. Append a location after a comma to narrow, e.g. "Jane Doe, Irving, TX" or "John Smith, 75060". A location with no US state or ZIP is skipped without a search or a charge.
phonesarrayUS phone numbers in any format — (972) 917-9873, 972-917-9873, +1 972 917 9873.
addressesarrayStreet addresses with city/state/ZIP, e.g. "935 Turtle Cv, Irving, TX 75060".
emailsarrayEmail addresses for reverse lookup, e.g. "jane@example.com".
flattenedOutputbooleanAdd Email-1 / Phone-1 / Phone-1 Type / Phone-1 Provider / Phone-1 Last Reported / Person Link columns for Sheets / CRM exports.
wirelessOnlybooleanReturn only the phone numbers TruePeopleSearch labels Wireless. Landline and VoIP numbers are left out and not charged; a person with no wireless number still comes back, with no phones.
includeEmailsbooleanDefault true. Set false to keep phones and the rest of the record but drop emails (and Email-1…) so those addresses are not charged.
resumeCursorstringContinue a previous run without re-billing delivered people.
maxItemsPerSearchintegerCap per lookup. Default 10000. Both this and maxItems apply; the run stops at whichever hits first.
startUrlsarrayAdvanced: direct truepeoplesearch.com URLs — search pages or /find/person/{id} profile pages.
csvUrlstringLink to a raw CSV whose header names Name / Phone / Address columns. Each row's cells become lookups.
webhookUrlstringEach person record is POSTed here as JSON as it's found. Best-effort; a failed webhook never fails the run.
demoModebooleanReturn a single sample record with no lookup and no charge, to preview the output shape.
maxItemsintegerHard cap on person records pushed across all lookups. Default 10000. You are billed per record, per phone number and email in each record, plus one search per lookup (see Pricing).
maxConcurrencyintegerHow many pages (searches and profiles) to fetch in parallel. Default 3.

📊 Output overview

The dataset holds one row per matched person. Multi-value fields (phones, emails, past addresses, relatives, associates, aliases) are arrays; age, property.* numeric fields, and geo-coordinates are typed numbers; scrapedAt is an ISO-8601 timestamp. No padding rows — you pay only for real person records.

📦 Output sample

{
"type": "person",
"personId": "p4246290nl4r29r2l8n6",
"fullName": "Johnny Smith",
"givenName": "Johnny",
"familyName": "Smith",
"aliases": ["Johnny Dale Smith", "John Dale Smith", "Dale Smith", "James Smith"],
"age": 34,
"bornMonthYear": "October 1991",
"phones": ["(972) 917-9873", "(817) 793-3808", "(817) 231-2999"],
"emails": ["smithiiijohnny899@gmail.com", "johnny-smith_@sbcglobal.net"],
"currentAddress": {
"streetAddress": "935 Turtle Cv",
"addressLocality": "Irving",
"addressRegion": "TX",
"postalCode": "75060",
"addressCountry": "US",
"latitude": 32.791108,
"longitude": -96.958301,
"url": "https://www.truepeoplesearch.com/find/address/935-turtle-cv_irving-tx-75060"
},
"pastAddresses": [
{
"streetAddress": "1223 E San Miguel St #3",
"addressLocality": "Colorado Springs",
"addressRegion": "CO",
"postalCode": "80909",
"addressCountry": "US",
"latitude": null,
"longitude": null,
"url": "https://www.truepeoplesearch.com/find/address/1223-e-san-miguel-st-3_colorado-springs-co-80909"
}
],
"addressCount": 10,
"relatives": [
{ "name": "Brian Christopher Smith", "profileUrl": "https://www.truepeoplesearch.com/find/person/p848982ur44n998lll0r" }
],
"associates": [
{ "name": "Jessa A Lynas", "profileUrl": "https://www.truepeoplesearch.com/find/person/pln26l8l89lr2608unun" }
],
"property": {
"bedrooms": 2,
"bathrooms": 1.5,
"squareFeet": 880,
"ownership": "owner",
"estimatedValueUsd": 156000,
"equityUsd": 156000,
"equityPercent": 100,
"yearBuilt": 1982,
"hoaMonthlyUsd": 485
},
"description": "Born in October 1991, Johnny Smith is 34 years old. He has resided at 935 Turtle Cv in Irving, TX…",
"profileUrl": "https://www.truepeoplesearch.com/find/person/p4246290nl4r29r2l8n6",
"source": "truepeoplesearch",
"scrapedAt": "2026-07-22T21:14:08.690Z"
}

🗂 Key output fields

FieldTypeNotes
personIdstringTruePeopleSearch profile id (from /find/person/{id}).
fullName, givenName, familyNamestringName and its parts.
aliasesstring[]"Also seen as" names.
ageinteger | nullCurrent age.
bornMonthYearstring | nullBirth month + year (day not published).
phonesstring[]All phone numbers on the profile, unmasked.
phoneDetailsobject[]The same numbers with type (Wireless / Landline / Voip), carrier, lastReported (e.g. Jul 2026), isPrimary and isInactive, in the profile's order. Same shape as the FastPeopleSearch actor's phoneDetails; firstReported is always null here because TruePeopleSearch does not show it.
primaryPhonestring | nullThe number TruePeopleSearch marks "Possible Primary Phone", else the first number.
emailsstring[]All email addresses on the profile.
currentAddressobject | nullCurrent address with latitude/longitude.
pastAddressesobject[]Previous addresses (geo not always available).
addressCountintegerCurrent + past address count.
relativesobject[]Likely relatives — each { name, profileUrl }.
associatesobject[]Likely associates — each { name, profileUrl }.
propertyobject | nullSite-specific bonus: beds, baths, sqft, ownership, value, equity, year built, HOA (when TruePeopleSearch publishes it).
descriptionstring | nullThe profile's prose summary.
profileUrlstringCanonical profile URL.
sourcestringAlways "truepeoplesearch".
scrapedAtstringISO-8601 scrape timestamp.
recordFetchedAtstringWhen this person's record was read from TruePeopleSearch. Equal to scrapedAt for a live record, earlier for one returned from the store.

Pricing

EventWhenPrice
Actor startOnce per run, per GB of memory$0.005
Person recordEach row pushed to the dataset$0.001
Phone numberEach phone number in a person record$0.001
Email addressEach email address in a person record$0.0015
SearchEach lookup TruePeopleSearch runs, whether or not it finds anyone$0.001

Every phone number and every email in every person record you receive is charged, each time it is returned, on top of the person record itself. A record with 4 phones and 2 emails costs $0.001 + 4 × $0.001 + 2 × $0.0015 = $0.008. A record with no phones or emails costs only the $0.001 person record. Set includeEmails: false to drop emails from the row and skip the email charge; wirelessOnly: true keeps only Wireless numbers and skips the charge on the rest.

Demo mode returns one sample row and is not billed as a live lookup. Removed or 404 profiles are skipped and not billed. Free Apify plan runs return no phone numbers or emails, so they are never charged the phone or email event. A lookup is not billed as a search when it is skipped before searching (a city without a US state or ZIP, or a non-US location), when TruePeopleSearch refuses it (for example a name it reads as a last name only), or when the page cannot be fetched. A run stops starting new searches once your maximum cost per run is reached, and logs a resume cursor.

On the free Apify plan, each row comes from the TruePeopleSearch results page only: name, age, current city and state, relatives, and the profile URL. Free runs do not open the person's record page, so they return no phone numbers, emails, street addresses, past addresses, coordinates or property details, and every free row carries a freePlanNote field saying so. 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. Any paid Apify plan returns the full record, phones and emails included, for every person.

❓ FAQ

Is every record fetched live? A person this Actor already fetched recently may come back from its own store instead of being fetched again. recordFetchedAt on each row says when its record was read. Records are billed the same either way.

Does TruePeopleSearch block scrapers? Yes — it runs behind Cloudflare. Every page goes through an unblocker that clears the challenge, so you don't manage proxies, fingerprints, or captchas. Expect a few seconds per page; lookups run in parallel.

Are the phone numbers really unmasked? Yes. Every phone published on the profile is returned in full, in (NPA) NXX-XXXX format.

Can I get phones without emails? Yes. Set includeEmails to false (or uncheck "Include emails"). The row still has phones, addresses and relatives; emails is empty and those addresses are not charged.

Can I search without a location? For names, the location (city, state, or ZIP after a comma) is optional but recommended — a bare common name returns many matches and burns more of your maxItems. A city needs a US state or ZIP (Irving, TX, 75060); TruePeopleSearch refuses a bare city or a non-US place, so those names are skipped without a charge. Phone and address lookups are already specific.

Why did some lookups return fewer rows than maxItems? Common names in large states have many matches; uncommon names may return few or none. Profiles that 404 (removed or moved) are skipped and not billed. maxItems is the run cap; maxItemsPerSearch is the cap on each lookup. Both apply — the run stops when either one is hit.

Is the data free to use commercially? TruePeopleSearch aggregates public records. You are responsible for complying with its Terms of Service and applicable law (FCRA, CCPA, GDPR) — see the Disclaimer. This data must not be used for FCRA-regulated decisions (credit, employment, housing, insurance).

💬 Support

Found a layout change or a field that stopped populating? Open an issue at https://console.apify.com/actors/VmfhYQ9tW4ijMWpuN/issues with the input you used and we'll fix it.

🛠 Additional services

Need a custom people-search or skip-tracing pipeline, CRM integration, or a different data source? Reach out — bespoke scrapers and enrichment flows are available.

🔎 Explore more scrapers

🤖 For AI Agents & LLM Apps

Purpose: look up a US person on TruePeopleSearch and return phones, emails, addresses, relatives, associates and property details.

Minimal input:

{ "names": ["John Smith, Irving, TX"], "maxItems": 5 }

Also accepts phones[], addresses[], emails[], or startUrls[] (search or /find/person/{id} pages). Set flattenedOutput: true for CRM columns. Set includeEmails: false to drop emails and skip the email charge.

Output: one dataset row per person. Flat fields: fullName, age, phones[], phoneDetails[] (line type, carrier, last reported), primaryPhone, emails[], currentAddress, pastAddresses[], relatives[], associates[], property, profileUrl. Billed $0.001 per row, $0.001 per phone number and $0.0015 per email in each row (omit emails with includeEmails: false), $0.001 per search TruePeopleSearch runs, and $0.005 per start. Set demoMode: true for a free sample row with no live fetch.

On the free Apify plan, rows come from the search results page only (name, age, city and state, relatives, profile URL) with no phones, emails, street address, coordinates or property details, fetched through Apify Proxy in the caller's own account; the same rows go to webhookUrl. Paid plans get full records.


⚠️ Disclaimer

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

The scraper accesses only publicly available people-search pages — no authenticated endpoints, member-only features, or content behind a TruePeopleSearch login. Data returned by this Actor originates from public records aggregated by TruePeopleSearch and may be inaccurate or out of date. It must not be used for any purpose regulated by the Fair Credit Reporting Act (FCRA) — including decisions about credit, employment, insurance, tenant screening, or eligibility for a benefit. Users are solely responsible for ensuring their use complies with TruePeopleSearch's Terms of Service, applicable data-protection and privacy law (FCRA, CCPA, GDPR, etc.), and any contractual obligations of their own organisation.


SEO Keywords

truepeoplesearch scraper, scrape truepeoplesearch, truepeoplesearch api, true people search scraper, people search scraper, reverse phone lookup scraper, reverse address lookup, skip tracing tool, skip trace api, people finder api, us people search, public records scraper, contact enrichment scraper, phone number scraper, address history lookup, relatives and associates lookup, lead generation people data, apify truepeoplesearch, debtor location tool, process server address lookup