EU

EU Sanctions

eu API

EU Sanctions

Type: sanctions
Module: EuSanctions

Capabilities

Entity Search Person Search Vessel Search Sanctions Program Lookup Fuzzy Name Matching Regime Classification

Try EU Sanctions

API Endpoint

Results

Overview

The EU Consolidated Sanctions List is the authoritative dataset of all persons, groups, entities, and vessels subject to EU restrictive measures (financial sanctions). Maintained by the European Commission's Directorate-General for Financial Stability, Financial Services and Capital Markets Union (DG FISMA), this list consolidates sanctions across all EU regulations into a single searchable dataset. The consolidated list aggregates designations from over 30 sanctions regimes targeting specific countries, terrorism, cyber attacks, chemical weapons proliferation, and human rights violations.

For any organization operating within the European Union or dealing with EU-connected entities, screening against the EU sanctions list is not optional -- it is a legal obligation under EU regulations. Council Regulation (EC) No 2580/2001, Council Regulation (EC) No 881/2002, and their successors require all EU persons and entities to freeze the funds and economic resources of designated persons and ensure that no funds or economic resources are made available to them. Failure to comply carries severe penalties including criminal prosecution, substantial fines, and license revocation.

The sanctions list is updated frequently, often within 24 hours of new Council Decisions or Regulations being published in the Official Journal of the European Union. New designations can occur at any time, particularly in response to geopolitical events, making continuous monitoring essential for compliance. The list includes not only individuals and entities but also vessels (ships) subject to port entry restrictions, and designations from multiple regulatory frameworks covering different policy objectives.

Within the Prismatic platform, the EU Sanctions list is a core data source for the compliance screening pipeline, integrated with OFAC (US sanctions) to provide dual-jurisdiction coverage essential for entities operating across both EU and US regulatory environments. The combination of EU and US sanctions screening is a minimum requirement for virtually all financial compliance programs.

Data Sources and Coverage

The EU Consolidated Sanctions List aggregates designations from multiple EU regulatory frameworks and sanctions regimes.

Data TypeDescriptionCoverage
PersonsIndividuals subject to asset freezes and travel bansAll designated individuals
EntitiesOrganizations, companies, groups under sanctionsAll designated entities
VesselsShips subject to port entry bans or asset freezesMaritime sanctions
Sanctions ProgramsRegime-specific sanctions packages30+ active regimes
IdentifiersPassport numbers, national IDs, registration numbersWhere available
AliasesKnown aliases, transliterations, former namesMultiple per entry
AddressesKnown addresses and locationsWhere available
Designating AuthorityEU regulation reference for each listingAll entries
Listing DatesOriginal designation and amendment datesAll entries
ReasonsStated reasons for designationMost entries

Major Sanctions Regimes

RegimeTargetKey RegulationsDesignated Entries
Russia/UkraineRussian government, oligarchs, entitiesEU 269/2014, 833/20142,000+
IranNuclear program related entitiesEU 267/2012500+
DPRKNorth Korean government and entitiesEU 329/2007100+
SyriaSyrian government and associatesEU 36/2012300+
BelarusLukashenko regime supportersEU 765/2006200+
TerrorismDesignated terrorist organizationsEU 2580/2001, 881/2002400+
LibyaFormer regime associatesEU 204/2011100+
Cyber AttacksActors behind significant cyber attacksEU 2019/79610+
Chemical WeaponsChemical weapons proliferation actorsEU 2018/154220+

Data Format and Structure

The consolidated list is published in XML format with a well-defined schema. Each entry contains a unique EU reference ID, the subject type (person, entity, vessel), one or more names with alias types (primary, alias, maiden name), identification documents with types and issuing countries, addresses with structured fields, birth date and place information for individuals, and the specific EU regulations and article references for the designation.

Technical Architecture

The EU sanctions data is published through the EU Open Data Portal and directly downloadable from the DG FISMA website. The data architecture supports multiple access patterns for different compliance needs.

The XML consolidated list provides the complete structured dataset suitable for bulk download and local database synchronization. The XML schema defines entity types, name structures, identifier formats, and regulation references. Updates are published as complete dataset replacements rather than incremental changes, requiring full-file comparison for change detection.

The EU Sanctions Map provides a web interface for interactive browsing and searching of sanctions data, organized by regime and entity type. While useful for manual research, it is not suitable for programmatic access.

For compliance screening purposes, the standard approach is to download the full XML list, parse it into a local database, and perform name matching against the local copy. This ensures screening performance is not dependent on external API availability and enables sophisticated fuzzy matching algorithms.

The Prismatic adapter implements a local sanctions database synchronized from the EU XML feed, with configurable update frequency (default hourly check, download on change). Name matching uses a multi-algorithm approach combining exact matching, Levenshtein distance, Jaro-Winkler similarity, and phonetic matching (Soundex, Metaphone) to handle transliterations, name variations, and character encoding differences common in sanctions data.

API Integration

The Prismatic adapter implements comprehensive sanctions screening with fuzzy name matching and multi-regime support.

defmodule PrismaticOsint.Adapters.EuSanctions do
  @moduledoc """
  EU Consolidated Sanctions List adapter for compliance screening
  within the Prismatic OSINT pipeline. Implements local database
  with fuzzy name matching for reliable screening.
  """

  @data_url "https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content"

  # Search by entity name with fuzzy matching
  def search(name, opts \\ []) do
    threshold = Keyword.get(opts, :fuzzy_threshold, 0.85)

    with {:ok, matches} <- local_fuzzy_search(name, threshold) do
      {:ok, Enum.map(matches, &format_match/1)}
    end
  end

  # Search by person name with fuzzy matching
  def search_person(first_name, last_name, opts \\ []) do
    threshold = Keyword.get(opts, :fuzzy_threshold, 0.85)
    full_name = "#{first_name} #{last_name}"

    with {:ok, matches} <- local_fuzzy_search(full_name, threshold) do
      {:ok, Enum.filter(matches, &(&1.subject_type == :person))}
    end
  end

  # Screen a list of entities (bulk screening)
  def screen_batch(entities) when is_list(entities) do
    results = Enum.map(entities, fn entity ->
      case search(entity.name, fuzzy_threshold: 0.80) do
        {:ok, []} -> {entity, :clear, []}
        {:ok, matches} ->
          max_confidence = Enum.max_by(matches, & &1.confidence)
          status = if max_confidence.confidence >= 0.95, do: :match, else: :review_required
          {entity, status, matches}
      end
    end)

    {:ok, %{
      matches: Enum.filter(results, fn {_, s, _} -> s == :match end),
      clear: Enum.filter(results, fn {_, s, _} -> s == :clear end),
      review_required: Enum.filter(results, fn {_, s, _} -> s == :review_required end)
    }}
  end

  # Get full sanctions list for a specific regime
  def get_regime(regime_name) do
    with {:ok, entries} <- local_filter_by_regime(regime_name) do
      {:ok, entries}
    end
  end

  # Download and sync latest consolidated list
  def sync_list do
    with {:ok, xml} <- download_xml(@data_url),
         {:ok, entries} <- parse_sanctions_xml(xml),
         :ok <- update_local_database(entries) do
      {:ok, %{total_entries: length(entries), synced_at: DateTime.utc_now()}}
    end
  end

  # Check if specific identifiers are sanctioned
  def check_identifier(opts) do
    type = Keyword.fetch!(opts, :type)
    value = Keyword.fetch!(opts, :value)

    with {:ok, matches} <- local_identifier_search(type, value) do
      {:ok, matches}
    end
  end
end

Dual-Jurisdiction Compliance Screening Pipeline

defmodule PrismaticCompliance.Screening.SanctionsScreener do
  @moduledoc """
  Automated sanctions screening against EU and US lists.
  Mandatory for KYC/AML compliance in dual-jurisdiction environments.
  """

  alias PrismaticOsint.Adapters.{EuSanctions, Ofac}

  def screen_entity(entity) do
    tasks = [
      Task.async(fn -> EuSanctions.search(entity.name, fuzzy_threshold: 0.80) end),
      Task.async(fn -> Ofac.search(entity.name, fuzzy_threshold: 0.80) end)
    ]

    [eu_results, ofac_results] = Task.await_many(tasks, 15_000)

    {:ok, %{
      entity: entity,
      eu_sanctions: categorize_results(eu_results),
      ofac_sanctions: categorize_results(ofac_results),
      overall_risk: calculate_sanctions_risk(eu_results, ofac_results),
      requires_manual_review: any_potential_matches?(eu_results, ofac_results),
      screening_timestamp: DateTime.utc_now(),
      next_screening_due: DateTime.add(DateTime.utc_now(), 30, :day)
    }}
  end

  defp categorize_results({:ok, results}) do
    %{
      exact_matches: Enum.filter(results, &(&1.confidence >= 0.95)),
      potential_matches: Enum.filter(results, &(&1.confidence >= 0.80 and &1.confidence < 0.95)),
      low_matches: Enum.filter(results, &(&1.confidence < 0.80))
    }
  end

  defp categorize_results(_), do: %{exact_matches: [], potential_matches: [], low_matches: []}
end

Use Cases

KYC/AML Compliance

EU sanctions screening is a mandatory component of Know Your Customer (KYC) and Anti-Money Laundering (AML) programs for all EU-regulated entities. Key compliance workflows include mandatory screening for financial institutions during customer onboarding and periodic review, customer and beneficial owner verification against the consolidated list, ongoing monitoring of existing business relationships with configurable screening frequency, cross-reference with OFAC for comprehensive dual-jurisdiction coverage, and automated alert generation for potential matches requiring enhanced due diligence.

Supply Chain Due Diligence

EU sanctions regulations extend beyond financial services to all economic activities. Supply chain applications include vendor and supplier sanctions screening before establishing business relationships, NIS2 supply chain security requirements that include sanctions compliance, third-party risk management incorporating sanctions exposure assessment, monitoring supply chain partners for new designations that may affect existing contracts, and assessing geographic risk for supply chains with exposure to sanctioned jurisdictions.

Corporate Intelligence and Risk Assessment

EU sanctions data provides intelligence for broader corporate risk assessment. Applications include cross-referencing Czech registry data (ARES, Justice.cz) with sanctions listings, assessing beneficial owner sanctions exposure through Companies House PSC data, geopolitical risk analysis for business operations in sanctioned or near-sanctioned jurisdictions, and monitoring sanctions regime changes for impact on existing business relationships.

Cryptocurrency Compliance

EU sanctions increasingly include cryptocurrency-related designations, particularly related to the Russian sanctions regime. Screening applications include matching cryptocurrency addresses against EU-designated entities, cross-referencing with Chainalysis for blockchain-based sanctions matching, monitoring for new crypto-specific designations, and assessing cryptocurrency service providers for sanctions compliance.

Data Quality and Validation

EU sanctions list data quality is high given its legal authority and the rigorous process for designations. However, several challenges affect screening accuracy.

Name transliteration creates significant matching challenges. Designated individuals from non-Latin script countries may have multiple valid transliterations of their names. The consolidated list often includes multiple aliases, but transliteration variations can still produce false negatives if matching algorithms are too strict.

Identifier availability varies by entry. Some designations include passport numbers, national IDs, and tax numbers that enable high-confidence matching. Others include only names and addresses, requiring fuzzy name matching that produces both false positives and false negatives.

Update frequency is generally rapid (within 24 hours of Official Journal publication) but can vary for complex regulatory packages. The Prismatic adapter checks for updates hourly and triggers immediate re-screening of monitored entities when changes are detected.

De-listings occur when designations are overturned by the EU General Court or when sanctions regimes are amended. The Prismatic adapter tracks de-listings and updates screening results accordingly, preventing false positive alerts for de-listed entities.

Platform Integration

Within the Prismatic ecosystem, the EU Sanctions list is integrated as a core compliance data source alongside OFAC for dual-jurisdiction sanctions screening. The screening pipeline is invoked automatically during entity verification workflows, triggered by both new entity onboarding and periodic review cycles.

The Prismatic Perimeter security rating engine incorporates sanctions screening results as a critical factor in entity risk assessment. Any sanctions match (exact or potential) triggers maximum risk classification for the affected entity.

The compliance monitoring system maintains a screening schedule for all monitored entities and triggers re-screening when the sanctions list is updated, ensuring continuous compliance.

NABLA Compliance

Signal Plurality: Sanctions screening always combines EU and US (OFAC) lists at minimum. For high-risk assessments, additional national sanctions lists are included. No sanctions decision is based on a single list.

Contradiction Preservation: When an entity appears on one sanctions list but not another, both signals are preserved. Presence on any authoritative sanctions list triggers compliance action regardless of absence from other lists.

Time Decay: Sanctions designations are treated as current until explicitly de-listed. There is no confidence decay for active designations. De-listings are tracked with effective dates and applied retroactively to screening records.

Provenance Mandatory: All sanctions screening results include the list version (download timestamp), the matching algorithm used, the confidence score, the specific regulation reference for any match, and the screening timestamp.

Source Independence: The EU sanctions list is treated as an independent authoritative source from OFAC and national lists. Each list carries independent compliance obligations that cannot be satisfied by screening against other lists alone.

Performance and Rate Limits

AspectDetails
AuthenticationNone required (public dataset)
Rate LimitNo official limit for XML download
Data FormatsXML (primary), CSV, PDF
Update FrequencyUpdated within 24 hours of new EU regulations
CostFree (public EU data)
Local ScreeningSub-millisecond for exact match, <100ms for fuzzy match
List Size~4,000 entries across all regimes

The Prismatic adapter maintains a local copy of the sanctions database synchronized hourly from the EU data source. Local screening eliminates external API dependency and enables high-throughput batch screening operations.

  • OFAC - US Treasury sanctions (SDN list)
  • ARES - Czech business register for entity identification
  • Justice.cz - Czech Commercial Register for UBO data
  • Companies House - UK corporate data for cross-border screening
  • VR.cz - Czech public registers with beneficial owners
  • Chainalysis - Cryptocurrency sanctions screening
  • OSINT Core - Core OSINT framework and adapter layer
  • Prismatic Perimeter - Sanctions compliance in security ratings

Connect & Contribute

Created by Tomáš Korcak (korczis) | Open Source under GHL