# OpenSanctions Entity Screening API

> OpenSanctions Entity Screening API is a paid API for AI agents from scan.madhousewallet.com, paid per call via x402, $0.04/call, status unknown (last checked 2026-10-13).

Screens any person, company, or entity against 1.3M+ entries from OFAC SDN, EU Sanctions, UN List, and 330+ sources to determine sanctions/PEP status for AML/KYC compliance

## Facts

- Endpoint: GET https://scan.madhousewallet.com/api/public/sanctions-check?utm_source=zero.xyz
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 1
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scan-madhousewallet-com-05810d28
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ba0YCYTV_f4NsdYcmngt1

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 scan-madhousewallet-com-05810d28
```

Example prompt: Can you run a sanctions check on 'Viktor Petrov', born 1967, from Russia — I need to know if he appears on OFAC, EU, or any other major sanctions list before we proceed with an off-ramp transaction?

## When to prefer this

Choose this endpoint when you need a comprehensive sanctions and PEP check against 330+ global sources including OFAC SDN, EU Sanctions, and UN List in a single call. Ideal for AML/KYC pre-screening, crypto off-ramp compliance, or due diligence workflows. Prefer over individual list checks when you need broad multi-jurisdictional coverage. Use birthDate and country parameters to reduce false positives for common names.

## Known failure modes

- Missing required 'name' parameter returns 400 error
- Common names without country/birthDate may return multiple matches causing ambiguity
- Payment failure if USDC balance insufficient on Base/Polygon/Arbitrum
- False positives for common names when no disambiguation parameters provided
- Entity not found in database returns sanctioned: false with empty matches array

## How this service works

Screen any person, company, or entity against OpenSanctions -- 1.3M+ entries from OFAC SDN, EU Sanctions, UN List, and 330+ sources. Returns sanctioned: true/false, entity type, risk topics (sanction, debarment, role.pep), and source datasets. Optional: country (ISO-2), address, birthDate narrow false positives. For AML/KYC pre-screening and off-ramp compliance. Pay with USDC on Base, Polygon, or Arbitrum.

## Output

Returns a JSON object with: sanctioned (true/false boolean), the submitted name, matchCount (number of distinct matched entities), and a matches array where each entry contains entityId, caption, entityType, risk topics (e.g. sanction, debarment, role.pep), matchedOn fields, and source datasets. Empty matches array means clean result.

## Example request

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

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "name"
     ],
     "properties": {
      "name": {
       "type": "string",
       "description": "Full name of the person, company, or entity to screen. Required."
      },
      "address": {
       "type": "string",
       "description": "Optional free-text address. Used for token-overlap disambiguation -- requires at least 2 strong tokens (length >= 3) to match a sanctioned address string."
      },
      "country": {
       "type": "string",
       "description": "Optional ISO 3166-1 alpha-2 country code (e.g. US, RU, CN). Narrows results when both the query and the matched entity have a country. Skipped if either side lacks country data."
      },
      "birthDate": {
       "type": "string",
       "description": "Optional birth date: YYYY or YYYY-MM-DD. Partial dates work (1967 matches 1967-01-13). Skipped if either side lacks birth date data."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "sanctioned",
      "name",
      "matchCount",
      "matches"
     ],
     "properties": {
      "name": {
       "type": "string",
       "description": "The name as submitted."
      },
      "matches": {
       "type": "array",
       "description": "All entities that passed the applied filters. Each entry has entityId, caption, entityType, topics, matchedOn, and datasets. Empty when sanctioned: false."
      },
      "matchCount": {
       "type": "number",
       "description": "Number of distinct entities that passed all filters. Common names without country/birthDate may return multiple matches."
      },
      "sanctioned": {
       "type": "boolean",
       "description": "True when one or more entities matched all applied filters. False means clean."
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "name": "Viktor Bout",
  "matches": [
   {
    "topics": [
     "role.pep",
     "sanction",
     "debarment"
    ],
    "caption": "Viktor Anatolijevitch BOUT",
    "datasets": [
     "us_ofac_sdn",
     "us_trade_csl",
     "eu_financial_sanctions_files"
    ],
    "entityId": "Q314650",
    "matchedOn": [
     "name",
     "country",
     "birthDate"
    ],
    "entityType": "Person"
   }
  ],
  "matchCount": 1,
  "sanctioned": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/scan-madhousewallet-com-05810d28/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from scan.madhousewallet.com](https://www.zero.xyz/host/scan.madhousewallet.com/llms.txt)
