AML Risk Score
Score a person or company for anti-money-laundering risk from 0 to 100, combining sanctions screening, PEP status and jurisdiction risk into one level.
Pay by wallet (x402)
aml-risk-score Example
Input
{
"entity_name": "Test Company",
"country_code": "SE",
"sanctions_match": false,
"pep_match": false
} Answer
{
"scored_at": "2026-04-30T01:03:59.897Z",
"risk_level": "low",
"risk_score": 0,
"entity_name": "Test Company",
"entity_type": "person",
"country_code": "SE",
"risk_factors": [],
"recommendation": "Standard Due Diligence (SDD) sufficient. Review per normal schedule.",
"inputs_received": {
"pep_match": false,
"sanctions_match": false,
"adverse_media_match": false
},
"jurisdiction_risk": "standard"
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
pep_match | boolean | No | Whether entity is a Politically Exposed Person |
entity_name | string | Yes | Name of person or company |
entity_type | string | No | Type of entity: person or company (default: person) |
country_code | string | Yes | ISO 2-letter country code |
sanctions_match | boolean | No | Whether entity appears on sanctions lists |
adverse_media_match | boolean | No | Whether adverse media was found |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
risk_level | string | Always (present in every successful answer) |
risk_score | integer | Always (present in every successful answer) |
entity_name | string | Always (present in every successful answer) |
risk_factors | array | Always (present in every successful answer) |
recommendation | string | Always (present in every successful answer) |
jurisdiction_risk | string | Always (present in every successful answer) |
entity_type | — | Always (present in every successful answer) |
country_code | — | Always (present in every successful answer) |
inputs_received | — | Always (present in every successful answer) |
scored_at | — | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "aml-risk-score",
"inputs": {
"entity_name": "Test Company",
"country_code": "SE",
"sanctions_match": false,
"pep_match": false
},
"max_price_cents": 2
}' {
"tool": "strale_execute",
"arguments": {
"slug": "aml-risk-score",
"inputs": {
"entity_name": "Test Company",
"country_code": "SE",
"sanctions_match": false,
"pep_match": false
},
"max_price_cents": 2
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "aml-risk-score",
inputs: {
"entity_name": "Test Company",
"country_code": "SE",
"sanctions_match": false,
"pep_match": false
},
max_price_cents: 2,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="aml-risk-score",
inputs={
"entity_name": "Test Company",
"country_code": "SE",
"sanctions_match": False,
"pep_match": False,
},
max_price_cents=2,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/aml-risk-score?entity_name=Test+Company&country_code=SE&sanctions_match=false&pep_match=false' Limitations
Scoring engine only — does not fetch data
This is a scoring engine, not a data fetcher. Feed it results from sanctions-check, pep-check, and adverse-media-check for a composite score.
FATF lists updated periodically
FATF grey/black lists and EU high-risk lists are updated periodically — may not reflect latest changes immediately
Related tools
- Adverse Media Check €0.20
- Breach Exposure Check €0.05
- Czech Unreliable VAT Payer Check €0.05
- EU Regulation Search €0.30
- French BODACC Announcements €0.05
- French Insolvency Check €0.08