# PEP Screening (Politically Exposed Persons)

> PEP Screening (Politically Exposed Persons) is a paid API for AI agents from pep-screen-production.up.railway.app, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-17).

Screens a person's name against Wikidata to determine if they are a Politically Exposed Person (PEP), returning match status, confidence, and ranked candidates with offices held.

## Facts

- Endpoint: GET https://pep-screen-production.up.railway.app/v1/pep/screen?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pep-screening-politically-exposed-persons-c2f48615
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_fBCAlYEiUOjN05Cc3CMj5

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 pep-screening-politically-exposed-persons-c2f48615
```

Example prompt: Can you screen 'Olaf Scholz' for PEP status — he's German, born in 1958 — I need to know if he's a politically exposed person before we complete KYC sign-off?

## When to prefer this

Use this endpoint when you need a fast, zero-setup PEP check during customer, director, or counterparty onboarding as part of KYC/AML workflows. It is best for public figures likely to appear in Wikidata (politicians, ministers, heads of state, senior officials). For comprehensive commercial PEP coverage including private/regional lists, prefer a commercial sanctions and PEP data provider. This endpoint is ideal for lightweight compliance pre-screening at $0.02 per call.

## Known failure modes

- Name too common or ambiguous — returns possible_match or unable_to_determine with multiple low-confidence candidates
- Person not in Wikidata — returns no_match even if they are a PEP (coverage gap)
- Name spelling variations cause misses — try alternate transliterations
- Birth year or country filter too strict — narrows out the correct match
- Rate limiting or upstream Wikidata unavailability — service may return error

## How this service works

Screen a person's name for politically exposed person (PEP) status: status no_match, possible_match, confirmed_match or unable_to_determine with confidence, sources and ranked candidates with public offices held, dates, current vs former, country and birth year. Open CC0 Wikidata; not complete PEP coverage. Use when onboarding a customer, director or counterparty and you must check whether the person is a politically exposed person (PEP) before KYC/AML sign-off.

## Output

Returns a JSON object with: overall PEP status (true/false), match status (no_match, possible_match, confirmed_match, unable_to_determine), best match score, and an array of ranked candidate matches. Each candidate includes full name, PEP status, current/former positions with start/end dates, party affiliations, birth year, citizenship, Wikidata ID and source link, and a match score. Also includes legal/terms links and the original query echo.

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "name"
     ],
     "properties": {
      "name": {
       "type": "string",
       "description": "Full name of the person to screen"
      },
      "limit": {
       "type": "integer",
       "description": "Max candidates 1-10 (default 5)"
      },
      "country": {
       "type": "string",
       "description": "Optional ISO 3166-1 alpha-2 country (citizenship or office), e.g. DE, US, FR"
      },
      "birth_year": {
       "type": "integer",
       "description": "Optional birth year to disambiguate (+/-1 year)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "legal": {
   "terms": "https://pep-screen-production.up.railway.app/terms",
   "privacy": "https://pep-screen-production.up.railway.app/privacy"
  },
  "query": {
   "name": "Olaf Scholz"
  },
  "is_pep": true,
  "status": "ok",
  "use_when": "Use when onboarding a customer, director or counterparty and you must check whether the person is a politically exposed person (PEP) before KYC/AML sign-off.",
  "candidates": [
   {
    "name": "Olaf Scholz",
    "is_pep": true,
    "parties": [
     "Social Democratic Party of Germany"
    ],
    "deceased": false,
    "positions": [
     {
      "end": null,
      "start": "2025-03-25",
      "current": true,
      "position": "member of the German Bundestag"
     },
     {
      "end": "2025-05-06",
      "start": "2021-12-08",
      "current": false,
      "position": "Federal Chancellor of Germany"
     }
    ],
    "birth_year": 1958,
    "pep_status": "current",
    "description": "German politician (SPD), Chancellor of Germany (2021–2025)",
    "match_score": 1,
    "source_link": "https://www.wikidata.org/wiki/Q61053",
    "wikidata_id": "Q61053",
    "citizenships": [
     "DE"
    ]
   }
  ],
  "pep_status": "current",
  "best_match_score": 1
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pep-screening-politically-exposed-persons-c2f48615/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from pep-screen-production.up.railway.app](https://www.zero.xyz/host/pep-screen-production.up.railway.app/llms.txt)
