Contact data · United States · Access on request

True People
Search API

Resolve a name, phone number or address into a structured US contact record — current and prior addresses, phone numbers, emails and known relatives — as normalized JSON across two endpoints: search and detail. Batch up to 30 lookups per request.

US coverage Name, phone & address lookups Up to 30 per request
3 lookup types · 30 queries per request · normalized JSON · US coverage · billed per lookup
What you get

A complete contact record,
from a single lookup.

Use /people-search to find matching records, then /people-detail to pull the deep details. The API returns the matching public records as clean JSON — no scraping, parsing or HTML to maintain. This is a contact-data service offered separately from Refetcher's social media scrapers.

US

Identity & location

Match a person and get their name, approximate age, current city and state, plus a history of current and prior addresses associated with the record.

nameagecurrent city/stateaddress history
US

Phones, emails & relatives

Each match includes known phone numbers, email addresses, and associated relatives — plus a provider detail URL for the underlying record.

phone numbersemailsrelativesdetail URL
The request

Simple to call.
Deep contact data.

Authenticate with one header and POST your search to /people-search. Grab the detailUrl from the best match, and pass it to /people-detail to extract the full contact record.

POST /people-search
# Resolve a person by name + state
curl -s https://api.refetcher.com/people-search \
  -H "X-API-Key: pc_live_••••" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      { "id": "lead-91", "name": "Jordan Avery", "city": "Plano", "state": "TX" }
    ]
  }'

// → 200 OK
{
  "success": true,
  "results": [
    {
      "query": { "id": "lead-91", "name": "Jordan Avery", "city": "Plano", "state": "TX" },
      "matchCount": 1,
      "matches": [
        {
          "name": "Jordan M Avery",
          "age": 38,
          "currentCity": "Plano",
          "currentState": "TX",
          "summary": "Jordan M Avery is 38 years old and currently lives in Plano, TX...",
          "detailUrl": "https://www.truepeoplesearch.com/find/person/…"
        }
      ]
    }
  ]
}
POST /people-detail
# Extract the deep contact record using the detailUrl
curl -s https://api.refetcher.com/people-detail \
  -H "X-API-Key: pc_live_••••" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      { "detailUrl": "https://www.truepeoplesearch.com/find/person/…" }
    ]
  }'

// → 200 OK
{
  "success": true,
  "results": [
    {
      "query": { "detailUrl": "https://www.truepeoplesearch.com/find/person/…" },
      "matchCount": 1,
      "matches": [
        {
          "name": "Jordan M Avery",
          "age": 38,
          "currentCity": "Plano",
          "currentState": "TX",
          "locations": ["4120 Maple Ave, Plano, TX 75074", "88 Birch Ln, Frisco, TX 75035"],
          "phoneNumbers": ["(972) 555-0148", "(214) 555-0102"],
          "emails": ["j.avery@example.com"],
          "relatives": ["Morgan Avery", "Taylor Avery"],
          "detailUrl": "https://www.truepeoplesearch.com/find/person/…"
        }
      ]
    }
  ]
}

Search by name, phone or address · Batch up to 30 queries · Response field reference ↓

Request

Query parameters.

The request body is a JSON object with a queries array (1–30 items). Each query must include at least one of name, phone or address. A bare name string ("queries": ["Jordan Avery"]) is also accepted.

ParameterTypeDescription
Request body
queries requiredobject[] · string[]1–30 person queries. Each item is a query object (below) or a plain name string.
maxResultsPerQuerynumberCap on matches returned per query. Default and maximum 10.
timeoutMsnumberPer-request worker timeout. Default and maximum 150000.
/people-search query — provide at least one of name, phone or address
namestringFull name to search. Accepts fullName as an alias.
firstName / lastNamestringUsed to build the search name when name is not supplied.
phonestringReverse-phone lookup. Any format; normalized to a 10-digit US number (a leading 1 is stripped).
addressstringReverse-address lookup. Free-form street address.
citystringNarrows a name search to a city.
statestringTwo-letter US state code, e.g. TX. Case-insensitive on input.
agenumberApproximate age (1–124) to disambiguate common names.
idstringYour own correlation id. Echoed back on query.id; defaults to q_1, q_2, … when omitted.
/people-detail query
detailUrl requiredstringThe provider URL returned from a /people-search match. Required for /people-detail.
Response

Predictable responses,
field by field.

The top-level success is true only when every query in the batch succeeded — always inspect each result's own success flag. Fields a record does not expose are omitted rather than returned empty.

FieldTypeDescription
Top level
successbooleantrue only if no query failed. Use per-result flags for partial batches.
requestIdstringIdentifier for the request, useful when contacting support.
summary.totalnumberNumber of queries in the batch.
summary.succeedednumberQueries that returned results.
summary.failednumberQueries that failed.
resultsobject[]One result per query, in request order.
totalMsnumberTotal server processing time in milliseconds.
results[] — per query
successbooleanWhether this individual query resolved.
platformstringAlways people_search.
typestringAlways person_search.
providerstringSource of the record, e.g. truepeoplesearch.
queryobjectThe normalized query that was executed, including your id.
matchCountnumberNumber of matches returned for this query.
matchesobject[]The matched person records (see below).
searchedAtISO 8601When the lookup ran.
workerMsnumber · nullWorker processing time for this query.
error.categorystringFailure category when success is false (see error reference).
error.messagestringHuman-readable failure reason.
matches[] — search fields (/people-search)
namestringFull name on the record.
agenumber · nullApproximate age when available.
currentCitystringMost recent known city.
currentStatestringMost recent known state.
summarystringShort text summary of the match.
detailUrlstringPass this URL to the /people-detail endpoint.
matches[] — detail fields (/people-detail)
namestringFull name on the record.
agenumber · nullApproximate age when available.
currentCitystringMost recent known city.
currentStatestringMost recent known state.
locationsstring[]Current and prior addresses (up to 8).
phoneNumbersstring[]Associated phone numbers (up to 8).
emailsstring[]Associated email addresses (up to 8).
relativesstring[]Known relatives and associates (up to 12).
detailUrlstringProvider URL for the full underlying record.
Errors

Predictable failures.

A failed query never breaks the batch — it returns with success: false and an error.category. Transient categories are retried internally against a backup region before being returned. If every query fails the response status is 502.

Query error categoryMeaning
bad_queryThe query was invalid or unsearchable.
timeoutThe lookup exceeded the worker timeout.
rate_limitedThe upstream provider throttled the request.
blocked_or_challengeThe provider returned a challenge/CAPTCHA.
challenge_timeoutA provider challenge did not clear in time.
navigation_timeoutThe provider page did not start loading in time.
parse_errorThe provider returned an unreadable result page.
network_errorA transport error reaching the worker.
upstream_errorTemporary provider-side failure.
worker_errorThe lookup worker failed before returning a result.
unknown_errorThe lookup failed for an unclassified reason.
HTTP statusMeaning
200At least one query in the batch succeeded.
400Malformed body or no valid queries.
401Missing or invalid API key.
402Insufficient account balance for the request.
405Method not allowed — use POST.
502Every query in the batch failed.
503Authentication or billing temporarily unavailable.
Use cases

Built for teams that need
to reach the right person.

Skip tracing & collections

Resolve stale contact details into current phone numbers and addresses for legitimate outreach, paired with relatives and address history.

reverse phoneaddress historyrelatives

Identity & record matching

Confirm a name maps to a real, consistent record before you act — disambiguate common names with city, state and age signals.

verificationdeduplicationmatch scoring

CRM & lead enrichment

Batch up to 30 records per request to append phones, emails and locations to your pipeline through one normalized endpoint.

batch enrichmentdata appendpipelines

Permissible use

Refetcher is not a consumer reporting agency and the True People Search API does not provide consumer reports. You may not use this data, in whole or in part, to make decisions about credit, employment, insurance, housing, tenant screening, or any other purpose regulated by the Fair Credit Reporting Act (FCRA) or equivalent laws. You are responsible for using the data lawfully and for honoring opt-out and privacy requests. Access is granted only for permissible business purposes.

Need access?tell us your use case & volume — we'll tailor pricing
  • Enabled for vetted businesses with a permissible use
  • Volume pricing, billed per lookup
  • Same key system as the rest of the Refetcher API
Straight answers

People search, in plain English.

What does the True People Search API return? +

It has two endpoints. /people-search returns an array of matches with the person's name, age, city, and a short summary. /people-detail takes a match's detailUrl and returns the deep record: current and prior addresses, phone numbers, emails, and known relatives. Coverage is the United States.

Can I search by phone number or address instead of a name? +

Yes. Each query accepts a name, a phone, or an address — reverse-phone and reverse-address lookups are supported. Provide at least one of the three per query; city, state and age help disambiguate common names.

How many lookups can I send at once? +

Up to 30 person queries per POST. Each query is processed independently, returned in request order, and billed as one lookup.

How is this different from your social media scrapers? +

It is a separate, contact-data service. Our core business is the real-time social media scraper API; the True People Search API is offered on request to vetted businesses and is not bundled into the self-serve scraper plans.

How do I get access? +

Contact the Refetcher team with your use case and expected volume. Once approved, the endpoint uses the same API key system as the rest of Refetcher.

Is this data a consumer report under the FCRA? +

No. Refetcher is not a consumer reporting agency and this data is not a consumer report. It may not be used for credit, employment, insurance, housing, tenant screening, or any other FCRA-regulated decision. See the permissible-use note above.