PublicAMLMost crypto AML/KYT APIs are sales-led or per-call. If you just need to screen a wallet before a...
Most crypto AML/KYT APIs are sales-led or per-call. If you just need to screen a wallet before a transaction, PublicAML is a non-profit with a free, keyless KYT API: POST an address and get back an AML risk score, sanctions/scam exposure, entity category and source of funds. No API key to start — an optional key only raises the rate limit. Covers Bitcoin, Ethereum, BNB Chain and TRON.
curl -s -X POST https://intelapi.publicaml.org/v1/enrich \
-H 'Content-Type: application/json' \
-d '{"addresses":[{"wallet_address":"0x28c6c06298d514db089934071355e5743bf21d60","chain":"ethereum"}]}'
import requests
r = requests.post(
"https://intelapi.publicaml.org/v1/enrich",
json={"addresses": [{"wallet_address": "0x28c6...d60", "chain": "ethereum"}]},
timeout=20,
)
entity = r.json()["entities"][0]
print(entity["aml_score"], entity["category"])
const res = await fetch("https://intelapi.publicaml.org/v1/enrich", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
addresses: [{ wallet_address: "0x28c6...d60", chain: "ethereum" }],
}),
});
const { entities } = await res.json();
console.log(entities[0].aml_score, entities[0].category);
The response returns an AML score, an entity category (cex, mixer, sanction, hack, scam, ...), cluster info and counterparties with source-of-funds. There are SDKs for JavaScript/TypeScript, Python and Go, plus a Telegram bot for one-off checks.
It is run as a public good, so screening is free — no trial, no monthly cap. Full docs and more examples: https://publicaml.org/crypto-aml-api-examples · API overview: https://publicaml.org/api