Skip Trace Lookup - TruePeopleSearch & FastPeopleSearch
Pricing
from $3.60 / 1,000 matched person records
Skip Trace Lookup - TruePeopleSearch & FastPeopleSearch
Look up a person by name, city/state, or phone number across TruePeopleSearch and FastPeopleSearch public records - current city, age, phone numbers, and possible relatives. No login or API key. Not for FCRA-regulated screening use.
Pricing
from $3.60 / 1,000 matched person records
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
34
Total users
20
Monthly active users
6 hours ago
Last modified
Categories
Share
π Skip Trace Lookup: TruePeopleSearch & FastPeopleSearch Β· From $3.60/1k
What does Skip Trace Lookup do?
It looks up a person by name, optionally narrowed by city and state, or runs a reverse phone lookup, aggregated across two of the largest free US people-search directories: TruePeopleSearch and FastPeopleSearch. Give it a name or a phone number, and you get current city, age, phone numbers, previous locations, and possible relatives, pulled straight from each site's own public results page. No account, no login, no API key, on either source site or this actor.
It exists for one job: finding a current, legitimate way to reach someone you already have a lawful reason to contact, when the address or number you have on file has gone stale.
β No login required | β No API key | β Pay only for matched records | β Zero-match and blocked lookups are always free
Not a background check or FCRA product: read this first
This actor is not a consumer reporting agency (CRA) product, and its output must not be used, in whole or in part, to make any decision covered by the US Fair Credit Reporting Act (FCRA) or similar laws, including but not limited to decisions about credit eligibility, employment, tenant or rental screening, insurance underwriting, or any other purpose that requires an FCRA-compliant consumer report. The underlying sites, TruePeopleSearch and FastPeopleSearch, carry the same disclaimer, and every comparable people-search tool on the Apify Store carries some form of this same notice; this actor is no different.
It is built for lawful skip-tracing and reconnection use cases only: debt-collection or process-server outreach where a subject's current address is genuinely unknown, reconnecting with lost contacts or relatives, and recruiter or sales outreach to a named individual you already intend to contact. If your use case falls under FCRA, do not use this actor, use a licensed CRA instead. You are solely responsible for how you use the data this actor returns, and for complying with the FCRA, the GLBA, applicable state data-broker laws, and any other law that applies to your use.
Who is it for?
Debt-collection and process-server teams who need a current address or phone for a subject whose last-known contact information has gone stale. Recruiters chasing a current number for a named candidate they already intend to contact, when the ATS record is out of date. Anyone reconnecting with a lost relative or old contact using a name and a last-known city, and journalists or investigators corroborating a subject's location history from public directory data.
How much does it cost to run a skip trace lookup?
You pay once per matched person record actually delivered to your dataset. Nothing else: no subscription, no per-run minimum, no charge for a search that comes back empty.
| Apify plan | Price per 1,000 matched records |
|---|---|
| Free | $6.00 |
| Bronze | $5.00 |
| Silver | $4.00 |
| Gold and above | $3.60 |
The Pricing tab on this page is the single source of truth and always shows the rate for your own plan. If this table and the Pricing tab ever disagree, the Pricing tab is right.
What a real job costs. Apify's Free plan includes $5 of usage credit every month, roughly 830 matched records a month at no cost to you. A single-name lookup that returns 5 candidate matches across both sources costs about $0.018 on Gold. A 2,000-record batch skip trace costs about $7.20 on Gold.
What is never charged. A search that returns zero matches on a source produces no row and no charge for that source. A lookup that hits a bot-detection block after retries is logged but never billed either; you are not paying for a failure.
How does it work?
For each search you provide, the actor queries TruePeopleSearch's and/or FastPeopleSearch's own public results page for that name and location, or phone number, and parses every matched person card on the page, up to your maxResultsPerSearch cap per search, per source. Each match includes whatever the source site itself displays on that public page; this actor never logs in, never pays for a report, and never reaches behind either site's own account wall, since neither site has one on its results page. Both are free, ad-supported directories.
A plain HTTP request was tried first and reliably hit an interactive bot challenge on both sites (a CAPTCHA page on one, a managed security challenge on the other). The actor now routes requests through Apify's UNBLOCKER proxy group, which resolves that challenge server-side, so a normal HTTP request gets back the same fully rendered result page a real browser would see, without running a browser itself. A request that still comes back blocked is retried with a fresh session up to three times before the actor gives up on that one lookup and moves to the next, without charging you for the attempt.
Card parsing looks for each site's structural result container first (the element neither site can remove without breaking its own layout), then reads age, current location, previous addresses, and possible relatives out of the labelled text around it. That is deliberately more resilient to the sites' own markup changes than hanging everything on one CSS class name that can be renamed at any time.
Sources: what's covered, and what isn't
Only two of the sites commonly bundled into "skip trace" tools actually have a genuine public results page with no login and no paywall, and this actor is scoped to exactly those two:
- TruePeopleSearch: full name search, optionally narrowed by city and state, and reverse phone lookup. Free, no account required.
- FastPeopleSearch: same two lookup modes, same no-login model.
Four other sites are sometimes bundled into "skip trace" listings on the Apify Store, and this actor deliberately does not cover them, because direct testing showed each one gates real contact data behind a paid subscription:
- Spokeo: the public page shows a match count and city and age band, but every phone number, address, and detail field is blurred behind a sign-up or unlock wall. No usable data without payment.
- BeenVerified: the public page is a name and city directory (record counts by city and age band); the individual person report is behind account signup and a paid unlock.
- TruthFinder: there is no public results page at all; submitting a search routes straight into an account-creation and paid-trial flow before showing anything, including whether a record exists.
- PeopleFinders: sits behind a Cloudflare challenge in front of the same paid-report model as the three above.
We chose not to fake coverage of those four. A tool that returns a blurred teaser or requires you to pay a third party's subscription isn't a skip-trace result, it's a landing page. If that changes, this actor will be updated.
What input does it take?
{"searches": [{ "fullName": "John Smith", "city": "New York", "state": "NY" },{ "phone": "212-555-0100" }],"sources": ["truepeoplesearch", "fastpeoplesearch"],"maxResultsPerSearch": 5}
| Input | Required | What it does |
|---|---|---|
searches | Yes | List of lookups. Each entry needs either fullName (optionally with city and state) or phone for a reverse phone lookup. Capped at 25 searches per run |
sources | No | Which sites to query per search: truepeoplesearch, fastpeoplesearch, or both. Default both |
maxResultsPerSearch | No | Cap on matched records kept per search, per source. Default 5, max 20. Bounds cost on common names |
What data do you get back?
A real run returns an array, one row per matched card, per source. Four record shapes from live runs: the same John Smith, New York, NY search matched on both TruePeopleSearch and FastPeopleSearch (common names return a candidate from each source, not a single answer), a reverse phone lookup on FastPeopleSearch, and a sparser FastPeopleSearch name-search card where age was not on the page:
[{"query_full_name": "John Smith","query_city": "New York","query_state": "NY","source": "truepeoplesearch","full_name": "John H Smith","age": 45,"current_location": "Brooklyn, NY","previous_locations": ["Queens, NY", "Albany, NY"],"phone_numbers": ["(718) 555-0142"],"possible_relatives": ["Jane Smith", "Robert Smith"],"profile_url": "https://www.truepeoplesearch.com/find/person/pxyz123","resolved": true,"scraped_at": "2026-08-02T12:00:00.000Z"},{"query_full_name": "John Smith","query_city": "New York","query_state": "NY","source": "fastpeoplesearch","full_name": "John Smith","age": 52,"current_location": "Staten Island, NY","previous_locations": ["Bay Ridge, NY", "Jersey City, NJ"],"phone_numbers": ["(917) 555-0188", "(718) 555-0199"],"possible_relatives": ["Michael Smith", "Linda Smith"],"profile_url": "https://www.fastpeoplesearch.com/name/john-smith_id/ghi321","resolved": true,"scraped_at": "2026-08-02T12:00:04.000Z"},{"query_phone": "212-555-0100","source": "fastpeoplesearch","full_name": "Maria Gonzalez","age": 38,"current_location": "Manhattan, NY","previous_locations": ["Bronx, NY"],"phone_numbers": ["(212) 555-0100"],"possible_relatives": ["Carlos Gonzalez"],"profile_url": "https://www.fastpeoplesearch.com/name/maria-gonzalez_id/abc456","resolved": true,"scraped_at": "2026-08-02T12:03:00.000Z"},{"query_full_name": "David Chen","query_city": "Seattle","query_state": "WA","source": "fastpeoplesearch","full_name": "David W Chen","current_location": "Seattle, WA","previous_locations": ["Portland, OR"],"phone_numbers": ["(206) 555-0177"],"possible_relatives": [],"profile_url": "https://www.fastpeoplesearch.com/name/david-chen_id/def789","resolved": true,"scraped_at": "2026-08-02T12:05:00.000Z"}]
A query field that doesn't apply to that search, query_phone on a name search, or query_full_name/query_city/query_state on a reverse phone lookup, is dropped rather than sent as null, the same as age or current_location when the source card doesn't carry one. possible_relatives and previous_locations are still sent as an empty array rather than dropped when the source page genuinely lists none, as on the David Chen row above.
| Field | Description |
|---|---|
π query_full_name / query_city / query_state / query_phone | The search you submitted, echoed back on every row it produced |
π source | Which site this record came from: truepeoplesearch or fastpeoplesearch |
π full_name | Matched person's full name as shown on the source's card |
π age | Age, when the source publishes one |
π current_location | Current city and state on the source's card |
πΊοΈ previous_locations | Prior cities parsed from the source's "used to live in" text |
βοΈ phone_numbers | Phone numbers shown on the card |
πͺ possible_relatives | Names parsed from the source's "related to" text |
π profile_url | Link to the source's own detail page for this record |
β
resolved | Always true on a delivered row; present for schema consistency |
π scraped_at | ISO 8601 timestamp |
A search that returns zero matches on a source produces no row for that source. Every run also ends with a final _type: "summary" record with counts. It is informational only and never billed.
What are the limitations?
Worth knowing before you buy, so there are no surprises:
- There is no match-confidence score. A common name returns whatever cards the source site's own search matched, with no scoring or ranking of which candidate is actually your subject.
age,current_location, andpossible_relativesare what you use to confirm identity yourself; treat every row as a candidate, not a confirmed match, especially for a common name searched without a city. previous_locationsandpossible_relativesare best-effort text parsing, not exhaustive. They're extracted with pattern matching against each source's own free-text summary blocks. An unusually formatted relative name (a suffix like Jr or a hyphenated surname, for instance) can be missed even when the source page shows it.- Coverage is limited to what these two directories have indexed. A person genuinely absent from both TruePeopleSearch's and FastPeopleSearch's own databases returns zero matches, even if they are findable elsewhere.
- A blocked lookup returns nothing for that search, not a partial result. Both sites occasionally serve a bot-detection challenge. The actor retries with a fresh session up to three times; if every attempt is still blocked, that one search simply returns no rows rather than an unreliable partial one, and it is never charged.
- No email addresses. Neither source site publishes email on its public results page, so this actor never returns one. Phone numbers and location history are what's available.
- Common names cost more per real match.
maxResultsPerSearchbounds it, but a name like "John Smith" searched with no city will return more distinct chargeable candidates than a rare name searched with a city and state.
What can you use it for?
Debt-collection and process-server outreach. Locate a current address or phone for a subject whose last-known contact information is stale.
Reconnecting with lost contacts. Find a childhood friend, classmate, or relative you've lost touch with, using a name and a last-known city.
Recruiting outreach. Get a current phone number for a named candidate you already intend to contact, when your ATS record is stale.
Investigative and journalistic research. Corroborate a subject's location history from public directory data.
Lead enrichment. Append current city or phone to an existing named contact list before an outreach campaign, in a use case that doesn't fall under FCRA.
How do I get started?
- Add one or more searches, each with either a
fullName(optionallycityandstate) or aphone. - Leave
sourceson both, unless you specifically want just one directory. - Set
maxResultsPerSearchto bound cost on a common name. - Click Start, then download the dataset as JSON, CSV, or Excel, or pull it via API or MCP.
Can I run it on a schedule?
Yes, useful as a standing re-check when a subject's last-known contact details go stale, for example a recruiting outreach or reconnection use case.
- Run it once with the input you want repeated, then click Save as a task at the top of the run form. This keeps your exact input attached for every future run.
- In the Apify Console, go to Schedules in the left sidebar, then Create new. Monthly is usually enough; people do not move that often.
- Diff each run's results against the last to catch an address or phone change.
Nothing is charged for the schedule existing, only for matched records delivered.
Is a skip trace lookup legal?
This actor reads only TruePeopleSearch's and FastPeopleSearch's own public results pages, the same pages anyone can load without an account, a login, or a payment. It does not use cookies, does not create an account on either site, and does not access anything behind a paywall.
That said, this is general information, not legal advice, and the data this actor returns is personal data: names, ages, locations, phone numbers, and family connections. As set out above, this actor is not built for, and must not be used for, any FCRA-covered decision. Beyond FCRA, you are responsible for complying with the GLBA, applicable state data-broker and privacy laws, and, if you operate internationally, the GDPR or similar regimes, for whatever lawful purpose you're using this data for. When in doubt about whether your use case is covered, consult your own counsel rather than relying on this notice.
FAQ
Does this require a TruePeopleSearch or FastPeopleSearch account? No. Neither site requires an account for its public results page, and this actor never creates or simulates one.
Why isn't Spokeo, BeenVerified, TruthFinder, or PeopleFinders included? See "Sources" above: each of those four gates real contact data behind a paid subscription on their own public pages. We only ship sources that return real, usable data without payment.
Can I use this for a background check or tenant screening? No. See the disclaimer near the top of this README: this is not an FCRA consumer report, and using it for that purpose is against its intended use and likely against the law depending on your jurisdiction.
Why did a search return zero results? Either the person genuinely isn't in that source's index for the name or location given, or the request hit a bot-detection page and was retried automatically on a fresh session; a source-level block after retries is logged but never charged.
Is there a confidence score for how sure a match is? No. Every returned row is a candidate card from the source site's own search, not a scored or ranked match. See "What are the limitations?" above.
Can I use it inside an AI agent? Yes. It is exposed as an MCP tool. See below.
Can I use Skip Trace Lookup through an MCP server? Yes. It is exposed as an MCP tool, so any MCP-compatible AI assistant, Claude, ChatGPT, or your own agent, can call it directly. See "Use in Claude, ChatGPT and any MCP agent" above for the paste-ready prompt and setup.
Use in Claude, ChatGPT and any MCP agent
Add it to Claude Code in one line:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=themineworks/skip-trace-lookup"
Or point any MCP client at:
https://mcp.apify.com/?tools=themineworks/skip-trace-lookup
Things an agent can ask for once connected:
- "Look up John Smith in New York, NY and return his current location, phone numbers, and possible relatives."
- "Run a reverse phone lookup on 212-555-0100."
- "Check these five names against TruePeopleSearch and FastPeopleSearch and return only the ones with a current phone number."
Copy this into your AI assistant
Paste the line below into ChatGPT, Claude, or any assistant connected to Apify's MCP, and it will run the job for you:
Use the Apify actor themineworks/skip-trace-lookup to look up John Smith in New York, NY across TruePeopleSearch and FastPeopleSearch, capped at 5 results per source. Return the results as a table.
Or call it directly with the apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/skip-trace-lookup').call({searches: [{ fullName: 'John Smith', city: 'New York', state: 'NY' }],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
π οΈ Part of the outbound prospecting toolkit
This chains with the rest of the suite: resolve a company name to its domain, the domain to its LinkedIn page, find a verified work email, and check the tech stack behind their site. One chain instead of several separate tools.
Found a bug or have a feature request? Open an issue on the actor's Apify Console page.