# Sanctions Screening Batch API (check-sanctions/batch)

> Sanctions Screening Batch API (check-sanctions/batch) is a paid API for AI agents from api.firstmention.uk, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-29).

Screens an entity or person name against global sanctions lists (e.g. OFAC SDN) and returns fuzzy-matched results with confidence scores and program details.

## Facts

- Endpoint: GET https://api.firstmention.uk/s/check-sanctions/batch?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/sanctions-screening-batch-api-check-sanctions-batch-775abf85
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AqM2paG_DSFwMkZXW9QSq

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 sanctions-screening-batch-api-check-sanctions-batch-775abf85
```

Example prompt: Can you screen 'Gazprom' against global sanctions lists and tell me if it appears on the OFAC SDN or any other list, with a confidence threshold of 0.85?

## When to prefer this

Prefer this endpoint when you need fast, fuzzy-matched sanctions screening against the OFAC SDN list and related programs (UKRAINE, RUSSIA, EO14024, etc.) for compliance workflows, vendor onboarding, KYC, or AML checks. Ideal when you need a confidence-scored match rather than exact string matching, and when you want a pay-per-call model without a subscription. Choose this over manual OFAC lookups or full compliance platforms when cost per query and agent-native x402 payment are priorities.

## Known failure modes

- Name not found in index — returns match: false with best_score below threshold
- Threshold too high (close to 1.0) may miss partial name variants
- Limit parameter capped at 25; requesting more returns an error
- Invalid query parameter types return a 400 bad request
- Payment failure via x402 results in 402 Payment Required response before data is returned

## How this service works

Pay-per-call HTTP APIs, paid with x402 in USDC on Base (eip155:8453): agentkit, api-change-check, basedue, basewatch, chainread, check-sanctions, chgwatch, company-facts, composite, edgar, feednews, pageaudit, solcheck, token-dd, txpreflight, walletcheck, webmd, webread, websearch, x402index. Each operation describes its service.

## Output

Returns a JSON object indicating whether the queried name matches any sanctioned entity (match: true/false), the best fuzzy-match score, the normalized query, total index records checked, the number of matches found, and an array of matched entries each containing the sanctions list name, full legal name, match score, aliases, entity number, and applicable sanction programs and jurisdictions.

## 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"
    },
    "headers": {
     "type": "object",
     "additionalProperties": {
      "type": "string"
     }
    },
    "queryParams": {
     "type": "object",
     "required": [
      "name"
     ],
     "properties": {
      "name": {
       "type": "string",
       "description": "Entity or person name to screen, e.g. 'Rosneft'"
      },
      "limit": {
       "type": "integer",
       "maximum": 25,
       "minimum": 1,
       "description": "Max results, default 5"
      },
      "threshold": {
       "type": "number",
       "maximum": 1,
       "minimum": 0.5,
       "description": "Match confidence cutoff, default 0.85"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "match": {
       "type": "boolean"
      },
      "query": {
       "type": "string"
      },
      "threshold": {
       "type": "number"
      },
      "best_score": {
       "type": "number"
      },
      "match_count": {
       "type": "number"
      },
      "index_records": {
       "type": "number"
      },
      "jurisdictions": {
       "type": "array",
       "items": {
        "type": "string"
       }
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "match": true,
  "query": "Rosneft",
  "results": [
   {
    "list": "SDN",
    "name": "OPEN JOINT-STOCK COMPANY ROSNEFT OIL COMPANY",
    "score": 1,
    "aliases": [
     "ROSNEFT"
    ],
    "ent_num": 17022,
    "programs": [
     "UKRAINE",
     "RUSSIA",
     "EO14024"
    ]
   }
  ],
  "threshold": 0.85,
  "best_score": 1,
  "normalized": "ROSNEFT",
  "match_count": 1,
  "index_records": 19957
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/sanctions-screening-batch-api-check-sanctions-batch-775abf85/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.firstmention.uk](https://www.zero.xyz/host/api.firstmention.uk/llms.txt)
