> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockradar.co/llms.txt
> Use this file to discover all available pages before exploring further.

# AML Screening

> Screen wallet addresses against global sanctions and blocklists in real time

<Note>
  In a nutshell<br />
  The AML API lets you screen any wallet address against OFAC, FBI, Tether, and Circle blocklists before sending or receiving funds. Use it to flag high-risk counterparties and meet your compliance obligations without building your own screening infrastructure.
</Note>

## Prerequisites

<Steps>
  <Step title="API Key">
    Get your API key from the [Blockradar Dashboard](https://dashboard.blockradar.co). Navigate to **Developers** to generate one.
  </Step>
</Steps>

## How It Works

Before sending funds to an external address or before crediting a deposit from one, you can run a real-time AML check. Blockradar screens the address against multiple blocklists and returns a risk assessment you can use to decide whether to proceed.

<CardGroup cols={2}>
  <Card title="OFAC Sanctions" icon="flag">
    Screen against the US Office of Foreign Assets Control sanctions list, covering individuals and entities subject to economic sanctions.
  </Card>

  <Card title="FBI Watchlist" icon="shield">
    Check addresses flagged by the FBI in connection with cybercrime, ransomware, and other illicit activity.
  </Card>

  <Card title="Tether Blocklist" icon="circle-xmark">
    Identify addresses that Tether has blacklisted and frozen from transacting in USDT.
  </Card>

  <Card title="Circle Blocklist" icon="circle-xmark">
    Identify addresses that Circle has blacklisted and frozen from transacting in USDC.
  </Card>
</CardGroup>

## Screening an Address

```bash theme={null}
GET /v1/aml/lookup?address={address}
```

```javascript theme={null}
const result = await fetch(
  `https://api.blockradar.co/v1/aml/lookup?address=0xabc123...`,
  {
    headers: { 'x-api-key': apiKey }
  }
).then(r => r.json());

if (result.isBlacklisted) {
  console.log('High risk address — do not proceed');
} else {
  console.log('Address is clear');
}
```

## Response

```json theme={null}
{
  "isBlacklisted": false,
  "provider": "ofac, fbi, tether, circle",
  "status": "success",
  "message": "Address is not sanctioned"
}
```

If the address is flagged, `isBlacklisted` will be `true` and the `message` will indicate the sanction source.

## When to Screen

<CardGroup cols={2}>
  <Card title="Before Sending Funds" icon="arrow-up-from-bracket">
    Screen the destination address before executing a withdrawal to avoid sending to a sanctioned or blacklisted wallet.
  </Card>

  <Card title="Before Crediting Deposits" icon="arrow-down-to-bracket">
    Screen the sender address when a deposit arrives before crediting the funds in your system.
  </Card>
</CardGroup>

## Best Practices

* **Screen before every outbound transfer** — run a check before executing any withdrawal to an external address you haven't previously vetted.
* **Screen inbound deposits** — use the sender address from your webhook payload to screen deposits before crediting them to your user's account.
* **Log screening results** — store the AML check result alongside each transaction for audit and compliance purposes.
* **Have a clear escalation policy** — decide in advance what happens when an address is flagged: block the transaction, hold for review, or alert your compliance team.

## API Reference

| Endpoint                                   | Description                                       |
| ------------------------------------------ | ------------------------------------------------- |
| [AML Lookup](/en/api-reference/aml/lookup) | Screen a wallet address against global blocklists |
