AnyWho People Search Scraper avatar

AnyWho People Search Scraper

Pricing

from $0.10 / 1,000 item extracteds

Go to Apify Store
AnyWho People Search Scraper

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

Automation Lab

Maintained by Community

Actor 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

FieldDescription
resultTypeperson, phone, area_code, directory_suggestion, or uncharged no_result diagnostic
searchTypeInput mode used for this result
queryOriginal query
namePerson or directory suggestion name
ageAge shown on AnyWho, when available
currentLocationCurrent location snippet
previousLocationsPrevious-location snippets
maskedPhonesMasked phone snippets shown by AnyWho
relativesPublic relative snippets
profileUrlAnyWho profile or directory URL
phoneNumberReverse-phone page number
areaCodeArea code parsed from phone or area-code pages
phonePrefixPrefix listed on area-code pages
sourceUrlPage that produced the record
scrapedAtISO 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, or directory_suggestion record.
  • The result event ranges from $0.00012 on the Free tier to $0.00010 on the Diamond tier.
  • no_result diagnostics are not charged as extracted items.
  • Keep maxItems low while testing and increase maxPages only when you need deeper pagination.

Input options

searchType

Choose one of:

  • name
  • reversePhone
  • areaCode
  • directoryLetter
  • url

queries

The meaning depends on searchType.

Examples:

  • John Smith
  • (310) 555-1212
  • 310
  • S
  • https://www.anywho.com/people/john+smith

location

Optional for name searches.

Examples:

  • California
  • California, 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.

{
"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

  1. Open the actor on Apify.
  2. Choose a search type.
  3. Enter one or more queries.
  4. Keep maxItems low for the first run.
  5. Click Start.
  6. 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 ApifyClient
import os
client = 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.

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:

  1. Load a list of executives or protected persons.
  2. Run name searches with state filters.
  3. Export public exposure rows.
  4. Review profile URLs manually.
  5. Create opt-out/remediation tickets where appropriate.
  6. Repeat on a schedule.

Lead enrichment workflow

A lead enrichment workflow can:

  1. Search full names.
  2. Capture approximate location and masked phone signals.
  3. Combine with first-party CRM data.
  4. Route uncertain matches to manual review.
  5. 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 person only when supported person structure is present.
  • Reverse-phone mode returns a phone only 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.

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.