TruePeopleSearch Scraper — People Search & Reverse Phone Lookup
Pricing
from $3.00 / 1,000 results
TruePeopleSearch Scraper — People Search & Reverse Phone Lookup
TruePeopleSearch scraper for people search by name, phone, address or email: phones, emails, ages, current and past addresses and relatives. Reverse phone lookup for skip tracing and CRM enrichment. Pay per match. Not for FCRA use.
Pricing
from $3.00 / 1,000 results
Rating
1.5
(2)
Developer
IntelScrape
Maintained by CommunityActor stats
3
Bookmarked
334
Total users
52
Monthly active users
a day ago
Last modified
Categories
Share
TruePeopleSearch Scraper – Phone & Email Matches

⭐ Honest review welcome: if you've run this Actor, please leave an honest review on the Actor page (good or bad). Something not working? Please open an issue and we'll look at it. We don't pay or reward anyone for reviews.
🇨🇳 中文简介 (Chinese — China & Singapore): TruePeopleSearch 公开页里的电话和邮箱,用姓名、地址、电话或邮箱即可查询。默认只输出含电话/邮箱的匹配并按条计费,避免为空页买单;无需 API Key。适合需要美国公开联系方式的中介、催收辅助与 B2B enrichment 团队(非 FCRA 决策用途)。马上试跑,把匹配结果导出 CSV 或通过 MCP 交给 AI 助手处理。
🇸🇬 Ringkasan Melayu (Singapore): Dapatkan telefon dan e-mel daripada rekod awam TruePeopleSearch menggunakan nama, alamat, telefon atau e-mel. Secara lalai hanya padanan dengan telefon/e-mel ditulis — anda bayar per padanan, bukan halaman kosong. Tiada API key. Sesuai untuk enrichment B2B dan penyelidikan yang sah (bukan keputusan FCRA). Cuba sekarang di Apify Store.
🤖 NEW: Connect This To Your AI!
Want to use IntelScrape actors inside Claude, Cursor, or ChatGPT? Check out the Skip Trace MCP Server. Give your AI Model Context Protocol access to people-search and lead agents.
🏆 Featured Bots by IntelScrape
- TruePeopleSearch Scraper — Phone & Email Matches
- Skip Trace PRO — Name, Address, Phone & Email People Lookup
- TikTok Scraper — Emails & Influencer Leads
- Amazon Product Review Scraper — Deep E-commerce & Review Extraction
- Building Permit Scraper — US Cities Open Data
- Google Maps No-Website Leads — Local Businesses Without a Website
- UCC Lien Scraper — Florida & New Jersey Filings
- Skip Trace MCP Server — Use Skip Trace inside Claude, Cursor, ChatGPT
Next steps after a match
Each row includes a softCta object with links to related lookups (no extra charge):
- Skip Trace PRO — deeper people enrichment
- Google Maps Email Extractor — business / seller outreach
- Building Permit Scraper — property lead adjacency
- UCC Lien Scraper — filing / distress signals
- Google Maps No-Website Leads — local businesses without a site
- Contact Info Scraper — crawl emails from a URL
Optional paid enrichments (email-verify, phone-liveness, breach-exposure) stay on their existing schedule — these links do not change pricing.
⚡ Use this Actor in n8n — no code
- Add the official Apify node in n8n.
- Connect your Apify API token.
- Run Actor ID:
IntelScrape/truepeoplesearch-scraper.
People search focused on contact matches. Look up by name, address, phone, or email and get merged public-record style rows with phones/emails when available.
Bulk input, no API key, pay only for matches.
⚠️ Zero-row warning (data-source keys): this Actor ships with free sources only (North Carolina property records, ThatsThem, FEC donors). No paid data-source key (PDL / ScraperAPI / Endato) is configured, and ThatsThem now masks many phone digits and email characters. So name searches outside North Carolina often return 0 rows, and the run status message will say so. Best results: search by phone or email (reverse lookup), or use
Name, City, ST(NC works best). Zero-row runs are not charged for results; only the one-time Actor start event applies. This is a data-source limit, not a crash.
Honest coverage & billing (read this): Baseline is public-records style lookup + best-effort sources (optional keyed enrichments only if the owner configured them). By default only rows with a phone and/or email are written (billed as dataset results). Enable address-only only if the input exposes that flag. Use demo mode for fictional format samples (saved to Key-value store
OUTPUT, no result charge; the start event still applies).
🧭 Built for skip tracers, wholesalers, process servers, debt recovery, and B2B enrichment teams.
⭐ Store rating is driven by daily power users. Please leave a review if this saves you time.
⚖️ Lawful business use only. Publicly available information only — not a consumer reporting agency / not for FCRA decisions. You are liable for unlawful use.
📌 Examples are fictional.
🔗 Permit → Owner → Contact: a 3-step lead pipeline (for roofing, solar, HVAC & real-estate sales teams)
Three IntelScrape Actors chain into one workflow: find who just pulled a permit, then find a way to reach them. Each step is its own pay-per-event run, so you only pay for the steps you use.
| Step | Actor | What it gives you |
|---|---|---|
| Building Permit Scraper | 1. New permits by city, trade and value: address, contractor, owner name where the city publishes it | |
| Skip Trace PRO | 2. Turn a name or address from step 1 into a person record (address history, relatives, phone/email where available) | |
| TruePeopleSearch Scraper (you are here) | 3. Second-source phone/email check for the same person, so you can compare two sources before you call |
How to run it (no code):
- Run Building Permit Scraper with e.g.
{"city":"Austin","permitType":"Roofing","timePeriod":"Last 30 days","maxResults":25,"enrichContractors":false}and export the dataset. - Feed the owner names and addresses into Skip Trace PRO, one
First Last, City STquery per line. - Send any person who still has no phone or email to TruePeopleSearch Scraper.
- Keep the rows that two sources agree on; those are your call list.
Apify integrations (n8n, Make, Zapier, Google Sheets) can pass the dataset from one step to the next with no code. Results depend on what each public source returns for a given person; rows with no phone or email are not guaranteed.
Common names & thin results (honest)
Common-name searches (e.g. John Smith without City+ST) often return 0 billed contacts. When hits exist but none include phone/email, the run can look FAILED in the Store (status message like “Found name/address hits but 0 with phone/email (not billed)”) even though billing stayed honest — thin rows are skipped by default so you are not charged for empty contact fields.
How to get better contact matches:
- Scope name searches with City + ST (e.g.
"John Smith, Austin, TX"orqueries:"John Smith | Austin, TX"). - Prefer reverse phone (
phones[]) or reverse email when you already have an identifier — highest contact hit rate. - Set
includeAddressOnlyResults: trueonly if you want name/address public-record rows without phone/email (those rows are billed if written). - Keep default off if you only want dialable/emailable matches (pay for contacts, not thin pages).
🕵️♂️ Why Choose Us vs. "Cheaper" Competitors?
| Feature | TruePeopleSearch Scraper | Thin TPS clones |
|---|---|---|
| Billing | Pay for contact matches | Pay for empty thin rows |
| Modes | Name / address / reverse phone / email | Single brittle mode |
| Stack | Aligned with Skip Trace PRO quality bar | One-off scripts |
Quick start
{"names": ["John Smith, Springfield, IL"],"maxResultsPerQuery": 3}
New in 1.0.60: CRM-ready columns and mobile-only filter
Two free options (no extra charge) make the export drop straight into a CRM, dialer or spreadsheet:
flattenedOutput: trueadds flat columns to every row:Phone-1…Phone-5withPhone-N Type(Wireless / Landline / VoIP),Email-1…Email-5,Full Name,Age,Street Address,Input GivenandPerson Link.wirelessOnly: truekeeps only mobile numbers (inphones,bestPhoneand thePhone-Ncolumns), which is handy for SMS and dialer campaigns. A match left with no phone and no email is skipped and not billed.- Fixed: email columns in the default table / CSV view were blank before 1.0.60. They now fill, and the view adds
bestPhone,bestPhoneTypeandbestEmail.
{"phones": ["(415) 555-0100"],"flattenedOutput": true,"wirelessOnly": true}
Example flat row (fictional demo record, from demoMode):
| Full Name | Age | Phone-1 | Phone-1 Type | Email-1 | Street Address |
|---|---|---|---|---|---|
| Jordan A Sample | 42 | (415) 555-0100 | Wireless | jordan.sample@example.com | 500 Example Ave, New York, NY 10118 |
Pricing (pay per event)
You pay only for what is delivered. Apify platform usage for the run is billed to your account as normal.
| Event | Price | When it is charged |
|---|---|---|
| Contact match (result) | $0.003 ($3.00 per 1,000) | Each row written with a phone and/or email. Thin rows without contacts are skipped and not billed. |
| Email verification | $0.002 | Once per match that includes a verification result. On by default (verifyEmails). Set verifyEmails: false to skip it. |
| Phone liveness check | $0.003 | Opt-in only (verifyPhoneLiveness: true), once per match with a liveness result. |
| Actor start | $0.0005 per run (rises to $0.005 per GB of memory from Oct 28, 2026) | Once when the run starts. |
What 1,000 matches cost: about $3.00 with verifyEmails: false, or up to $5.00 with the default email verification on. Use maxItems to cap spend per run.
Use cases
- Skip tracing and wholesaling: find a phone or email for a property owner from a name plus city/state or a mailing address.
- Reverse phone or email lookup: put a name and address to an inbound number or address you already have.
- CRM and dialer enrichment: turn on
flattenedOutputandwirelessOnlyto get mobile numbers inPhone-1…Phone-5columns ready for import. - Bulk lists: paste a Google Sheets or CSV link in
csvUrl(headers like Name, Address, Phone, Email) and export results to CSV, Excel or JSON. - Automations: call it from n8n, Make, Zapier or the Apify API, or set
webhookUrlto receive the records when the run finishes.
⏰ Schedule this Actor — monthly refresh of a contact list kept in a Google Sheet
Run it once with your own settings, save that run as a task, then let Apify Schedules repeat it. About two minutes, no code.
- In Apify Console open Schedules → Create new.
- Click Add → pick your saved task (or this Actor), set the cron expression and time zone below, and click Enable (new schedules start disabled).
- Optional: open the task's integrations and add a webhook on
ACTOR.RUN.SUCCEEDEDso every finished run is pushed to your CRM, Zapier, Make or n8n. Payload template:{"runId": {{resource.id}}, "datasetId": {{resource.defaultDatasetId}}, "status": {{resource.status}}}. Your tool then readshttps://api.apify.com/v2/datasets/<datasetId>/items?format=csv, or use the Apify integrations for Google Sheets, Make and Zapier.
| Cadence | Cron expression |
|---|---|
| Every day, 8 AM | 0 8 * * * |
| Weekdays, 8 AM | 0 8 * * 1-5 |
| Every Monday, 8 AM | 0 8 * * 1 |
| 1st of the month, 8 AM | 0 8 1 * * |
Starter task input for this Actor (edit the values, then paste into the task):
{"csvUrl": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/export?format=csv","maxItems": 200,"flattenedOutput": true,"webhookUrl": "https://your-crm.example.com/hooks/tps"}
- Keep your lookup list (Name, Address, Phone, Email columns) in one sheet. Edit the sheet, not the task, and every scheduled run picks up the new rows.
maxItemsis a hard cap on matches written per run, so a scheduled run cannot exceed the budget you choose.- There is no change-only mode yet: every scheduled run searches the whole list again and each contact match is billed again. Schedule monthly or weekly for lists you want refreshed, and remove finished rows from the sheet.
Prefer the API? POST https://api.apify.com/v2/schedules with a body like the one below (send your token in the Authorization: Bearer header):
{"name": "truepeoplesearch-scraper-weekly","userId": "YOUR_USER_ID","actions": [{"type": "RUN_ACTOR_TASK","actorTaskId": "YOUR_TASK_ID"}],"cronExpression": "0 8 1 * *","timezone": "America/New_York","isEnabled": true}
Docs: Apify Schedules · Webhook actions
Did this run save you time? A quick rating on the Store page helps other people find it. If something broke, open an Issue instead and I'll fix it fast; issues get answered within a day.
FAQ
Why did my run return 0 results? Common names without City + ST often have no phone or email on file. Those rows are skipped and you are not charged for them. Add City + ST, or search by phone or email instead.
Why does the Store show some runs as FAILED? A run that found name/address hits but no contact fields can end with a "0 with phone/email (not billed)" status. Nothing is charged for those hits.
Do I need an API key or proxy? You do not need to supply one, but coverage depends on the sources configured. This Actor currently runs on free sources only (no PDL / ScraperAPI / Endato key set), so name searches outside North Carolina often return 0 rows; reverse phone/email lookups work best. The run status message states when 0 rows is caused by missing data-source keys.
Can I try it without spending on real lookups? Yes. Set demoMode: true to see the exact output format using fictional records. The sample is saved to the run's Key-value store (OUTPUT); nothing is written to the dataset and no result or add-on events are charged (only the one-time Actor start event applies).
How do I keep only mobile numbers? Set wirelessOnly: true. Matches left with no phone and no email are skipped and not billed.
Can I use it for tenant screening, employment or credit decisions? No. It is not a consumer reporting agency and the data is not for FCRA purposes.
Legal
Lawful B2B / investigative use of public information only. Not for FCRA consumer decisions.
Match-rate honesty (read before bulk runs)
Common name-only searches (e.g. "John Smith") often find public-record name/address hits without phone or email. By default those thin rows are not written and not billed. The run may finish with 0 contact matches — that is expected billing honesty, not a Store outage.
Tips for billed contacts: use reverse phone/email, include City + State with the name, start with demoMode to inspect the schema, or set includeAddressOnlyResults: true only if you want property rows without phone/email (those rows are billed if written).
⭐ Store review
If a live lookup returned the contact fields you needed, a quick Store review helps other users — thank you.