You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Open-source sanctions screening platform. A free, open alternative to commercial watchlist screening solutions. Sieve fetches publicly available sanctions lists, normalizes them into a unified entity model, indexes them in memory, and exposes both a CLI and a REST API for screening names.
Supported Sanctions Lists
25 providers across 20 jurisdictions. All lists are fetched from official government endpoints, parsed into a unified entity model, and indexed in memory for screening.
International
Provider
Source
Format
Entities
UN Consolidated
UN Security Council
XML
~800
North America
Provider
Source
Format
Entities
OFAC SDN
U.S. Treasury — Specially Designated Nationals
XML
~12,000
OFAC Non-SDN
U.S. Treasury — Non-SDN Consolidated
XML
~600
US Trade CSL
U.S. Commerce Dept — Consolidated Screening List
JSON
~12,500
Canada Consolidated
Global Affairs Canada (SEMA, FACFOA, Terrorists)
XML
~2,700
Europe
Provider
Source
Format
Entities
EU Consolidated
European Commission — Financial Sanctions
XML
~5,900
EU Journal
EU Official Journal designations
XML
~5,900
EU Sanctions Map
EU Sanctions Map API
JSON
~1,000
EU Travel Bans
EU Travel Bans list
XML
~5,900
UK HMT
HM Treasury — Financial Sanctions
XML
~4,000
CH SECO
Switzerland — State Secretariat for Economic Affairs
graph LR
CLI[sieve-cli] --> MATCH[sieve-match]
VERTX[sieve-server] --> MATCH
SPRING[sieve-spring-server] --> MATCH
MATCH --> CORE[sieve-core]
MATCH --> INGEST[sieve-ingest]
VERTX --> INGEST
SPRING --> INGEST
CLI --> INGEST
INGEST --> CORE
# Screen a name
curl -X POST http://localhost:8080/api/v1/screen \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "threshold": 0.80}'# List status
curl http://localhost:8080/api/v1/lists
# Refresh lists
curl -X POST http://localhost:8080/api/v1/lists/refresh
# Health check
curl http://localhost:8080/api/v1/health
Matching Algorithms
Exact Match — Normalized case-insensitive exact comparison (score: 1.0 or 0.0)
Fuzzy Match — Jaro-Winkler similarity (implemented from scratch, no external dependencies)
Composite — Runs both engines, deduplicates by entity, keeps highest score
Configuration
Vert.x server — configured via CLI flags and environment variables (see table above)