AnyWho People Search Scraper
Pricing
from $0.10 / 1,000 item extracteds
AnyWho People Search Scraper
Scrape public AnyWho people-search, reverse-phone, area-code, and directory results for privacy ops and lead enrichment.
Pricing
from $0.10 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
45
Total users
8
Monthly active users
a month ago
Last modified
Categories
Share
Scrape public AnyWho people-search, reverse-phone, area-code, and last-name directory pages.
Use this actor to collect structured public directory signals such as names, ages, masked phone snippets, locations, relatives, profile URLs, area codes, and phone prefixes.
Compliance note: this actor is not a consumer-reporting agency tool. Do not use it for employment, tenant screening, credit, insurance, or any FCRA-covered decision.
What does AnyWho People Search Scraper do?
AnyWho People Search Scraper turns public AnyWho pages into clean dataset rows.
It supports several workflows:
- 🔎 Name search pages such as
John Smith - 📞 Reverse phone pages such as
(310) 555-1212 - 🌎 Area-code pages such as
310 - 🔤 Last-name directory pages such as
S - 🔗 Direct AnyWho start URLs
The actor fetches AnyWho over HTTP and parses the current server-rendered result and profile structures. It follows only pagination links that AnyWho publishes.
Who is it for?
This actor is useful for teams that need repeatable public-directory collection.
- 🛡️ Privacy operations teams checking public personal-data exposure
- 🧭 Executive protection analysts reviewing visible contact traces
- 📇 Lead enrichment teams adding public directory context
- 🧹 Data hygiene teams validating names, locations, and area-code signals
- 🔍 Researchers monitoring public white-pages style results
Why use this actor?
AnyWho pages are human-readable but hard to use in a pipeline.
This actor gives you:
- Structured rows instead of HTML
- Consistent field names
- Dataset exports in JSON, CSV, Excel, XML, and RSS
- API access through Apify
- Per-result pricing
- Small default runs for cheap testing
Data you can extract
| Field | Description |
|---|---|
resultType | person, phone, area_code, directory_suggestion, or uncharged no_result diagnostic |
searchType | Input mode used for this result |
query | Original query |
name | Person or directory suggestion name |
age | Age shown on AnyWho, when available |
currentLocation | Current location snippet |
previousLocations | Previous-location snippets |
maskedPhones | Masked phone snippets shown by AnyWho |
relatives | Public relative snippets |
profileUrl | AnyWho profile or directory URL |
phoneNumber | Reverse-phone page number |
areaCode | Area code parsed from phone or area-code pages |
phonePrefix | Prefix listed on area-code pages |
sourceUrl | Page that produced the record |
scrapedAt | ISO timestamp |
How much does it cost to scrape AnyWho people search results?
The actor uses pay-per-event pricing.
- A $0.005 start event is charged once per valid run.
- A result event is charged only for a useful extracted
person,phone,area_code, ordirectory_suggestionrecord. - The result event ranges from $0.00012 on the Free tier to $0.00010 on the Diamond tier.
no_resultdiagnostics are not charged as extracted items.- Keep
maxItemslow while testing and increasemaxPagesonly when you need deeper pagination.
Input options
searchType
Choose one of:
namereversePhoneareaCodedirectoryLetterurl
queries
The meaning depends on searchType.
Examples:
John Smith(310) 555-1212310Shttps://www.anywho.com/people/john+smith
location
Optional for name searches.
Examples:
CaliforniaCalifornia, Los Angeles
startUrls
Use supported direct AnyWho result, person-profile, directory, phone, or area-code URLs if you already have them. You can run with startUrls only; queries is not required. For safety and truthful parsing, off-domain URLs and unsupported AnyWho paths are rejected.
Example start-URL-only input:
{"startUrls": [{ "url": "https://www.anywho.com/people/john+smith/california/lancaster/a892015559932793574781546124243713" }],"maxItems": 1}
maxItems
Stops the run after this many rows.
maxPages
Sets the maximum pagination depth per query. The Actor follows AnyWho's observed Next Page link and does not construct guessed page paths.
Example input: name search
{"searchType": "name","queries": ["John Smith"],"location": "California","maxItems": 25,"maxPages": 1}
Example input: reverse phone lookup
{"searchType": "reversePhone","queries": ["(310) 555-1212"],"maxItems": 5}
Example input: area-code research
{"searchType": "areaCode","queries": ["310"],"maxItems": 50}
Example input: directory suggestions
{"searchType": "directoryLetter","queries": ["S"],"includeDirectorySuggestions": true,"maxItems": 100}
Example output
{"resultType": "person","searchType": "name","query": "John Smith","name": "John T Smith","age": 100,"currentLocation": "Reed St, Fort Wayne, IN","maskedPhones": ["(260) 744-", "(260) 745-"],"relatives": ["Harold Smith", "Ella Smithclark"],"profileUrl": "https://www.anywho.com/people/john+smith/indiana/fort+wayne/a758114512127","sourceUrl": "https://www.anywho.com/people/john+smith","scrapedAt": "2026-06-20T17:30:00.000Z"}
How to run
- Open the actor on Apify.
- Choose a search type.
- Enter one or more queries.
- Keep
maxItemslow for the first run. - Click Start.
- Download the dataset.
Tips for better results
- Use full names when possible.
- Add a state for common names.
- Use direct AnyWho URLs for repeatable monitoring.
- Use area-code mode when you need prefix lists.
- Do not set high pagination until the first page looks correct.
Integrations
You can connect this actor to:
- Google Sheets via Apify integrations
- Zapier or Make for enrichment workflows
- CRM import jobs
- Privacy ticket queues
- Executive protection dashboards
- Internal lead-scoring pipelines
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/anywho-people-search-scraper').call({searchType: 'name',queries: ['John Smith'],location: 'California',maxItems: 25});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/anywho-people-search-scraper').call(run_input={'searchType': 'areaCode','queries': ['310'],'maxItems': 50,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~anywho-people-search-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"searchType":"reversePhone","queries":["(310) 555-1212"],"maxItems":5}'
MCP usage
Use this actor through Apify MCP from Claude Code, Claude Desktop, Cursor, or VS Code.
MCP server URL:
https://mcp.apify.com/?tools=automation-lab/anywho-people-search-scraper
Claude Code setup:
$claude mcp add --transport http apify-anywho "https://mcp.apify.com/?tools=automation-lab/anywho-people-search-scraper"
Claude Desktop, Cursor, and VS Code setup: add the following MCP server JSON in the client's MCP settings.
{"mcpServers": {"apify-anywho": {"url": "https://mcp.apify.com/?tools=automation-lab/anywho-people-search-scraper"}}}
Example prompts:
- "Run AnyWho People Search Scraper for John Smith in California and summarize the public directory matches."
- "Check this phone number with the AnyWho reverse-phone actor and return the dataset rows."
- "Collect prefixes for area code 310 and export them as CSV."
Data handling, dependencies, and affiliation
The Actor uses deterministic HTTP parsing and does not call an AI model or send data to an AI provider. It sends each requested search or URL to AnyWho, writes supported public fields to the run dataset, and keeps no external cache. Apify storage and log retention follow your account settings; you can delete runs and their storage in Apify Console.
AnyWho is a third-party public website. This Actor is not affiliated with, endorsed by, or sponsored by AnyWho. Availability and displayed fields can change when that website changes.
Legality
AnyWho displays public directory information and its own legal notices.
Legal and FCRA notice
AnyWho displays public directory information and its own legal notices.
You are responsible for how you use the data.
Do not use this actor for:
- Employment eligibility
- Tenant screening
- Credit decisions
- Insurance decisions
- FCRA-covered consumer reporting
- Harassment, stalking, or doxxing
Use it only for lawful public-information workflows.
Privacy operations workflow
A common workflow is:
- Load a list of executives or protected persons.
- Run name searches with state filters.
- Export public exposure rows.
- Review profile URLs manually.
- Create opt-out/remediation tickets where appropriate.
- Repeat on a schedule.
Lead enrichment workflow
A lead enrichment workflow can:
- Search full names.
- Capture approximate location and masked phone signals.
- Combine with first-party CRM data.
- Route uncertain matches to manual review.
- Avoid automated sensitive decisions.
Area-code workflow
Area-code mode is useful when you need:
- Prefix lists
- Area-code page metadata
- Phone-region context
- Repeatable telecom enrichment inputs
FAQ
Can I use this for employment or tenant screening?
No. Do not use this actor for FCRA-covered decisions such as employment, tenant screening, credit, or insurance.
Does it reveal full phone numbers?
The actor exports what AnyWho publicly shows on the page. Some people-search rows contain masked phone snippets rather than full numbers.
Result integrity and limitations
- Name-result and direct profile pages return a
persononly when supported person structure is present. - Reverse-phone mode returns a
phoneonly when the fetched page explicitly confirms public owner records; a title or input number alone is not treated as a match. - Area-code mode returns source-supported prefix rows or area-page metadata.
- Directory mode returns unique links published on the requested directory page.
- Duplicate canonical request URLs and duplicate records are emitted and charged only once.
- AnyWho may mask phone digits and collapse additional addresses or relatives behind paid links. The Actor exports only what the public response supports.
Troubleshooting: no results or site changes
A genuine no-match response produces a distinct no_result row with a diagnostic message. That row is not charged as an extracted item.
If AnyWho returns a challenge, blocked response, HTTP error, known-result page without supported records, or changed markup, the run fails clearly instead of substituting a generic success row. If a name has no matches, try without a location or use a broader state. Open the sourceUrl manually to compare the public page.
Related scrapers
- Website Contact Finder: https://apify.com/automation-lab/website-contact-finder
- Website Emails Scraper: https://apify.com/automation-lab/website-emails-scraper
Changelog
2026-09-21
- Restored person extraction for AnyWho’s current result and profile pages.
- Added validated, deduplicated inputs, start-URL-only runs, source-backed pagination, and truthful reverse-phone/no-result behavior.
- Result charges now apply only to useful extracted records; site changes and challenges fail clearly instead of producing generic summary rows.
See the Actor changelog for complete release details.
Support
If results look wrong, include:
- Input JSON
- Run URL
- Expected AnyWho page URL
- A short description of the missing field
Responsible use
Respect AnyWho's terms, robots signals, and applicable laws.
Run only the searches you are authorized to perform.
Avoid collecting more data than your workflow requires.
Use small test runs before scaling.