# 2s Cross-Registry Person Lookup

> 2s Cross-Registry Person Lookup is a paid API for AI agents from 2s.io, paid per call via x402, $0.0072/call, status unknown (last checked 2026-09-14, last successful call 2026-07-13).

Searches multiple public registries (FINRA BrokerCheck, federal inmates, attorneys, Texas trades, Texas real estate) for a person by name and returns all name-matched candidates across those registries.

## Facts

- Endpoint: GET https://2s.io/api/person/cross-registry
- Price: $0.0072/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Last successful call: 2026-07-13
- Success rate: 50% of calls made through Zero
- Activations on Zero: 2
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-cross-registry-person-lookup-5ea0a262
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_l4qGtoX3P-TdbKhw5HMEI

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-cross-registry-person-lookup-5ea0a262
```

Example prompt: Can you search across FINRA BrokerCheck, federal inmate records, attorney databases, and Texas licensing registries for someone named 'Michael Johnson' — show me up to 5 matches per registry?

## When to prefer this

Use this endpoint when you need to quickly cross-check a person's name against multiple U.S. public regulatory and government registries in a single call, especially for financial advisor due diligence (FINRA BrokerCheck), legal background checks (attorneys, federal inmates), or Texas professional licensing. Prefer this over calling each registry's API individually when you want a unified response without managing multiple integrations.

## Known failure modes

- Name not found in any registry — all registries return found:false and empty matches arrays
- Registry-specific error — one or more registries return a non-null error field while others succeed
- Ambiguous or common name returns up to the limit per registry with no further disambiguation
- Rate limit or payment failure — HTTP 402 returned if payment not provided
- Invalid or missing 'name' parameter — request rejected at schema validation

## How this service works

Sweep a person's name across five US public registries in one call: FINRA securities brokers, federal-court attorneys (CourtListener), federal inmates (BOP), Texas trade licenses (TDLR), and Texas real-estate licenses (TREC). Returns one block per registry with found/error status, match count, and the matching records — name-matched CANDIDATES, deliberately not merged into one identity (same name does not mean same person; verify with each registry's identifier before acting). Due-diligence, KYC screening triage, and background-research staple. Each registry is also a standalone endpoint (/api/license/broker, /api/law/attorney-lookup, /api/gov/inmate-locator, /api/license/trades, /api/license/real-estate) for follow-up by identifier.

## Output

A JSON object containing name-matched candidates from each supported registry (brokers, inmates, attorneys, Texas licensed tradespeople, Texas real estate agents), including registry-specific identifiers like CRD numbers and license numbers, plus a note reminding the caller that matches are NOT identity-resolved across registries.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "name": "John Smith",
   "limit": 5
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "required": [
      "name"
     ],
     "properties": {
      "name": {
       "type": "string",
       "description": "Person full name, e.g. \"John Smith\". Partial matching per registry."
      },
      "limit": {
       "type": "integer",
       "default": 5,
       "maximum": 10,
       "minimum": 1,
       "description": "Max matches per registry."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-cross-registry-person-lookup-5ea0a262/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
