AIDEVELOPER TOOLS

Vessel Compliance Report

Vessel compliance report covering sanctions screening, port disruption, trade route risk, counterparty verification, and flag state analysis — all in one automated run. Built for shipping compliance officers, marine insurers, trade finance teams, and commodity traders who need structured vessel risk intelligence without enterprise software subscriptions.

Try on Apify Store
$0.50per event
0
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

Vessel compliance report covering sanctions screening, port disruption, trade route risk, counterparty verification, and flag state analysis — all in one automated run. Built for shipping compliance officers, marine insurers, trade finance teams, and commodity traders who need structured vessel risk intelligence without enterprise software subscriptions.

The actor queries 8 data sources in parallel — OFAC SDN lists, OpenSanctions, UN Comtrade, NOAA weather alerts, GDACS disasters, OpenCorporates, GLEIF LEI, and live weather forecasts — and synthesizes results into five independent scoring models with a weighted composite score and a clear shipping verdict.

What data can you extract?

Data PointSourceExample
🔢 Composite risk scoreAll 8 sources62 (0-100 scale)
⚖️ Shipping verdictScoring engineHIGH_RISK
🚩 OFAC SDN matchesOFAC sanctions2 SDN matches — OFAC blocked entity
🌐 OpenSanctions hitsMulti-list watchlists3 OpenSanctions hits across multiple watchlists
🌀 Port disruption riskNOAA + GDACSADVISORY — 2 maritime weather alerts
📊 Trade route HHI scoreUN Comtrade2800 — highly concentrated routes
🏳️ Flag of convenienceOpenCorporates + LEItrue — Panama registration
✅ LEI verificationGLEIF LEI lookupVerified / Not found
🏢 Counterparty risk levelCorporate registrySUSPICIOUS
⚠️ Risk signalsAll sourcesArray of specific risk flags
📋 RecommendationsScoring engineActionable compliance steps
🕒 Run metadataActor engineTimestamp, actors queried, data points

Why use Vessel Compliance Report?

Manual maritime compliance research means opening five or six systems — OFAC's search tool, a corporate registry, a weather service, a sanctions database — collating results into a spreadsheet, and forming a judgment. For a single vessel, that process takes 45 minutes to two hours. At scale, it's simply not viable without expensive enterprise contracts.

Commercial maritime intelligence platforms like Windward or Pole Star charge $20,000–$80,000 per year for comparable screening capabilities. This actor performs the same cross-source analysis for a fraction of that cost, with no subscription lock-in, structured JSON output, and direct API access for integration into your existing compliance workflows.

  • Scheduling — run daily vessel screens automatically to catch newly listed entities before cargo moves
  • API access — trigger runs from Python, JavaScript, or any HTTP client to integrate with your TMS or compliance platform
  • Parallel processing — all 8 data sources are queried simultaneously, keeping runs under 90 seconds
  • Monitoring — receive Slack or email alerts when a vessel you track scores above a threshold
  • Integrations — push results to Google Sheets, HubSpot, Zapier, or any webhook endpoint

Features

  • OFAC SDN screening with match scoring — queries the Specially Designated Nationals list, weights hits by match score (80+ triggers SDN classification), applies bonus scoring for multi-dataset matches from OFAC vs. OpenSanctions
  • OpenSanctions multi-list cross-reference — detects entities appearing across EU, UN, UK, and dozens of national authority lists simultaneously, with bonus scoring for multi-list presences
  • HHI trade route concentration analysis — calculates Herfindahl-Hirschman Index from UN Comtrade bilateral trade data; scores above 2500 indicate route concentration warranting diversification
  • Sanctioned trade route detection — cross-references UN Comtrade partner countries against 13 high-risk jurisdictions (Iran, DPRK, Russia, Syria, Cuba, Crimea, Venezuela, Myanmar, Belarus, Yemen, Libya, Somalia, plus others) to flag route-level sanctions exposure
  • 23 flags-of-convenience detection — checks corporate registry jurisdictions against Panama, Liberia, Marshall Islands, Bahamas, Malta, Bermuda, Comoros, Cambodia, Belize, Honduras, and 13 additional known flag states
  • NOAA maritime weather threat classification — filters 12 maritime threat types (hurricane, tropical storm, storm surge, gale, tsunami, flood, cyclone, typhoon, fog) from the full NOAA alert feed; weights extreme and severe alerts separately
  • GDACS disaster proximity scoring — detects floods, storms, cyclones, tsunamis, and earthquakes near shipping lanes from the Global Disaster Alert and Coordination System; red/orange alert levels score higher
  • LEI counterparty verification — checks GLEIF for a valid Legal Entity Identifier; active LEI clears counterparty risk, missing LEI adds 25 risk points, lapsed LEI adds 10
  • Corporate opacity analysis — scores dissolved/inactive entities, zero-filing companies, LLP/trust/foundation/nominee structures, and flag-of-convenience incorporations from OpenCorporates data
  • Weighted composite scoring — vessel sanctions (30%), trade route compliance (25%), counterparty risk (20%), port disruption (15%), and flag state (10%) combine into a 0-100 composite score
  • Five-tier verdicts — CLEAR_TO_PROCEED, PROCEED_WITH_CAUTION, ENHANCED_REVIEW, HIGH_RISK, and DO_NOT_ENGAGE map to composite score bands
  • Actionable recommendations — six recommendation types generated automatically based on which scoring thresholds are breached

Use cases for vessel compliance report

Shipping sanctions compliance screening

Compliance officers at freight forwarders, ship operators, and cargo owners need to verify that vessels, owners, and charterers are not on OFAC, EU, or UN sanctions lists before cargo is loaded. Manually checking each entity across multiple government portals is time-consuming and prone to error. This actor automates that process — screening against OFAC SDN and OpenSanctions simultaneously, with a structured risk level and clear PROCEED or DO_NOT_ENGAGE verdict for each entity.

Marine insurance underwriting

Underwriters need a consolidated risk profile before binding coverage on a vessel or cargo shipment. A vessel registered in a flag-of-convenience jurisdiction, trading routes with high HHI concentration, with no LEI and a partially dissolved corporate ownership chain represents materially different risk than a clean counterparty. This actor assembles that five-dimension risk profile in under 90 seconds, giving underwriters a structured data point for pricing decisions.

Trade finance and letters of credit

Banks and trade finance providers are required by BSA/AML and OFAC regulations to verify that the vessel, counterparty, and trade route involved in a letter of credit are not sanctions-exposed. This actor delivers the OFAC screening, OpenSanctions multi-list check, LEI verification, and trade route compliance analysis required for that review — in a single API call that integrates directly into loan origination or LC processing workflows.

Commodity trader freight due diligence

Commodity traders committing to freight contracts need confidence that the vessel and shipping counterparty won't create compliance exposure during cargo transit. A vessel operating on concentrated routes through sanctioned jurisdictions — or owned via a complex multi-jurisdiction corporate chain — carries hidden risk. This actor surfaces those signals in structured form before the contract is signed.

Port authority vessel pre-screening

Port authorities managing inbound vessel traffic can use this actor to pre-screen vessels by name or IMO number before berth allocation. Flags of convenience, sanctions hits, and dissolved corporate ownership chains are all visible before the vessel arrives, allowing authorities to request additional documentation or deny entry earlier in the process.

KYC/AML counterparty verification

Financial institutions conducting Know Your Customer reviews for maritime counterparties can use this actor as a first-pass screening tool. The LEI lookup, OpenCorporates corporate registry check, OFAC SDN screening, and OpenSanctions multi-list analysis cover the primary data sources required for a basic KYC layer, with structured output that feeds directly into case management systems.

How to run a vessel compliance report

  1. Enter the vessel name or company — type the vessel name (e.g., "MSC Geneva"), shipping company name (e.g., "Pacific Basin Shipping"), or any entity involved in the transaction. This is the only required field.
  2. Add the IMO number for precision — if you have the vessel's IMO number (e.g., "9811000"), enter it. The actor appends it to search queries so sanctions databases match the specific vessel rather than similarly named entities.
  3. Specify the flag state or region — optionally enter the flag state ("Panama") or operating region ("Mediterranean") to focus the weather and trade route analysis on the relevant geographic area.
  4. Run the actor and download results — click "Start" and wait approximately 60-90 seconds. Download the full compliance report from the Dataset tab in JSON, CSV, or Excel format.

Input parameters

ParameterTypeRequiredDefaultDescription
querystringYesVessel name, shipping company, or entity to investigate (e.g., "MSC Geneva", "Pacific Basin Shipping")
imostringNoIMO number for precise vessel identification (e.g., "9811000"). Appended to search queries for sanctions matching.
flagstringNoFlag state or operating region to focus weather and trade route analysis (e.g., "Panama", "Persian Gulf")

Input examples

Standard vessel screen with IMO number:

{
  "query": "MSC Geneva",
  "imo": "9811000",
  "flag": "Panama"
}

Shipping company compliance check:

{
  "query": "Shandong Shipping Corporation",
  "flag": "Yellow Sea"
}

Minimal — name only:

{
  "query": "Caspian Trader"
}

Input tips

  • Include the IMO number when available — sanctions databases can contain multiple vessels with similar names; the IMO number anchors the search to the correct entity and reduces false positives
  • Use the flag or region field for weather-sensitive routes — entering "Persian Gulf", "South China Sea", or "North Atlantic" gives NOAA and GDACS queries a geographic anchor for more relevant disruption alerts
  • Screen by company, not just vessel — shipping companies own multiple vessels; screening the operator name catches sanctions exposure across the entire fleet, not just one hull
  • For bulk screening, use the API — call the actor programmatically in a loop using vessel names from your TMS or booking system; each run analyzes one entity independently

Output example

{
  "entity": "Shandong Pioneer",
  "compositeScore": 71,
  "verdict": "HIGH_RISK",
  "vesselSanctions": {
    "score": 58,
    "sanctionHits": 3,
    "flagRisk": 20,
    "jurisdictionRisk": 16,
    "riskLevel": "HIGH",
    "signals": [
      "2 SDN matches — OFAC blocked entity",
      "1 OpenSanctions hits across multiple watchlists",
      "Flag-of-convenience / high-risk jurisdiction detected"
    ]
  },
  "portDisruption": {
    "score": 22,
    "severeAlerts": 2,
    "disasterCount": 1,
    "weatherRisk": 7,
    "riskLevel": "WATCH",
    "signals": [
      "2 maritime weather alerts active"
    ]
  },
  "tradeRoute": {
    "score": 65,
    "tradePartners": 3,
    "concentrationHHI": 2900,
    "sanctionedRoutes": 1,
    "complianceLevel": "HIGH_RISK",
    "signals": [
      "HHI 2900 — highly concentrated trade routes",
      "1 trade routes involve sanctioned jurisdictions",
      "Only 3 trade partners — high route dependency"
    ]
  },
  "counterparty": {
    "score": 45,
    "corporateOpacity": 18,
    "leiVerified": false,
    "sanctionFlags": 2,
    "riskLevel": "REVIEW",
    "signals": [
      "No LEI found — counterparty not globally identified",
      "2 sanctions/watchlist matches"
    ]
  },
  "flagState": {
    "score": 65,
    "flagOfConvenience": true,
    "highRiskJurisdiction": true,
    "riskLevel": "HIGH",
    "signals": [
      "Registered in high-risk jurisdiction (sanctions concern)",
      "Flag-of-convenience registration — weak regulatory oversight"
    ]
  },
  "allSignals": [
    "2 SDN matches — OFAC blocked entity",
    "1 OpenSanctions hits across multiple watchlists",
    "Flag-of-convenience / high-risk jurisdiction detected",
    "2 maritime weather alerts active",
    "HHI 2900 — highly concentrated trade routes",
    "1 trade routes involve sanctioned jurisdictions",
    "Only 3 trade partners — high route dependency",
    "No LEI found — counterparty not globally identified",
    "2 sanctions/watchlist matches",
    "Registered in high-risk jurisdiction (sanctions concern)",
    "Flag-of-convenience registration — weak regulatory oversight"
  ],
  "recommendations": [
    "Immediate sanctions compliance review required — potential OFAC violation",
    "Highly concentrated trade route — diversify shipping partners",
    "Trade routes involve sanctioned jurisdictions — ensure proper licensing",
    "Counterparty verification failed — enhanced due diligence required",
    "Flag-of-convenience vessel — verify insurance coverage and regulatory compliance"
  ],
  "metadata": {
    "query": "Shandong Pioneer",
    "imo": "9436112",
    "flag": "Yellow Sea",
    "timestamp": "2026-03-20T09:14:22.000Z",
    "actorsQueried": 8,
    "totalDataPoints": 63
  }
}

Output fields

FieldTypeDescription
entitystringThe vessel name or entity submitted as input
compositeScorenumberWeighted composite risk score 0-100 (higher = more risk)
verdictstringOverall verdict: CLEAR_TO_PROCEED, PROCEED_WITH_CAUTION, ENHANCED_REVIEW, HIGH_RISK, or DO_NOT_ENGAGE
vesselSanctions.scorenumberSanctions sub-score 0-100 (30% weight in composite)
vesselSanctions.sanctionHitsnumberTotal OFAC + OpenSanctions hits combined
vesselSanctions.flagRisknumberFlag state risk component (0-25)
vesselSanctions.jurisdictionRisknumberCorporate chain jurisdiction risk (0-20)
vesselSanctions.riskLevelstringCLEAR, LOW, MEDIUM, HIGH, or CRITICAL
vesselSanctions.signalsarraySpecific sanctions signal descriptions
portDisruption.scorenumberPort disruption sub-score 0-100 (15% weight)
portDisruption.severeAlertsnumberMaritime weather alerts from NOAA matching threat types
portDisruption.disasterCountnumberGDACS disaster events in the region
portDisruption.weatherRisknumberCombined forecast and compound weather score
portDisruption.riskLevelstringCALM, WATCH, ADVISORY, WARNING, or EXTREME
tradeRoute.scorenumberTrade route compliance sub-score 0-100 (25% weight)
tradeRoute.tradePartnersnumberNumber of distinct trade partners from UN Comtrade
tradeRoute.concentrationHHInumberHerfindahl-Hirschman Index (0-10000); above 2500 = highly concentrated
tradeRoute.sanctionedRoutesnumberNumber of trade routes through sanctioned jurisdictions
tradeRoute.complianceLevelstringCOMPLIANT, LOW_RISK, REVIEW_NEEDED, HIGH_RISK, or NON_COMPLIANT
counterparty.scorenumberCounterparty risk sub-score 0-100 (20% weight)
counterparty.corporateOpacitynumberCorporate opacity component score (0-30)
counterparty.leiVerifiedbooleanWhether a valid LEI was found in GLEIF
counterparty.sanctionFlagsnumberCombined sanctions flag count from OFAC and OpenSanctions
counterparty.riskLevelstringVERIFIED, LOW_RISK, REVIEW, SUSPICIOUS, or BLOCK
flagState.scorenumberFlag state sub-score 0-100 (10% weight)
flagState.flagOfConveniencebooleanWhether the entity is registered in a flag-of-convenience jurisdiction
flagState.highRiskJurisdictionbooleanWhether the entity is in a high-risk sanctions jurisdiction
flagState.riskLevelstringLOW, MODERATE, ELEVATED, HIGH, or CRITICAL
allSignalsarrayConsolidated list of all risk signals from all five scoring models
recommendationsarrayActionable compliance recommendations based on triggered thresholds
metadata.querystringOriginal input query
metadata.imostring|nullIMO number if provided
metadata.flagstring|nullFlag state or region if provided
metadata.timestampstringISO 8601 run timestamp
metadata.actorsQueriednumberNumber of sub-actors successfully called (max 8)
metadata.totalDataPointsnumberTotal records retrieved across all data sources

How much does it cost to run a vessel compliance report?

Vessel Compliance Report uses pay-per-run pricing — each complete report costs approximately $0.10 in Apify platform credits. That covers all 8 parallel data source queries and the composite scoring.

ScenarioReportsCost per reportTotal cost
Quick test1$0.10$0.10
Daily vessel screen10$0.10$1.00
Weekly fleet review (50 vessels)50$0.10$5.00
Monthly compliance batch200$0.10$20.00
Enterprise fleet program1,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.

Windward and Pole Star charge $20,000–$80,000 per year for comparable maritime intelligence. With this actor, a team screening 200 vessels per month spends $20 — no annual contract, no seat licensing, no API rate tiers.

Vessel compliance report using the API

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/vessel-compliance-report").call(run_input={
    "query": "Pacific Basin Shipping",
    "imo": "9436112",
    "flag": "Hong Kong"
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"Vessel: {item['entity']} | Score: {item['compositeScore']} | Verdict: {item['verdict']}")
    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/vessel-compliance-report").call({
    query: "Pacific Basin Shipping",
    imo: "9436112",
    flag: "Hong Kong"
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    console.log(`Vessel: ${item.entity} | Score: ${item.compositeScore} | Verdict: ${item.verdict}`);
    console.log(`Signals: ${item.allSignals.join("; ")}`);
    console.log(`Recommendations: ${item.recommendations.join("; ")}`);
}

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~vessel-compliance-report/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "Pacific Basin Shipping", "imo": "9436112", "flag": "Hong Kong"}'

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

How Vessel Compliance Report works

Phase 1 — parallel data retrieval

The actor dispatches 8 sub-actor calls simultaneously using Promise.all, each with a 120-second timeout and 512 MB memory allocation. The eight sources are: OFAC Sanctions Search (SDN list), OpenSanctions Search (consolidated multi-authority watchlists), UN Comtrade Search (bilateral trade flow data), NOAA Weather Alerts, GDACS Disaster Alerts, OpenCorporates Search (corporate registry), GLEIF LEI Lookup (Legal Entity Identifier), and Weather Forecast Search. The query input is used for entity-focused lookups (OFAC, OpenSanctions, corporate registry, LEI); when an IMO number is provided, it is appended to produce queries like "MSC Geneva IMO 9811000" for more precise sanctions matching. The flag input is appended to the geographic query for weather and trade route sources.

Phase 2 — five independent scoring models

Each scoring model processes only the data from its relevant sources and returns a sub-score and risk level:

Vessel Sanctions scores OFAC SDN matches (up to 40 points — 15 per SDN match, 8 per partial match), OpenSanctions hits (5 per hit, bonus for multi-list presence), flag-of-convenience jurisdiction (up to 25 points), corporate chain jurisdictional risk (up to 20 points), and corporate opacity indicators including dissolved entities, zero-filing companies, and nominee/trust structures (up to 15 points).

Port Disruption filters NOAA alerts for 12 maritime threat keywords (hurricane, tropical, storm, tsunami, surge, gale, wind, flood, cyclone, typhoon, fog, ice) and scores by severity. GDACS events matching flood, storm, cyclone, tsunami, or earthquake types are scored by alert level (red/orange = high severity, 10 points each). Weather forecast data contributes up to 20 points based on wind speed thresholds (50+ knots = storm-class, 30+ knots = advisory-class) and visibility descriptors.

Trade Route Compliance calculates the Herfindahl-Hirschman Index from UN Comtrade bilateral trade values. HHI above 2500 scores 30 points (highly concentrated); 1500-2499 scores 20 points; 1000-1499 scores 10 points. Sanctioned route detection cross-references trade partner country names against the 13 high-risk jurisdictions list, adding 12 points per sanctioned route and 5 points per sanctioned entity. Trade partner count below 3 adds a 20-point diversity risk penalty.

Counterparty Risk applies an inverted LEI scoring model — active LEI adds 0 risk, missing LEI adds 25 points, lapsed LEI adds 10 points. Corporate opacity is scored from OpenCorporates fields (dissolved status, zero filings, opaque legal forms, flag-of-convenience incorporation), capped at 30 points. Sanctions flags from OFAC (match score 70+) and OpenSanctions add 10 points each, capped at 30 points.

Flag State checks all jurisdiction strings from OpenCorporates and GLEIF against the 23-state flags-of-convenience list and the 13-jurisdiction high-risk list. High-risk jurisdiction triggers 40 points; flag of convenience adds 25; three or more such jurisdictions in the corporate chain adds 15 more.

Phase 3 — composite scoring and output assembly

The composite score is a weighted average: (sanctions × 0.30) + (tradeRoute × 0.25) + (counterparty × 0.20) + (portDisruption × 0.15) + (flagState × 0.10). The result maps to five verdict bands: 0-19 = CLEAR_TO_PROCEED, 20-39 = PROCEED_WITH_CAUTION, 40-59 = ENHANCED_REVIEW, 60-79 = HIGH_RISK, 80-100 = DO_NOT_ENGAGE. Six recommendation types are generated by threshold — sanctions critical, weather rerouting, HHI diversification, counterparty block, flag-of-convenience insurance, and sanctioned route licensing.

Tips for best results

  1. Always provide the IMO number when you have it. IMO numbers are universally unique vessel identifiers. Including one transforms a fuzzy name match into a precise entity lookup, reducing false positives from vessels sharing similar names.

  2. Screen the operator, not just the hull. Sanctions exposure often sits at the beneficial owner or ship management company level, not the vessel itself. Run the actor against the owner, operator, and charterer separately to catch the full risk chain.

  3. Use the flag field for route-specific weather alerts. The NOAA and GDACS integrations are more useful when given a geographic anchor. "Strait of Hormuz" or "Bay of Bengal" produces more targeted alerts than leaving the field blank.

  4. Interpret HHI scores in context. An HHI above 2500 flags concentrated trade routes, but concentration is not inherently a compliance violation. Use it as a signal to ask whether the concentrated partners include sanctioned counterparties — look at tradeRoute.sanctionedRoutes alongside tradeRoute.concentrationHHI.

  5. Schedule periodic rescreens. Sanctions lists update without notice. A vessel that clears screening today may appear on the SDN list next week. Schedule recurring runs using Apify's scheduling feature to re-screen key counterparties on a weekly or monthly cadence.

  6. Use the allSignals array in your case management system. The signals array contains human-readable descriptions of every triggered condition, suitable for direct inclusion in compliance case notes or audit logs.

  7. Treat PROCEED_WITH_CAUTION as a soft hold, not clearance. Scores in the 20-39 range indicate low-level risk signals — flag-of-convenience registration, moderate trade concentration — that may be acceptable with documented justification, but should not be waved through without review.

  8. Combine with OFAC Sanctions Search for deep SDN investigation. If this actor returns a HIGH_RISK or DO_NOT_ENGAGE verdict on sanctions grounds, run the dedicated OFAC actor separately to pull full SDN entry details including program names, aliases, and associated addresses.

Combine with other Apify actors

ActorHow to combine
OFAC Sanctions SearchDrill into SDN entry details for any entity that scores HIGH on vessel sanctions — pull program names, aliases, and listed addresses for your compliance case file
OpenSanctions SearchRun a standalone OpenSanctions query to pull full dataset provenance for any watchlist hit — which EU, UN, or national authority listed the entity and when
OpenCorporates SearchTrace the full corporate ownership chain for a shipping company — beneficial owners, registered officers, and subsidiary structures not visible in the top-level query
GLEIF LEI LookupRetrieve the full LEI record for a counterparty to verify entity hierarchy, parent company, and registration status for trade finance KYC requirements
Company Due Diligence ReportRun a full company-level due diligence report on the vessel operator or charterer to supplement the counterparty risk dimension with deeper financial and regulatory intelligence
AML Entity ScreeningPair vessel compliance screening with AML entity analysis for transactions requiring full financial crime due diligence on maritime counterparties
Sanctions Network AnalysisMap the sanctions network around a flagged entity — identify connected parties, corporate relationships, and second-degree exposures beyond the direct vessel query

Limitations

  • Results depend on data source availability. Each of the 8 sub-actors calls a live external API. If a source is temporarily unavailable, that dimension returns an empty dataset and contributes zero to the composite score, which may understate actual risk. The metadata.actorsQueried field shows how many sources returned data.
  • Sanctions matching uses fuzzy text search, not biometric or vessel-registry-grade matching. Name variations, transliterations, and aliases may cause misses. Always provide the IMO number for vessel-level screening to improve match precision.
  • UN Comtrade data reflects reported trade flows at the country level, not vessel-level cargo manifests. The HHI and sanctioned route scores reflect the flag state's or region's aggregate trade patterns, not the specific vessel's cargo history.
  • NOAA and GDACS data reflects current conditions at the time of the run. For voyage planning more than 72 hours out, re-run the actor closer to departure to capture updated forecasts and disaster alerts.
  • The actor does not access vessel AIS tracking data. For live vessel position, historical voyage records, or port call history, pair results with a dedicated AIS service such as MarineTraffic or VesselFinder.
  • Corporate registry coverage depends on OpenCorporates data. Jurisdictions with limited OpenCorporates coverage (some offshore registries, certain Asian jurisdictions) may return few or no corporate records, inflating the opacity score.
  • Flag state analysis uses jurisdiction text matching, not a verified vessel registry lookup. The actor cannot directly query the IMO GISIS vessel database or national ship registers — jurisdiction is inferred from corporate and LEI records.
  • Not a substitute for legal compliance review. The composite score and verdict are risk intelligence tools, not legal determinations. High-risk flags should be reviewed by a qualified sanctions attorney or compliance officer before transactional decisions are made.

Integrations

  • Zapier — trigger a vessel compliance report automatically when a new shipment booking is created in your TMS or ERP, then route HIGH_RISK verdicts to a compliance review queue
  • Make — build multi-step maritime compliance workflows: run the report, filter by verdict, create a compliance case in Jira or Salesforce, and notify the responsible officer
  • Google Sheets — export batch vessel screening results to a compliance tracker spreadsheet for audit trail documentation
  • Apify API — integrate vessel pre-screening directly into your trade finance origination system or shipping management platform via REST API
  • Webhooks — receive a POST notification to your compliance platform immediately when a run produces a DO_NOT_ENGAGE verdict
  • LangChain / LlamaIndex — feed structured vessel compliance reports into an AI compliance assistant to generate narrative risk summaries or answer investigator questions about specific risk signals

Troubleshooting

  • Composite score seems lower than expected for a known high-risk vessel — Check metadata.actorsQueried. If fewer than 8 sources returned data, one or more sub-actors may have timed out. Re-run the actor; transient API failures are the most common cause. Also verify the vessel name spelling exactly matches how it appears in sanctions databases — even small differences affect fuzzy text matching.

  • No sanctions hits despite the vessel being listed on OFAC — The query field may not match the name as listed in the SDN database. Try the name as it appears in the official OFAC SDN list (sometimes in all-caps or with transliterated spelling). Adding the IMO number significantly improves match precision for vessel-specific entries.

  • Trade route HHI score is zero despite expecting concentrated routes — UN Comtrade data is available at the country level, not vessel level. If the flag state or region provided in the flag field does not match any UN Comtrade partner records, the HHI calculation returns zero. Try a broader region name or the ISO country code of the flag state.

  • Flag state showing as flag of convenience when the vessel is not FOC — The flag state check reads from OpenCorporates corporate registry and GLEIF jurisdictions, not the vessel's registered flag directly. If the shipping company has a subsidiary incorporated in Panama or Marshall Islands, that subsidiary's jurisdiction triggers the flag-of-convenience signal even if the vessel itself is registered elsewhere. Review the corporate chain for context.

  • Run taking longer than 90 seconds — All 8 sub-actors run in parallel with a 120-second timeout. If platform load is high, individual sub-actor calls may take longer. Ensure the actor has the full 512 MB memory allocation. Runs rarely exceed 3 minutes under normal conditions.

Responsible use

  • This actor queries publicly available government sanctions databases, corporate registries, and meteorological data sources.
  • OFAC SDN screening results should be reviewed by a qualified compliance professional before any transactional decision is made.
  • Comply with applicable export control, sanctions, and financial crime prevention laws in your jurisdiction when acting on screening results.
  • Do not use screening outputs to take automated adverse action against entities without human review of the underlying data.
  • For guidance on responsible data use and web scraping legality, see Apify's guide.

FAQ

How accurate is the vessel compliance report sanctions screening? The actor queries OFAC's SDN database directly and cross-references OpenSanctions, which consolidates EU, UN, UK, and dozens of national authority lists. Match scoring uses a threshold system — SDN matches above score 80 are treated as direct hits, 60-79 as probable matches. Providing an IMO number substantially improves precision. The tool is designed as a first-pass screening layer, not a definitive legal determination. Ambiguous results should always be reviewed by a compliance professional.

What is a flag of convenience and why does it increase risk? A flag of convenience (FOC) is a practice where a vessel is registered in a country other than the beneficial owner's home country, typically to reduce regulatory oversight, taxation, or crewing requirements. The actor checks 23 known FOC states including Panama, Liberia, Marshall Islands, and Bahamas. FOC registration does not automatically indicate illegal activity, but it correlates with weaker regulatory enforcement and is a standard risk factor in maritime compliance and insurance underwriting.

How many vessels can I screen in one run? Each run analyzes one vessel or entity. For bulk screening, use the Apify API to call the actor in a loop from your own code, or use Apify's scheduling to run sequential screens. There is no per-day limit on runs beyond your account credit balance.

Is it legal to use this actor for sanctions screening? Yes. The actor queries publicly available government databases — OFAC publishes the SDN list specifically for compliance use, and UN Comtrade, NOAA, and GDACS are all open public data sources. Corporate registry data from OpenCorporates is also publicly available. There are no legal restrictions on using public sanctions data for compliance purposes; in fact, OFAC requires US persons to screen against the SDN list.

How is this different from MarineTraffic or VesselFinder? MarineTraffic and VesselFinder provide AIS-based vessel tracking — live position, port calls, voyage history. This actor provides compliance intelligence — sanctions screening, trade route risk, counterparty verification, and flag state analysis. They are complementary tools. Pair this actor's compliance output with AIS data for a complete risk picture before chartering or transacting.

How is this different from Windward or Pole Star maritime intelligence platforms? Windward and Pole Star offer enterprise maritime intelligence platforms with deep AIS integration, behavioral analytics, and analyst teams. They cost $20,000–$80,000 per year. This actor performs the same core compliance checks — OFAC screening, OpenSanctions, corporate registry, trade route HHI, flag state — for $0.10 per report with no annual contract. It is best suited for teams that need structured compliance data without enterprise platform pricing.

What does the HHI score mean in the trade route analysis? The Herfindahl-Hirschman Index measures trade concentration among a vessel's or company's trade partners. An HHI above 2500 indicates highly concentrated routes where most trade flows through very few partners — a risk factor if those partners are in sanctioned jurisdictions. HHI below 1000 indicates healthy diversification. The US Department of Justice uses 2500 as the threshold for highly concentrated markets; the actor applies the same standard to trade routes.

Can I schedule vessel compliance reports to run automatically? Yes. Apify's built-in scheduling allows you to run the actor daily, weekly, or on any custom interval. Scheduled runs use the same input you configure, so you can set up automatic weekly rescreens for key counterparties and receive notifications if a verdict changes.

What happens if one of the 8 data sources is unavailable? If a sub-actor call fails (network error, API timeout, source unavailable), that source returns an empty dataset and contributes zero to the composite score. The run still completes with results from the remaining sources. Check metadata.actorsQueried — if it is below 8, at least one source did not return data, and you should re-run the actor to get a complete result.

How long does a typical vessel compliance report run take? Typically 60-90 seconds. The actor runs all 8 data source queries in parallel, so total runtime is determined by the slowest sub-actor call rather than the sum of all calls. Runs rarely exceed 3 minutes under normal platform conditions.

Can I use vessel compliance report results as evidence in a regulatory filing? The actor provides risk intelligence derived from public data sources, not a certified compliance audit. Results are appropriate for internal compliance documentation, case management system records, and due diligence file notes. For regulatory filings or legal proceedings, data should be verified directly against the originating government databases and reviewed by qualified legal counsel.

Does the actor check ISM Code or port state control deficiencies? Not currently. The actor focuses on sanctions, trade route, counterparty, weather, and flag state risk dimensions using publicly available data sources. ISM Code compliance, port state control inspection records, and classification society status require access to IMO GISIS or Paris/Tokyo MOU databases, which are not currently integrated.

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 Vessel Compliance Report?

Start for free on Apify. No credit card required.

Open on Apify Store