# Johto Sanctions Screen API

> Johto Sanctions Screen API is a paid API for AI agents from johto-x402-api.johtodata.workers.dev, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-28).

Screens a person or entity name against OFAC SDN and UK Sanctions lists, returning fuzzy-matched hits with scores, programs, and a clear MATCH/NO_MATCH verdict

## Facts

- Endpoint: GET https://johto-x402-api.johtodata.workers.dev/v1/sanctions-screen?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-28
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/johto-sanctions-screen-api-0c92e3f8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_uvw6S8Q3x6ChNJl4nfVAg

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 johto-sanctions-screen-api-0c92e3f8
```

Example prompt: Can you run a sanctions screen on 'Bank Rossiya' as an entity against OFAC and UK lists, with a match threshold of 0.85 and return the top 5 results?

## When to prefer this

Use this endpoint when you need a fast, low-cost automated sanctions pre-screen against OFAC SDN and UK Sanctions List with fuzzy matching and a configurable confidence threshold. It is pay-per-call in USDC with no charge on failed or empty fetches, making it cost-efficient for high-volume compliance pipelines. Prefer it over manual lookups or heavier KYB workflows when you just need a quick watchlist verdict during customer onboarding, transaction monitoring, or counterparty checks.

## Known failure modes

- No name provided — returns 400 validation error
- Threshold outside 0.70–1.00 range — rejected by schema
- Limit value outside 1–20 — rejected by schema
- Country code not valid ISO-2 — rejected
- Upstream sanctions list fetch failure — call not charged
- Name too short (under 2 chars) or too long (over 200 chars) — rejected
- No matches found — returns empty matches array with NO_MATCH verdict and rows:0, not charged

## How this service works

Valuable data. Quality leads. Paid per call in USDC on Base via x402. Not charged if the fetch fails or nothing matches. Prices per call (USDC): /v1/jp-invoice-check $0.002; /v1/sec-13f $0.003; /v1/sec-8k $0.003; /v1/sanctions-screen $0.0025; /v1/tenders $0.011; /v1/uk-tenders $0.003; /v1/fr-tenders $0.006; /v1/au-contracts $0.0035; /v1/wallet-risk $0.0025; /v1/kyb $0.0029; /v1/read $0.0019; /v1/crawl $0.0045; /v1/jobs $0.01; /v1/domain-profile $0.003.

## Output

Returns a JSON object with a verdict (MATCH or NO_MATCH), a list of matching sanctions entries (each with name, score, list name, list ID, match type, entity type, programs, and date of birth if available), active filters applied, the query string, timestamps of when each sanctions list was last fetched, and a count of total matches. Also includes an attribution note for open-government-licensed data.

## 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": {
      "dob": {
       "type": "string",
       "pattern": "^[0-9]{4}(-[0-9]{2}-[0-9]{2})?$",
       "description": "Date of birth, YYYY or YYYY-MM-DD"
      },
      "name": {
       "type": "string",
       "description": "Person or entity name, 2-200 characters"
      },
      "type": {
       "enum": [
        "person",
        "entity",
        "any"
       ],
       "type": "string",
       "description": "person, entity (organizations, vessels, aircraft) or any (default any)"
      },
      "limit": {
       "type": "string",
       "pattern": "^([1-9]|1[0-9]|20)$",
       "description": "Matches 1-20, best first (default 10)"
      },
      "country": {
       "type": "string",
       "pattern": "^[A-Za-z]{2}$",
       "description": "ISO-2 country code, e.g. RU"
      },
      "threshold": {
       "type": "string",
       "pattern": "^(0\\.[0-9]{1,3}|1(\\.0{1,3})?)$",
       "description": "Minimum score to return, 0.70-1.00 (default 0.85)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "data",
      "rows",
      "fetchedAt"
     ],
     "properties": {
      "data": {
       "type": "object",
       "properties": {
        "note": {
         "type": "string"
        },
        "query": {
         "type": "string"
        },
        "filters": {
         "type": "object",
         "properties": {
          "dob": {},
          "type": {
           "type": "string"
          },
          "limit": {
           "type": "integer"
          },
          "country": {},
          "threshold": {
           "type": "number"
          }
         }
        },
        "matches": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "dob": {},
           "list": {
            "type": "string"
           },
           "name
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "note": "A screening aid, not legal advice.",
   "query": "bank rossiya",
   "filters": {
    "dob": null,
    "type": "any",
    "limit": 3,
    "country": null,
    "threshold": 0.85
   },
   "matches": [
    {
     "dob": null,
     "list": "OFAC_SDN",
     "name": "BANK ROSSIYA",
     "score": 1,
     "listId": "16681",
     "programs": [
      "UKRAINE-EO13661"
     ],
     "matchType": "exact",
     "entityType": "entity",
     "nationality": null,
     "primaryName": "BANK ROSSIYA"
    },
    {
     "dob": null,
     "list": "UK_SANCTIONS_LIST",
     "name": "Bank Rossiya",
     "score": 1,
     "listId": "RUS0232",
     "programs": [
      "The Russia (Sanctions) (EU Exit) Regulations 2019"
     ],
     "matchType": "exact",
     "entityType": "entity",
     "nationality": null,
     "primaryName": "Bank Rossiya"
    },
    {
     "dob": null,
     "list": "OFAC_SDN",
     "name": "ROSSITA BANK",
     "score": 0.964,
     "listId": "51760",
     "programs": [
      "RUSSIA-EO14024"
     ],
     "matchType": "fuzzy",
     "entityType": "entity",
     "nationality": null,
     "primaryName": "ROSSITA BANK"
    }
   ],
   "verdict": "MATCH",
   "fetchedAt": "2026-10-22T12:22:29.351Z",
   "listsAsOf": {
    "ofacSdn": {
     "asOf": "2026-10-21",
     "name": "OFAC SDN list",
     "source": "https://www.treasury.gov/ofac/downloads/sdn.xml",
     "entries": 19471,
     "fetchedAt": "2026-10-22T12:21:02Z"
    },
    "ukSanctionsList": {
     "asOf": "2026-10-16",
     "name": "UK Sanctions List",
     "source": "https://sanctionslist.fcdo.gov.uk/docs/UK-Sanctions-List.xml",
     "entries": 6408,
     "license": "Open Government Licence v3.0",
     "fetchedAt": "2026-10-22T12:21:03Z"
    }
   },
   "matchCount": 4,
   "attribution": "Contains public sector information licensed under the Open Government Licence v3.0.",
   "listsChecked": [
    "OFAC_SDN",
    "UK_SANCTIONS_LIST"
   ]
  },
  "rows": 1,
  "fetchedAt": "2026-10-22T12:22:29.351Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/johto-sanctions-screen-api-0c92e3f8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from johto-x402-api.johtodata.workers.dev](https://www.zero.xyz/host/johto-x402-api.johtodata.workers.dev/llms.txt)
