AIDEVELOPER TOOLS

Sanctions Network Analysis

Sanctions network analysis that screens any person or company across 8 authoritative sources simultaneously — OFAC SDN list, OpenSanctions, Interpol Red Notices, and five international corporate registries — then applies four specialized scoring algorithms to produce an actionable Evasion Probability Score with a five-tier verdict. Built for compliance officers, financial crime investigators, and trade teams who need to detect sanctions evasion through layered shell companies, not just name matc

Try on Apify Store
$0.50per event
1
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.50
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

analysis-runs
Estimated cost:$50.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
analysis-runFull intelligence analysis run$0.50

Example: 100 events = $50.00 · 1,000 events = $500.00

Documentation

Sanctions network analysis that screens any person or company across 8 authoritative sources simultaneously — OFAC SDN list, OpenSanctions, Interpol Red Notices, and five international corporate registries — then applies four specialized scoring algorithms to produce an actionable Evasion Probability Score with a five-tier verdict. Built for compliance officers, financial crime investigators, and trade teams who need to detect sanctions evasion through layered shell companies, not just name matching.

Standard sanctions screening misses the most sophisticated evasion schemes: sanctioned entities that hide behind layers of offshore holding companies, nominee directors, and secrecy jurisdiction registrations. This actor runs ownership chain analysis, director network mapping, jurisdictional risk scoring, and cross-database correlation in parallel — exposing structural evasion patterns that a simple name check never surfaces.

What data can you extract?

Data PointSourceExample
📊 Composite Evasion ScoreAll 8 sources combined72 (0-100, higher = more risk)
⚖️ VerdictWeighted scoring modelHIGH_RISK
🚨 Risk SignalsAll scoring models"3 secrecy jurisdictions — layered offshore structure"
📋 RecommendationsScoring thresholds"File SAR — multiple risk indicators triggered"
🏛️ OFAC SDN HitsUS Treasury OFAC2 strong SDN matches
🌐 OpenSanctions Results100+ international lists4 matches across 3 datasets
🔴 Interpol Red NoticesInterpol public database1 Red Notice — international fugitive alert
🏢 Ownership Chain ScoreOpenCorporates + GLEIF + registries65/100 — HIGHLY_LAYERED
👤 Director Network ScoreCompanies House + OpenCorporates48/100 — SUSPICIOUS
🌍 Jurisdictional Risk ScoreFATF lists + secrecy jurisdiction database55/100 — ELEVATED
🔗 LEI Chain DepthGLEIF global LEI registry2 parent chain levels, lapsed registration
🕵️ Cross-DirectorshipsMulti-registry director mapping4 individuals serve on multiple entities

Why use Sanctions Network Analysis?

Manual sanctions due diligence on a single counterparty takes a compliance analyst 3-6 hours: checking OFAC manually, pulling corporate registration data from multiple registries, mapping directors across entities, verifying jurisdictional exposure. At billing rates of $150-300/hour, that is $450-$1,800 per screening. And manual reviews miss the structural patterns — a single analyst cannot visually correlate director networks across five registries while simultaneously checking three sanctions databases.

Commercial platforms like World-Check, Refinitiv, and Dow Jones Risk & Compliance charge $2,000-$15,000/year for programmatic access to their sanctions screening APIs. This actor queries the same underlying authoritative sources (OFAC, OpenSanctions, Interpol, GLEIF) and adds ownership structure analysis that those tools do not provide.

This actor automates the entire process in under 3 minutes: parallel queries to all 8 sources, algorithmic scoring across four risk dimensions, and a structured compliance report with actionable recommendations.

  • Scheduling — run weekly counterparty re-screens to catch newly added sanctions designations automatically
  • API access — trigger runs from your compliance workflow in Python, JavaScript, or any HTTP client
  • Proxy rotation — all external API calls route through Apify's infrastructure with automatic retry logic
  • Monitoring — get Slack or email alerts when a run produces a BLOCK_TRANSACTION verdict
  • Integrations — push verdicts directly to Zapier, Make, HubSpot, or compliance case management systems via webhooks

Features

  • 8-source parallel screening — OFAC SDN list, OpenSanctions (100+ international sanctions lists), Interpol Red Notices, OpenCorporates (global corporate registry), UK Companies House, GLEIF LEI registry, Canada Corporation Search, and Australia ABN Lookup all queried simultaneously
  • OFAC SDN scoring with match strength — parses match scores and SDN type classifications (individual vs entity) to distinguish strong matches from partial name collisions, scoring up to 35 points for confirmed high-confidence hits
  • OpenSanctions multi-list deduplication — extracts dataset sources from each result to count distinct sanctions regimes (EU, UN, UK, US, etc.), scoring up to 30 points based on list count and cross-regime exposure
  • Interpol Red Notice override — any Interpol match triggers an automatic BLOCK_TRANSACTION verdict regardless of the composite score, because Red Notices indicate active international arrest requests
  • Ownership chain opacity algorithm — scores corporate nesting depth, secrecy jurisdiction registrations (18 jurisdictions including BVI, Cayman Islands, Panama, Seychelles, Marshall Islands), shell company indicators (single director, zero filings on aged entities, generic holding company name patterns), and LEI chain depth
  • Director network mapping — builds a cross-registry director frequency map, detects cross-directorships (same individual across multiple entities), scores nominee/agent roles, identifies shared registered address clusters, and flags rapid entity creation (multiple incorporations within 30 days)
  • FATF blacklist and greylist scoring — checks all detected jurisdictions against the FATF blacklist (North Korea, Iran, Myanmar, Syria) scoring up to 35 points, and the 26-country FATF greylist scoring up to 25 points, with a cascade amplifier for combined blacklist-plus-secrecy exposure
  • LEI transparency gap detection — entities with corporate registry records but no GLEIF LEI registration score a 15-point opacity penalty, as LEI absence indicates deliberate avoidance of the global financial identifier system
  • Weighted composite scoring — sanctions hits (35%), ownership chain opacity (25%), jurisdictional risk (25%), director network (15%) — weights reflect real-world compliance risk prioritization
  • Five-tier verdict with override logic — CLEARED (0-14), LOW_RISK (15-34), ENHANCED_DUE_DILIGENCE (35-54), HIGH_RISK (55-74), BLOCK_TRANSACTION (75+); confirmed OFAC/OpenSanctions hits or any Interpol match override to BLOCK_TRANSACTION regardless of numeric score
  • SAR filing trigger — automatically recommends filing a Suspicious Activity Report when composite score exceeds 55 with multiple active risk indicators
  • Jurisdiction-scoped queries — optional jurisdiction parameter appends to all sub-actor queries for more targeted corporate registry results

Use cases for sanctions network analysis

Counterparty due diligence for financial institutions

Compliance officers at banks, payment processors, and investment firms face regulatory pressure to screen counterparties not just for name matches but for beneficial ownership. When onboarding a new corporate client or processing a large wire transfer, this actor runs the full network analysis in under 3 minutes — surfacing ownership chains through BVI or Cayman structures, nominee director patterns, and multi-regime sanctions exposure that would otherwise require hours of analyst time. The structured verdict integrates directly into onboarding approval workflows via API.

Financial crime investigation

Financial crime units investigating suspected sanctions evasion need to map the corporate network around a subject entity. The director network analysis cross-references up to five corporate registries simultaneously, building a map of cross-directorships, shared registered addresses, and rapid entity creation bursts — the hallmarks of coordinated shell company structures used to layer funds or obscure beneficial ownership from sanctioned individuals.

Trade compliance and export control

Trade compliance teams must verify that buyers, distributors, and freight forwarders in international transactions are not connected to sanctioned entities through opaque ownership chains. The jurisdictional risk scoring immediately flags FATF-blacklisted country connections (North Korea, Iran, Myanmar) and secrecy jurisdiction registrations that indicate deliberate opacity. The FATF blacklist hit triggers a recommendation that transactions require an OFAC license before proceeding.

Correspondent banking due diligence

Banks managing correspondent relationships with foreign financial institutions must conduct enhanced due diligence on the ownership and control structures of foreign banks. The ownership chain scoring is specifically designed for this use case: secrecy jurisdiction layering, LEI registration gaps, and multi-jurisdiction complexity scores directly translate to the risk indicators required under FATF Recommendation 13 correspondent banking standards.

Legal and advisory firm client onboarding

Law firms, accounting practices, and advisory firms subject to anti-money laundering obligations need structured evidence of sanctions screening for client engagement files. This actor produces a timestamped JSON report with a five-tier verdict and full signal documentation — audit-ready output that satisfies regulatory record-keeping requirements for client onboarding decisions.

Startup and private equity counterparty screening

Venture capital and private equity firms conducting pre-investment due diligence need rapid initial screening of founders, directors, and major shareholders. The director network analysis flags individuals who appear across multiple shell entities — a pattern that warrants deeper investigation before closing a transaction or joining a board.

How to run a sanctions network analysis

  1. Enter the entity name — Type the name of the person or company to screen (for example, "Meridian Global Holdings" or "Igor Sechin"). Use the name as it appears in official filings for best results.
  2. Select entity type — Choose "company" for corporate entities, "person" for individuals, or "any" to search both. This shapes how scoring algorithms interpret the corporate registry results.
  3. Click "Start" and wait 2-4 minutes — The actor launches all 8 sub-actors in parallel. Runtime depends on how many corporate registry hits exist for the entity.
  4. Download the compliance report — Open the Dataset tab and export as JSON, CSV, or Excel. The composite score, verdict, all signals, and recommendations are in the top-level fields for easy integration.

Input parameters

ParameterTypeRequiredDefaultDescription
entityNamestringYesName of the person or company to screen for sanctions evasion network patterns
entityTypestringNo"any"Type of entity being screened: "person", "company", or "any"
jurisdictionstringNoOptional primary jurisdiction to focus the analysis (e.g., "United Kingdom", "Panama")

Input examples

Standard company screening (most common):

{
  "entityName": "Meridian Global Holdings",
  "entityType": "company"
}

Individual screening with jurisdiction focus:

{
  "entityName": "Viktor Kozlov",
  "entityType": "person",
  "jurisdiction": "Russia"
}

Broad search when entity type is unknown:

{
  "entityName": "Sinarmas Group",
  "entityType": "any",
  "jurisdiction": "Singapore"
}

Input tips

  • Use the registered legal name — corporate registry lookups work best with the official registered name, not trade names or abbreviations. "Ltd", "LLC", and "Inc" suffixes improve matching accuracy.
  • Add jurisdiction for common names — generic names like "Global Holdings" or "International Trading" appear in many registries. Adding a jurisdiction narrows results to the entity you intend to screen.
  • Screen individuals by full name — include given name and surname. Middle names or initials improve disambiguation when the surname is common.
  • Use "any" entity type for initial screening — if you are unsure whether you are dealing with an individual front person or a corporate vehicle, "any" searches both and lets the scoring algorithms handle the distinction.
  • Run related entities separately — if the initial screening reveals cross-directorships or parent entities, submit each connected entity as a separate run for full network coverage.

Output example

{
  "entity": "Meridian Global Holdings",
  "entityType": "company",
  "jurisdiction": "British Virgin Islands",
  "analysisTimestamp": "2026-03-20T09:14:22.431Z",
  "compositeScore": 78,
  "verdict": "BLOCK_TRANSACTION",
  "allSignals": [
    "2 strong OFAC SDN matches — potential sanctions violation",
    "Appears on 4 sanctions lists — multi-jurisdictional exposure",
    "3 secrecy jurisdictions — layered offshore structure",
    "6 shell indicators — nominee/dormant company patterns",
    "No LEI registration — entity lacks transparent identifier",
    "Entity spans 6 jurisdictions — complex cross-border structure",
    "3 individuals serve on multiple entities — network pattern",
    "2 nominee/agent roles detected — potential front persons",
    "2 shared registered addresses — shell company cluster",
    "2 FATF greylist jurisdictions — enhanced due diligence required",
    "2 secrecy jurisdictions — financial opacity risk"
  ],
  "recommendations": [
    "Sanctions exposure detected — engage compliance team before proceeding",
    "Evasion-pattern ownership — require full beneficial ownership disclosure",
    "File Suspicious Activity Report (SAR) — multiple risk indicators triggered"
  ],
  "scoring": {
    "ownershipChain": {
      "score": 82,
      "nestingDepth": 5,
      "secrecyJurisdictions": 3,
      "shellIndicators": 6,
      "chainLevel": "EVASION_PATTERN",
      "signals": [
        "3 secrecy jurisdictions — layered offshore structure",
        "6 shell indicators — nominee/dormant company patterns",
        "No LEI registration — entity lacks transparent identifier",
        "Entity spans 6 jurisdictions — complex cross-border structure"
      ]
    },
    "directorNetwork": {
      "score": 55,
      "nomineePatterns": 2,
      "crossDirectorships": 3,
      "networkLevel": "HIGH_RISK",
      "signals": [
        "3 individuals serve on multiple entities — network pattern",
        "2 nominee/agent roles detected — potential front persons",
        "2 shared registered addresses — shell company cluster"
      ]
    },
    "jurisdictionalRisk": {
      "score": 47,
      "fatfBlacklist": 0,
      "fatfGreylist": 2,
      "secrecyJurisdictions": 2,
      "riskLevel": "ELEVATED",
      "signals": [
        "2 FATF greylist jurisdictions — enhanced due diligence required",
        "2 secrecy jurisdictions — financial opacity risk"
      ]
    },
    "sanctionsHits": {
      "score": 89,
      "ofacHits": 2,
      "openSanctionsHits": 6,
      "interpolHits": 0,
      "hitLevel": "CONFIRMED_HIT",
      "signals": [
        "2 strong OFAC SDN matches — potential sanctions violation",
        "Appears on 4 sanctions lists — multi-jurisdictional exposure",
        "Hit across 2 databases — corroborated sanctions exposure"
      ]
    }
  },
  "rawDataSummary": {
    "ofacResults": [...],
    "openSanctionsResults": [...],
    "interpolResults": [],
    "corporateRecords": [...],
    "ukCompaniesHouse": [],
    "leiRecords": [],
    "canadaCorporations": [],
    "australiaABN": []
  },
  "metadata": {
    "subActorsRun": 8,
    "scoringModels": [
      "ownershipChain",
      "directorNetwork",
      "jurisdictionalRisk",
      "sanctionsHits",
      "compositeEvasion"
    ],
    "dataSourceCounts": {
      "ofac-sanctions-search": 2,
      "opensanctions-search": 6,
      "interpol-red-notices": 0,
      "opencorporates-search": 11,
      "uk-companies-house": 0,
      "gleif-lei-lookup": 0,
      "canada-corporation-search": 1,
      "australia-abn-lookup": 0
    }
  }
}

Output fields

FieldTypeDescription
entitystringEntity name as submitted for screening
entityTypestringEntity type used for the run: "person", "company", or "any"
jurisdictionstring or nullJurisdiction filter applied, or null if none
analysisTimestampstringISO 8601 timestamp of when the analysis ran
compositeScorenumberWeighted composite risk score (0-100); higher = greater sanctions evasion risk
verdictstringFive-tier verdict: CLEARED, LOW_RISK, ENHANCED_DUE_DILIGENCE, HIGH_RISK, or BLOCK_TRANSACTION
allSignalsstring[]All risk signals detected across all four scoring models, in descending risk order
recommendationsstring[]Actionable compliance recommendations triggered by scoring thresholds
scoring.ownershipChain.scorenumberOwnership chain opacity score (0-100)
scoring.ownershipChain.nestingDepthnumberNumber of corporate nesting indicators detected
scoring.ownershipChain.secrecyJurisdictionsnumberCount of secrecy jurisdiction registrations found
scoring.ownershipChain.shellIndicatorsnumberCount of shell company indicators (nominee directors, zero filings, generic names)
scoring.ownershipChain.chainLevelstringOpacity level: TRANSPARENT, MINOR_COMPLEXITY, OPAQUE, HIGHLY_LAYERED, EVASION_PATTERN
scoring.ownershipChain.signalsstring[]Specific signals detected by ownership chain analysis
scoring.directorNetwork.scorenumberDirector network risk score (0-100)
scoring.directorNetwork.nomineePatternsnumberCount of nominee/agent director roles detected
scoring.directorNetwork.crossDirectorshipsnumberNumber of individuals appearing across multiple entities
scoring.directorNetwork.networkLevelstringNetwork risk level: CLEAN, MINOR_FLAGS, SUSPICIOUS, HIGH_RISK, NOMINEE_NETWORK
scoring.directorNetwork.signalsstring[]Specific signals from director network analysis
scoring.jurisdictionalRisk.scorenumberJurisdictional risk score (0-100)
scoring.jurisdictionalRisk.fatfBlacklistnumberCount of FATF blacklisted jurisdiction connections
scoring.jurisdictionalRisk.fatfGreylistnumberCount of FATF greylist jurisdiction connections
scoring.jurisdictionalRisk.secrecyJurisdictionsnumberCount of financial secrecy jurisdiction connections
scoring.jurisdictionalRisk.riskLevelstringRisk tier: LOW_RISK, MODERATE, ELEVATED, HIGH_RISK, BLACKLISTED
scoring.sanctionsHits.scorenumberSanctions database hit score (0-100)
scoring.sanctionsHits.ofacHitsnumberNumber of OFAC SDN result records returned
scoring.sanctionsHits.openSanctionsHitsnumberNumber of OpenSanctions records returned
scoring.sanctionsHits.interpolHitsnumberNumber of Interpol Red Notice matches returned
scoring.sanctionsHits.hitLevelstringMatch strength: CLEAR, PARTIAL_MATCH, POTENTIAL_MATCH, STRONG_MATCH, CONFIRMED_HIT
rawDataSummary.ofacResultsobject[]Up to 20 raw OFAC SDN result records
rawDataSummary.openSanctionsResultsobject[]Up to 20 raw OpenSanctions records
rawDataSummary.interpolResultsobject[]Up to 15 raw Interpol Red Notice records
rawDataSummary.corporateRecordsobject[]Up to 20 OpenCorporates records
rawDataSummary.ukCompaniesHouseobject[]Up to 15 UK Companies House records
rawDataSummary.leiRecordsobject[]Up to 15 GLEIF LEI records
rawDataSummary.canadaCorporationsobject[]Up to 15 Canada corporation records
rawDataSummary.australiaABNobject[]Up to 15 Australia ABN records
metadata.subActorsRunnumberAlways 8 — number of data source actors queried
metadata.scoringModelsstring[]List of scoring models applied
metadata.dataSourceCountsobjectRecord count per data source

How much does it cost to run sanctions network analysis?

Sanctions Network Analysis uses pay-per-run pricing. Each run launches 8 sub-actors in parallel, consuming approximately $0.08-$0.15 in platform credits depending on how many registry hits exist for the entity. The free Apify tier includes $5 of monthly credits — enough for 33-62 screenings per month at no cost.

ScenarioRunsEstimated cost per runTotal cost
Quick test1$0.10$0.10
Small batch10$0.10$1.00
Weekly re-screen50$0.10$5.00
Quarterly portfolio200$0.10$20.00
Enterprise batch1,000$0.10$100.00

You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.

Compare this to World-Check or Refinitiv Screening API at $2,000-$15,000/year — with this actor, 1,000 screenings cost $100 with no subscription, no minimum commitment, and direct programmatic access via the Apify API.

Sanctions network analysis using the API

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/sanctions-network-analysis").call(run_input={
    "entityName": "Meridian Global Holdings",
    "entityType": "company",
    "jurisdiction": "British Virgin Islands"
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"Entity: {item['entity']}")
    print(f"Verdict: {item['verdict']} (score: {item['compositeScore']}/100)")
    for signal in item.get("allSignals", []):
        print(f"  Signal: {signal}")
    for rec in item.get("recommendations", []):
        print(f"  Action: {rec}")

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/sanctions-network-analysis").call({
    entityName: "Meridian Global Holdings",
    entityType: "company",
    jurisdiction: "British Virgin Islands"
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    console.log(`Entity: ${item.entity}`);
    console.log(`Verdict: ${item.verdict} (${item.compositeScore}/100)`);
    console.log(`Signals: ${item.allSignals.join(" | ")}`);
    if (item.verdict === "BLOCK_TRANSACTION") {
        console.log("ACTION REQUIRED: Transaction blocked — escalate to compliance team");
    }
}

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~sanctions-network-analysis/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "entityName": "Meridian Global Holdings",
    "entityType": "company",
    "jurisdiction": "British Virgin Islands"
  }'

# Fetch results (replace DATASET_ID from the run response above)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

How Sanctions Network Analysis works

Phase 1: Parallel data collection across 8 sources

The actor dispatches all 8 sub-actor calls simultaneously using Promise.all(), with each sub-actor allocated 512 MB memory and a 120-second timeout. This means the total data collection time equals the slowest single source, not the sum of all sources. The 8 sources queried are: OFAC SDN list (US Treasury), OpenSanctions (aggregates 100+ international sanctions and watchlists), Interpol Red Notices (international arrest requests), OpenCorporates (global corporate registry with 200M+ companies), UK Companies House, GLEIF LEI global identifier registry, Canada Corporations, and Australia ABN/ASIC.

If any sub-actor fails or times out, its result set defaults to an empty array and scoring continues with the available data. The metadata.dataSourceCounts field in the output records exactly how many results each source returned, so you can identify data gaps in any specific run.

Phase 2: Four independent scoring algorithms

Ownership Chain Opacity (25% weight) processes all corporate registry records through four sub-scores: nesting indicators (LLPs, trusts, foundations, dissolved entities score 4 points each, capped at 30), shell company indicators (single director, zero filings on aged entities, "Holdings/International/Group/Ventures" in name score 3 points each, capped at 25), GLEIF LEI chain analysis including lapsed/retired registrations (capped at 25, with a 15-point gap penalty for entities with corporate records but no LEI), and multi-jurisdiction complexity with a threshold amplifier for 4+ jurisdictions (capped at 20). The five chain levels map to score ranges: TRANSPARENT (0-19), MINOR_COMPLEXITY (20-39), OPAQUE (40-59), HIGHLY_LAYERED (60-79), EVASION_PATTERN (80+).

Director Network (15% weight) builds a director frequency map across all corporate records using normalized lowercase name matching. Cross-directorships (2+ entities) score 5 points each, with a 3-point bonus for individuals appearing across 5+ entities (capped at 35 total). Nominee/agent roles score 4 points each. Shared registered address clusters score 8 points each (capped at 25). Rapid incorporation bursts (multiple entities within 30 days by date sort) score 6 points each (capped at 25). A convergence amplifier of up to 15 additional points fires when cross-directorships and nominee patterns appear together.

Jurisdictional Risk (25% weight) checks all jurisdiction fields (including GLEIF legalAddress.country) against three lists: the FATF blacklist of 4 prohibited countries (15 points per hit, capped at 35), the 26-country FATF enhanced-monitoring greylist (8 points per hit, capped at 25), and 18 financial secrecy jurisdictions including BVI, Cayman Islands, Panama, Seychelles, Marshall Islands, Jersey, Guernsey, Isle of Man, Liechtenstein, and others (6 points per hit, capped at 25). A cascade amplifier of up to 15 points fires when blacklist and secrecy jurisdiction exposure appear in the same entity.

Sanctions Hits (35% weight) scores OFAC results by parsing match scores and SDN type fields — records with match scores of 90+ or SDN types of "individual" or "entity" count as strong hits (10 points each, capped at 35, plus 3 points per raw result). OpenSanctions results extract datasets or sources arrays to count distinct sanctions regimes (capped at 30 total). Interpol hits score 10 points each (capped at 20). Cross-database correlation (same entity hitting 2+ of the 3 sources) adds 5 points per database (capped at 15).

Phase 3: Composite scoring and verdict assignment

The composite score is a weighted sum: (sanctionsHits × 0.35) + (ownershipChain × 0.25) + (jurisdictionalRisk × 0.25) + (directorNetwork × 0.15), rounded to the nearest integer. Verdicts map to score ranges: CLEARED (0-14), LOW_RISK (15-34), ENHANCED_DUE_DILIGENCE (35-54), HIGH_RISK (55-74), BLOCK_TRANSACTION (75+).

Two hard overrides bypass the numeric score: if sanctionsHits.hitLevel === "CONFIRMED_HIT" or if interpolHits > 0, the verdict is forced to BLOCK_TRANSACTION. This prevents an entity with confirmed sanctions designations from receiving a verdict below the block threshold due to clean ownership structure scores.

Tips for best results

  1. Use the official registered legal name, not trade names. Corporate registries match on registered entity names. A search for "Apple" will match hundreds of unrelated entities; "Apple Inc" or "Apple Computers Limited" narrows to the intended target.

  2. Always check the metadata.dataSourceCounts field. If a key source like opencorporates-search returned 0 results, the ownership chain and director network scores will be based on fewer data points. Consider re-running with the official registered name or jurisdiction added.

  3. Treat ENHANCED_DUE_DILIGENCE verdicts as triggers for manual follow-up. The scoring is algorithmic and based on available public registry data. Scores in the 35-54 range warrant a compliance analyst reviewing the raw data in rawDataSummary before making a proceed/decline decision.

  4. Screen beneficial owners separately. This actor screens the named entity. If you know the entity has a complex ownership structure, submit each intermediate holding company and each known beneficial owner as separate runs to build the full network picture.

  5. Schedule re-screens for active counterparties. Sanctions designations happen continuously. Use Apify's scheduling feature to re-run critical counterparties weekly or monthly — automated re-screening is far cheaper than missing a new designation.

  6. Use the jurisdiction parameter for common names. Names like "Global Trading Ltd" or "International Holdings" return many unrelated hits across registries. Adding "jurisdiction": "United Kingdom" or the specific country of incorporation filters registry results to the relevant entity.

  7. Combine with OFAC-specific actors for high-risk hits. When this actor returns BLOCK_TRANSACTION or CONFIRMED_HIT, use the OFAC Sanctions Search actor directly to retrieve the full SDN entry with all listed aliases, addresses, and identifier numbers for your compliance file.

Combine with other Apify actors

ActorHow to combine
OFAC Sanctions SearchPull the full SDN record — all aliases, identifiers, and program details — when this actor returns a CONFIRMED_HIT or BLOCK_TRANSACTION verdict
OpenSanctions SearchRun targeted multi-list screening with additional entity context (birth date, ID numbers) to refine a PARTIAL_MATCH verdict into a confirmed hit or false positive
Company Deep ResearchGenerate a full intelligence report on the entity when the ownership chain score is elevated — combines news, litigation, and regulatory history
WHOIS Domain LookupCross-reference domain ownership for entities operating websites — reveals additional registered addresses and contact persons not in corporate registries
AML Entity ScreeningRun before this actor as a rapid pre-filter — flag obvious hits for full network analysis and clear low-risk entities without incurring the full 8-source cost
Waterfall Contact EnrichmentEnrich director names detected in the network analysis with contact and background information for investigative follow-up
HubSpot Lead PusherPush the compliance verdict and score into your CRM or case management system for audit trail documentation

Limitations

  • Public registry coverage only — the actor queries publicly available corporate registration data. Private companies in jurisdictions without mandatory public disclosure (many US states, many offshore jurisdictions) will have minimal or no corporate records returned.
  • Name-based matching — all queries use the entity name as submitted. Misspellings, transliterations (Cyrillic, Arabic, Chinese names), and aliases are not automatically resolved. For individuals with non-Latin names, try multiple transliteration variants as separate runs.
  • OFAC match scoring depends on source data quality — match score fields in OFAC results vary in completeness. The scoring algorithm uses available fields but cannot guarantee detection of all fuzzy name matches across OFAC's 12,000+ SDN entries.
  • No real-time sanctions list updates — the underlying data sources (OFAC, OpenSanctions) update on their own schedules. OFAC updates the SDN list multiple times per week; OpenSanctions aggregates updates daily. Results reflect data available at the time of the run.
  • OpenSanctions covers 100+ lists but not all global regimes — some regional or bilateral sanctions programs may not be included in the OpenSanctions dataset. For comprehensive coverage of EU, UN, UK, and US sanctions, coverage is strong; some Asian and African regional lists may be incomplete.
  • Director network analysis requires structured registry data — the director frequency mapping works on officer/director arrays within corporate records. Registries that return flat records without officer details will not contribute to the director network score.
  • Corporate registry depth varies by jurisdiction — UK Companies House and OpenCorporates return detailed officer data. Canada and Australia ABN returns are less detailed. GLEIF provides LEI chain data but not officer-level detail.
  • Not a substitute for regulated screening tools — this actor is a due diligence aid. Organizations subject to regulatory sanctions screening obligations (US banks under OFAC jurisdiction, EU financial institutions under EU sanctions law) should use this alongside, not instead of, their regulated compliance screening programs.

Integrations

  • Zapier — trigger a sanctions screening run automatically when a new counterparty record is created in your CRM, and push the verdict back to a deal or contact field
  • Make — build multi-step compliance workflows: run screening, parse the verdict, send a Slack alert for BLOCK_TRANSACTION, and log the result to a Google Sheet
  • Google Sheets — export batch screening results for compliance teams who prefer spreadsheet-based review and sign-off workflows
  • Apify API — integrate programmatic screening into internal onboarding systems, KYC platforms, or case management tools via direct HTTP calls
  • Webhooks — push real-time notifications to compliance case management systems when a run completes with a BLOCK_TRANSACTION or HIGH_RISK verdict
  • LangChain / LlamaIndex — feed the structured JSON report into an LLM compliance assistant to generate narrative risk summaries or answer analyst questions about a specific entity's network

Troubleshooting

  • All scoring models return 0 despite the entity being sanctioned — this typically means the name query returned no results across all 8 sources. Check that you used the exact registered legal name (not a common name or trade name). Review metadata.dataSourceCounts in the output — if all counts are 0, try a different name variant or add a jurisdiction parameter.

  • Composite score is low but you know the entity has sanctions connections — the composite score reflects the data returned from public sources. If the sanctioned entity operates through nominees and secrecy jurisdictions that are not yet linked to their registered names in public registries, those connections will not score. Use the raw OFAC or OpenSanctions actors directly with known aliases and identifier numbers for deeper investigation.

  • Run takes longer than 5 minutes — if one of the 8 sub-actors is querying a slow external API, the 120-second per-actor timeout eventually terminates it and returns partial results. The run will still complete and the output will note 0 results for any timed-out source. Retry the run during off-peak hours or check the actor log for which source caused the delay.

  • Interpol override triggers BLOCK_TRANSACTION but you believe it is a false positive — Interpol Red Notice matching is based on name similarity. Common names may produce false positive hits from unrelated individuals on Red Notice lists. When the Interpol override fires, review the raw interpolResults in rawDataSummary — check birth dates, nationalities, and physical descriptions against the entity you are screening before escalating.

  • GLEIF LEI lookup returns 0 results for a known large company — some major companies have LEI registrations under subsidiary names or holding company names that differ from their trading name. Try the parent entity name or the registered legal name from their annual report. A zero LEI result on a verifiable large company is not necessarily an opacity signal — the 15-point gap penalty only applies when corporate registry records exist alongside the LEI absence.

Responsible use

  • This actor queries publicly available sanctions lists, corporate registry data, and law enforcement notices.
  • Do not use screening results to take adverse action against individuals without independent verification by qualified compliance personnel.
  • Comply with applicable data protection laws (GDPR, CCPA) when storing or processing screening results containing personal data about individuals.
  • Sanctions screening obligations vary by jurisdiction and institution type — consult qualified legal counsel to determine your organization's specific regulatory requirements.
  • False positives are possible for common names. Automated verdicts should be reviewed by a compliance professional before blocking transactions or denying services.
  • For guidance on web scraping and data use legality, see Apify's guide.

FAQ

How is sanctions network analysis different from simple sanctions name screening? Simple name screening checks whether a name appears on a list. This actor goes further by analyzing the corporate ownership structure, director networks, and jurisdictional patterns around an entity to detect evasion schemes where sanctioned individuals hide behind layers of nominee directors, offshore holding companies, and secrecy jurisdiction registrations. The ownership chain and director network scores surface structural red flags that a name-only check cannot detect.

What sanctions databases does this actor search? The actor queries three sanctions and enforcement sources: the US Treasury OFAC SDN (Specially Designated Nationals) list, OpenSanctions (which aggregates 100+ international sanctions programs including EU, UN, UK OFSI, and dozens of national lists), and Interpol Red Notices. Corporate registry data comes from OpenCorporates, UK Companies House, GLEIF LEI, Canada Corporations, and Australia ABN.

What FATF blacklist and greylist countries are covered? The FATF blacklist includes North Korea (DPRK), Iran, Myanmar (Burma), and Syria. The greylist covers 26 countries under FATF enhanced monitoring at the time of the last scoring update, including Albania, Burkina Faso, Haiti, Nigeria, Panama, Philippines, South Africa, Turkey, UAE, Vietnam, and Yemen among others. Secrecy jurisdictions include 18 locations: Cayman Islands, BVI, Panama, Seychelles, Marshall Islands, Jersey, Guernsey, Isle of Man, Liechtenstein, Luxembourg, Bahamas, Bermuda, Turks and Caicos, Mauritius, Vanuatu, Samoa, and Belize.

When does the actor issue a BLOCK_TRANSACTION verdict? A BLOCK_TRANSACTION verdict is issued in three cases: when the composite risk score reaches 75 or above, when the sanctions hit level reaches CONFIRMED_HIT (strong OFAC SDN match or extensive OpenSanctions exposure), or when any Interpol Red Notice match is returned. The Interpol and CONFIRMED_HIT overrides apply regardless of the numeric score.

How accurate is the sanctions hit scoring? Accuracy depends on the quality of name matching in the underlying source APIs. OFAC and OpenSanctions return match score fields where available, and the scoring algorithm weights results with match scores of 90+ more heavily. For common names, false positives are possible — review the rawDataSummary.ofacResults fields including listed aliases, identifiers, and program names to confirm a match against the entity you are screening.

Can I screen a batch of entities in one run? The current actor screens one entity per run. To screen multiple counterparties, trigger multiple actor runs in parallel via the Apify API — there is no batch input at the actor level. For large batches, use the Python or JavaScript client to submit runs concurrently and collect results as they complete.

How long does a typical sanctions network analysis run take? Most runs complete in 2-4 minutes. The actor launches all 8 sub-actors in parallel using Promise.all(), so runtime is determined by the slowest single source, not the sum of all sources. Entities with many corporate registry hits (large international conglomerates) take longer than entities with few records.

Is it legal to run sanctions screening using public data sources? Querying publicly available government sanctions lists (OFAC, OpenSanctions) and corporate registries (Companies House, OpenCorporates, GLEIF) is legal in all major jurisdictions and is specifically encouraged by regulatory bodies as part of AML/CFT compliance programs. See Apify's guide on web scraping legality for general guidance.

Can I use this actor to satisfy my organization's regulatory sanctions screening obligations? This actor is a due diligence aid based on public data sources. Organizations subject to regulatory sanctions compliance obligations (US financial institutions under OFAC jurisdiction, EU entities under EU sanctions law, UK entities under OFSI) should use this alongside their regulated compliance screening programs, not as a standalone replacement. Consult qualified legal counsel regarding your specific obligations.

What happens if a data source is unavailable during a run? Each sub-actor runs within a 120-second timeout. If a source fails or times out, its result defaults to an empty array and the run continues with available data. The scoring algorithms handle empty result sets — they score 0 for missing sources rather than failing the run. Check metadata.dataSourceCounts in the output to see which sources returned data.

How do I interpret an ENHANCED_DUE_DILIGENCE verdict? A score in the 35-54 range indicates structural risk factors present — ownership complexity, some jurisdictional exposure, or partial name overlaps with sanctions lists — but insufficient evidence for a block recommendation. This is a trigger for manual analyst review of the rawDataSummary data, not an automatic proceed or decline. Common next steps include requesting beneficial ownership documentation, running the identified directors as separate entities, and consulting additional proprietary data sources.

Can I schedule this actor to re-screen counterparties automatically? Yes. Use Apify's built-in scheduling feature to run the actor on a weekly or monthly schedule for ongoing counterparty monitoring. Combine with webhooks to push BLOCK_TRANSACTION or HIGH_RISK alerts to your compliance team automatically when a re-screen detects a new designation.

Help us improve

If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:

  1. Go to Account Settings > Privacy
  2. Enable Share runs with public Actor creators

This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try Sanctions Network Analysis?

Start for free on Apify. No credit card required.

Open on Apify Store