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

# Sanctions screening

> Automated sanctions matching, analyst overrides, and weekly audit metrics — screen vessels against OFAC, UK, EU, UN, and OpenSanctions lists.

Overwatch continuously screens vessel ownership chains against OFAC, EU, UN, and OpenSanctions consolidated lists. When a match is detected, it appears in the unified alert inbox and on the vessel's risk profile. Analysts can override matches as false positives or confirmed, and the audit endpoint tracks review rates over time.

## Data sources

Sanctions screening fuses entities from multiple watchlists. The OpenSanctions default dataset is refreshed daily from the public bulk download and broadens coverage beyond the OFAC / EU / UN core lists to include politically exposed persons (PEPs) and additional national regimes.

| Source                  | Coverage                                            | Refresh | License       |
| ----------------------- | --------------------------------------------------- | ------- | ------------- |
| OFAC SDN                | US Treasury Specially Designated Nationals          | Daily   | Public domain |
| EU consolidated         | EU restrictive measures                             | Daily   | EUPL          |
| UN consolidated         | UN Security Council sanctions                       | Daily   | Public domain |
| OpenSanctions `default` | Consolidated sanctions + PEPs across global regimes | Daily   | CC-BY 4.0     |

OpenSanctions entities are stored in canonical [FollowTheMoney](https://www.opensanctions.org/docs/entities/) JSON. Match candidates use trigram similarity on the entity caption, then are reconciled against vessel ownership graphs before producing an alert. Attribution: data provided by [OpenSanctions](https://www.opensanctions.org/).

## Sanctions overrides

### `GET` `/api/v1/sanctions/overrides`

<Note>Requires API key.</Note>

List analyst overrides on sanctions matches. Use this to review false positive determinations and confirmed matches.

**Parameters**

| Name         | Type   | Required | Description                                |
| ------------ | ------ | -------- | ------------------------------------------ |
| `imo`        | string |          | Filter by IMO number                       |
| `dedupe_key` | string |          | Filter by specific match deduplication key |
| `limit`      | number |          | Default 50, max 200                        |

**Response**

```json theme={null}
{
  "overrides": [
    {
      "dedupe_key": "9622629:ofac:sdn_entity_123",
      "imo_number": "9622629",
      "override_status": "false_positive",
      "reason": "Name similarity only — different registered owner confirmed via Equasis.",
      "created_at": "2026-04-15T10:00:00Z",
      "updated_at": "2026-04-15T10:00:00Z"
    }
  ],
  "count": 1
}
```

**Example**

```bash theme={null}
curl -H "X-API-Key: YOUR_KEY" \
  https://axiomoverwatch.io/api/v1/sanctions/overrides?imo=9622629
```

### `POST` `/api/v1/sanctions/overrides`

<Note>Requires API key.</Note>

Create or update an override on a sanctions match. The override persists and is factored into the vessel's risk score.

**Parameters**

| Name              | Type   | Required | Description                                     |
| ----------------- | ------ | -------- | ----------------------------------------------- |
| `dedupe_key`      | string | ✓        | Match deduplication key from the original alert |
| `override_status` | string | ✓        | `false_positive` or `confirmed_match`           |
| `reason`          | string |          | Analyst explanation                             |

**Example**

```bash theme={null}
curl -X POST -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  https://axiomoverwatch.io/api/v1/sanctions/overrides \
  -d '{
    "dedupe_key": "9622629:ofac:sdn_entity_123",
    "override_status": "false_positive",
    "reason": "Name similarity only — different registered owner confirmed via Equasis."
  }'
```

***

## Audit metrics

### `GET` `/api/v1/sanctions/audit`

<Note>Requires API key.</Note>

Weekly audit metrics for sanctions screening: how many matches were reviewed, confirmed, or marked as false positives. Use this to track analyst review rates and model accuracy.

**Parameters**

| Name    | Type   | Required | Description                                              |
| ------- | ------ | -------- | -------------------------------------------------------- |
| `weeks` | number |          | Number of weeks of history to return. Default 8, max 26. |

**Response**

```json theme={null}
{
  "total_auto_matches": 245,
  "weekly": [
    {
      "week_start": "2026-04-14",
      "analyst_reviewed": 18,
      "analyst_confirmed": 12,
      "analyst_false_positive": 6,
      "confirmation_rate_reviewed": 0.667,
      "confirmation_rate_vs_auto": 0.049
    }
  ]
}
```

**Example**

```bash theme={null}
curl -H "X-API-Key: YOUR_KEY" \
  https://axiomoverwatch.io/api/v1/sanctions/audit?weeks=12
```
