---
title: "Sanctioned Recent"
method: GET
path: "/v1/stream/sanctioned/recent"
tags: ["stream"]
---

# Sanctioned Recent

`GET /v1/stream/sanctioned/recent`

## Request

- Base URL: `https://api.bitpoort.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.bitpoort.com/v1/stream/sanctioned/recent`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Chain-wide recent transactions flagged as touching an OFAC-designated or
mixer address, split into TWO lanes. The ``mixer`` lane is a ``hours``-window
feed (dense, ~1000/day). The ``sanctioned`` lane is the ``limit`` most-recent
designated-address hits REGARDLESS of age (and >= ``min_usd``, default $1000, to
cut the address-poisoning dust that otherwise dominates the lane) — they are rare,
so a fixed window is empty most of the time; each row carries its own timestamp so
age is visible. Plus 24h lane counts for the tiles. SANCTIONS LANE ONLY —
behavioural signals (wash-trading) never appear here.

The three queries are INDEPENDENTLY guarded and each carries a hard timeout: a
slow/failed lane degrades to empty on its own, ``available`` is true if ANY lane
succeeded, and ``lanes`` reports per-lane health — one slow lane never takes the
whole feed down (the prod outage this fixes, where the unbounded sanctioned scan
timed out and the single try/except failed everything). Requires auth (not in
``PUBLIC_PREFIXES``); never 500s the desk.

## Query parameters

- `chain` string
- `limit` integer
- `hours` integer
- `min_usd` number

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/bitpoort/apis/bitpoort-api.md) · [All operations](https://skmtc.dev/bitpoort/apis/bitpoort-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bitpoort/apis/bitpoort-api/revisions/1a51d8566777?raw)
