Radaris People Search (SkipTrace Lookup) avatar

Radaris People Search (SkipTrace Lookup)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Radaris People Search (SkipTrace Lookup)

Radaris People Search (SkipTrace Lookup)

Look up US people by name and return matching profiles with addresses, relatives, alternate names, and geo coordinates. Powered by radaris.com (public Person JSON-LD). HTTP-only via Apify RESIDENTIAL US proxy; name-based search only.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(10)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

11

Bookmarked

8

Total users

4

Monthly active users

10 days ago

Last modified

Share

SkipTrace People Lookup

Look up people by name (optionally narrowed by city/state) against radaris.com and export matching public profile records — known addresses, relatives, alternate name spellings, and geo-coordinates — as a structured Apify dataset.

Powered by radaris.com. The scraper returns public name-based people records with addresses and relatives. Phone / email reverse lookup is not supported — radaris indexes people by name only.

The scraper is lightweight, HTTP-only (curl_cffi + BeautifulSoup), and does not require cookies, login, or a browser runtime. Pair it with Apify's built-in schedules to run recurring skip-trace enrichments against your own lead lists.

Input

FieldTypeRequiredDescription
fullNamestringyesFull name to look up, e.g. John Smith.
citystringnoCity to narrow the search, e.g. Dallas.
statestringnoUS state abbreviation, e.g. CA, TX, NY.
phonestringnoAccepted for compatibility but unused — radaris does not support phone reverse-lookup.
emailstringnoAccepted for compatibility but unused — radaris does not support email reverse-lookup.
maxItemsintegernoMax person records to return (default 3, max 500).

fullName is required. If it is blank — even when a phone or email is provided — the actor emits an invalid_input sentinel row instead of failing the run.

Example input

{
"fullName": "John Smith",
"state": "CA",
"maxItems": 3
}

Output

Each matched person is pushed as a single row with the following fields. Only populated fields are included — no null values.

FieldTypeDescription
typestringAlways skip_trace_person for person rows.
idstringStable radaris identifier (e.g. John-Smith).
urlstringCanonical radaris.com profile URL.
fullNamestringMatched person's full name.
firstNamestringGiven name.
lastNamestringFamily name.
ageintegerAge if radaris exposes it.
addressesobject[]Known locations ({street, city, state, zip, country}).
relativesobject[]Family members and known associates ({name, relation?, url?}).
alternateNamesstring[]Alternate name spellings / known aliases.
latitudenumberGeo-coordinate latitude of the primary home location.
longitudenumberGeo-coordinate longitude of the primary home location.
scrapedAtstringISO-8601 UTC timestamp of scrape.

Example output

{
"type": "skip_trace_person",
"id": "John-Smith",
"url": "https://radaris.com/p/John/Smith/",
"fullName": "John Smith",
"firstName": "John",
"lastName": "Smith",
"addresses": [
{"city": "Bossier City", "state": "LA", "country": "USA"}
],
"alternateNames": ["John R Smith", "Jonathan Smith"],
"relatives": [
{"name": "Tracy L Smith"},
{"name": "Monica M Smith"}
],
"latitude": 32.5159852,
"longitude": -93.7321228,
"scrapedAt": "2026-04-20T12:34:56Z"
}

How It Works

  1. Reads the input and splits fullName into first + last name.
  2. Fetches https://radaris.com/p/<First>/<Last>/ (optionally narrowed by ?ql=<state>&city=<city>) with a chrome131 TLS fingerprint.
  3. Parses every <script type="application/ld+json"> block on the page and collects every @type: Person entry.
  4. Maps each Person to the output schema above and pushes up to maxItems clean rows (no nulls) into the run dataset.

Error Records

The actor never throws; every failure mode is recorded as a sentinel row on the dataset so downstream tooling can decide how to react.

reasonWhen it is emitted
invalid_inputfullName was missing, or only phone/email was supplied (radaris doesn't support reverse-lookup).
upstream_errorradaris.com returned a non-200 response or the HTTP request failed.
empty_resultThe page loaded but contained no Person LD+JSON records.

Sentinel shape:

{
"type": "skip_trace_blocked",
"reason": "upstream_error",
"message": "radaris.com request failed (status=503, ...).",
"url": "https://radaris.com/p/John/Smith/?ql=CA",
"scrapedAt": "2026-04-20T12:34:56Z"
}

FAQ

Does this scraper require cookies or login? No. It performs a plain HTTP GET against radaris.com's public profile pages.

Do I need a proxy? No. The actor runs fine from Apify's default datacenter IPs — radaris does not block datacenter ranges.

Can I look up phone numbers or email addresses? No. radaris.com indexes people by name only. Supplying phone or email without a fullName returns an invalid_input sentinel.

Why do I sometimes get only one result for a common name? radaris aggregates all profiles with the same first + last name on a single /p/<First>/<Last>/ page. Use state / city to disambiguate when multiple people share a name.

What is maxItems for? It caps the number of person rows written to the dataset. The default is 3, which is a good fit for lead-enrichment workflows where you only want the top match(es).