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

54

Total users

10

Monthly active users

4 days ago

Last modified

Categories

Features

Limited permissions

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 an uncharged no_result or unsupported_page 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 run that saves a result or a confirmed no-match. A run that fails with nothing saved pays nothing.
  • 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 and unsupported_page diagnostics are not charged as extracted items and do not count toward maxItems.
  • Up to 30 lookups with no charged result are included per run, plus one more for every 8 charged results. Past that the run stops, keeps what it saved, and says so in its status; run the remaining queries separately.
  • 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 charged rows. Queries are searched in order until then, so later queries may not run. no_result and unsupported_page rows do not count.

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 and does not count toward maxItems, so the next query still runs. The status message counts these rows separately.

The Actor uses Apify Proxy automatically, with a new session after each block or network error, up to five attempts per page. You do not need to configure a proxy.

A page the Actor cannot read gets an uncharged unsupported_page row with its sourceUrl, the run carries on with the next URL or query, and the status message counts these pages. Three such pages in a row stop the run, because AnyWho has probably changed its pages. A run with only these rows fails and is not charged.

If AnyWho blocks every attempt, the Actor does not substitute a generic success row. Rows already saved stay, and the status message gives the count and the cause; a run that saved nothing fails. If a name has no matches, try without a location or use a broader state. Open the sourceUrl manually to compare the public page.

Diagnostics and privacy

Failed operations send sanitized diagnostic input, exceptions and Actor, build and run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed, and reports are retained for 30 days.

Changelog

2026-11-06

  • Restored runs that AnyWho's bot check was stopping: requests now use browser-like headers through Apify Proxy, with bounded retries.
  • Saved rows are kept when a later page fails, and failed runs with nothing delivered no longer pay the start event.
  • no_result rows no longer use up maxItems, and the status message counts them. Batches fetch up to five first pages at once. A run stops after 30 lookups with no charged result, plus one for every 8 charged results.
  • Direct profiles with no age in their heading now return the person, and one page the Actor cannot read no longer stops a batch: it gets an uncharged unsupported_page row.
  • Large area-code runs no longer save duplicate rows, and are faster: area-code pages are fetched one at a time and parsed with far less memory.

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.