Shipping Disruption Tracker - War & Supply Chain avatar

Shipping Disruption Tracker - War & Supply Chain

Pricing

$8.00 / 1,000 region reports

Go to Apify Store
Shipping Disruption Tracker - War & Supply Chain

Shipping Disruption Tracker - War & Supply Chain

Monitor global shipping disruptions across 6 maritime chokepoints: Strait of Hormuz, Red Sea, Suez Canal, South China Sea, Panama Canal, Black Sea. Port status, commodity prices, disruption news, and risk levels. Built for supply chain managers and commodity traders.

Pricing

$8.00 / 1,000 region reports

Rating

0.0

(0)

Developer

George Kioko

George Kioko

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

2

Monthly active users

10 days ago

Last modified

Share

Apify Actor Crawlee Node.js PPE Pricing

Real-time intelligence on 6 critical maritime chokepoints, commodity price tracking, port operational status, and AI-powered risk assessment -- built for supply chain professionals, commodity traders, and geopolitical analysts.

170+ ships are trapped in the Persian Gulf as of March 2026. The Strait of Hormuz -- through which 20% of the world's petroleum flows -- is partially blocked. Supply chain managers need real-time visibility, not $100K enterprise subscriptions.


How It Works

flowchart LR
A["Select Regions"] --> B["Fetch News"]
B --> C["Analyze Risk"]
C --> D["Check Ports"]
D --> E["Get Commodity\nPrices"]
E --> F["Disruption\nReport"]
style A fill:#1a1a2e,stroke:#e94560,color:#fff
style B fill:#1a1a2e,stroke:#0f3460,color:#fff
style C fill:#1a1a2e,stroke:#e94560,color:#fff
style D fill:#1a1a2e,stroke:#0f3460,color:#fff
style E fill:#1a1a2e,stroke:#e94560,color:#fff
style F fill:#16213e,stroke:#0f3460,color:#fff,stroke-width:3px

Architecture

flowchart TB
subgraph Input["Input Configuration"]
R[Regions Array]
C[Commodities Array]
T[Feature Toggles]
end
subgraph Pipeline["Scraping Pipeline"]
direction TB
PC[PuppeteerCrawler]
subgraph News["News Aggregation"]
NF[Fetch Headlines]
NP[Parse per Region]
end
subgraph Risk["Risk Keyword Engine"]
direction TB
KW["Keyword Analysis"]
CR["CRITICAL\n-- war, attack, blockade --\n-- military strike, missile --"]
HR["HIGH_RISK\n-- sanctions, conflict --\n-- threat, closure, seizure --"]
MO["MODERATE\n-- tensions, dispute --\n-- delays, weather, drill --"]
end
subgraph Ports["Port Status"]
PS[Operational Check]
CO[Coordinates Lookup]
end
subgraph Commodities["Commodity Prices"]
OIL[Crude Oil]
GAS[Natural Gas]
GOLD[Gold]
MORE[Copper / Wheat /\nIron Ore / LNG]
end
end
subgraph Output["Disruption Report"]
DR[Region Reports]
PR[Price Data]
RA[Risk Assessments]
end
R --> PC
C --> PC
T --> PC
PC --> News
News --> Risk
Risk --> Ports
Ports --> Commodities
Commodities --> Output
KW --> CR
KW --> HR
KW --> MO
style CR fill:#dc3545,stroke:#fff,color:#fff
style HR fill:#fd7e14,stroke:#fff,color:#fff
style MO fill:#ffc107,stroke:#000,color:#000
style Output fill:#0d6efd,stroke:#fff,color:#fff

Monitored Regions

graph TB
subgraph WORLD["6 Critical Maritime Chokepoints"]
direction TB
subgraph Middle_East["Middle East"]
HORMUZ["Strait of Hormuz\n26.56N, 56.25E\nPorts: Fujairah, Bandar Abbas,\nMuscat, Khor Fakkan"]
REDSEA["Red Sea / Bab el-Mandeb\n12.58N, 43.33E\nPorts: Jeddah, Port Sudan,\nDjibouti, Aden"]
end
subgraph Africa["Africa / Mediterranean"]
SUEZ["Suez Canal\n30.46N, 32.34E\nPorts: Port Said, Suez,\nAin Sokhna, Damietta"]
end
subgraph Asia["Asia-Pacific"]
SCS["South China Sea\n12.00N, 113.00E\nPorts: Singapore, Ho Chi Minh,\nManila, Hong Kong"]
end
subgraph Americas["Americas"]
PANAMA["Panama Canal\n9.08N, 79.68W\nPorts: Balboa, Cristobal,\nManzanillo, Colon"]
end
subgraph Europe["Europe / Eurasia"]
BLACK["Black Sea\n43.00N, 35.00E\nPorts: Odessa, Constanta,\nNovorossiysk, Istanbul"]
end
end
style HORMUZ fill:#dc3545,stroke:#fff,color:#fff
style REDSEA fill:#dc3545,stroke:#fff,color:#fff
style SUEZ fill:#fd7e14,stroke:#fff,color:#fff
style SCS fill:#fd7e14,stroke:#fff,color:#fff
style PANAMA fill:#0d6efd,stroke:#fff,color:#fff
style BLACK fill:#dc3545,stroke:#fff,color:#fff

Input Schema

classDiagram
class Input {
+String[] regions
+String[] commodities
+Boolean includeNews
+Boolean includeCommodityPrices
+Boolean includePortStatus
+Number maxNewsPerRegion
}

Parameters

ParameterTypeDefaultDescription
regionsString[]All 6 regionsMaritime regions to monitor
commoditiesString[]["Crude Oil", "Natural Gas", "Gold"]Commodity prices to track
includeNewsBooleantrueAggregate news headlines per region
includeCommodityPricesBooleantrueFetch current commodity prices
includePortStatusBooleantrueCheck port operational status
maxNewsPerRegionNumber15Headlines per region (5-50)

Available Regions

RegionKey PortsStrategic Significance
Strait of HormuzFujairah, Bandar Abbas, Muscat21% of global oil transit
Red Sea / Bab el-MandebJeddah, Port Sudan, DjiboutiEurope-Asia trade corridor
Suez CanalPort Said, Suez, Ain Sokhna12% of global trade
South China SeaSingapore, Manila, Hong Kong$3.4T annual trade flow
Panama CanalBalboa, Cristobal, ManzanilloAmericas east-west link
Black SeaOdessa, Constanta, NovorossiyskGrain and energy exports

Available Commodities

CommodityRelevance
Crude OilDirectly impacted by Hormuz, Red Sea, Suez disruptions
Natural GasLNG shipping routes through all 6 chokepoints
GoldSafe-haven asset, spikes during maritime conflict
CopperIndustrial bellwether, Asia-Pacific trade flows
WheatBlack Sea grain corridor dependency
Iron OreSouth China Sea and Panama shipping lanes
LNGLiquefied natural gas spot pricing

Example Input

{
"regions": ["Strait of Hormuz", "Red Sea", "Suez Canal"],
"commodities": ["Crude Oil", "Natural Gas", "Gold"],
"includeNews": true,
"includeCommodityPrices": true,
"includePortStatus": true,
"maxNewsPerRegion": 20
}

Output Schema

classDiagram
class DisruptionReport {
+String region
+String description
+String riskLevel
+String status
+PortStatus[] affectedPorts
+Object commodityPrices
+NewsItem[] newsHeadlines
+Number newsCount
+String monitoredAt
}
class NewsItem {
+String title
+String source
+String url
+String publishedAt
}
class PortStatus {
+String port
+String country
+String status
+String statusDetail
+String[] recentHeadlines
}
class CommodityPrice {
+Number price
+String priceFormatted
+String source
+String fetchedAt
}
DisruptionReport --> NewsItem
DisruptionReport --> PortStatus
DisruptionReport --> CommodityPrice

Example Output

{
"region": "Strait of Hormuz",
"description": "Critical chokepoint for 20% of global petroleum. Active military operations zone.",
"riskLevel": "CRITICAL",
"status": "Critical disruptions detected. Ports suspended/closed: Kuwait Port. Active military operations or blockade indicators present.",
"commodityPrices": {
"Crude Oil": {
"price": 92.10,
"priceFormatted": "$92.10",
"source": "Google Finance",
"fetchedAt": "2026-03-22T12:00:00.000Z"
}
},
"affectedPorts": [
{
"port": "Bandar Abbas",
"country": "Iran",
"status": "Suspended/Closed",
"statusDetail": "Critical disruption indicators detected in recent news",
"recentHeadlines": ["Iran closes Bandar Abbas port amid US strikes"]
},
{
"port": "Fujairah",
"country": "UAE",
"status": "Operational",
"statusDetail": "No disruption reports found"
}
],
"newsHeadlines": [
{
"title": "US Navy escorts tankers through Hormuz as tensions escalate",
"source": "Reuters",
"publishedAt": "Sun, 22 Mar 2026 14:30:00 GMT",
"url": "https://news.google.com/..."
}
],
"newsCount": 15,
"monitoredAt": "2026-03-22T12:00:00.000Z"
}

Risk Levels

LevelTrigger KeywordsMeaning
CRITICALwar, attack, blockade, military strike, explosion, missileActive conflict or imminent threat to shipping
HIGH_RISKsanctions, conflict, threat, closure, seizure, navalElevated danger, rerouting likely
MODERATEtensions, dispute, delays, weather, inspection, drillDisruption possible but not imminent

Use Cases

mindmap
root((Shipping\nDisruption\nTracker))
Supply Chain
Route planning
Alternative corridor analysis
Supplier risk scoring
Inventory buffer decisions
Insurance
Marine cargo underwriting
War risk premium calculation
Claims trigger monitoring
Portfolio exposure mapping
Trading
Commodity price signals
Freight rate forecasting
Geopolitical alpha generation
Spread trade triggers
Logistics
Vessel rerouting decisions
Port congestion monitoring
ETA recalculation
Carrier selection
Risk Management
Country risk dashboards
Scenario modeling
Board-level reporting
Regulatory compliance

AI Agent Integration

Connect this actor to any AI agent framework for automated supply chain monitoring.

JavaScript (Apify Client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('george.the.developer/shipping-disruption-tracker').call({
regions: ['Strait of Hormuz', 'Red Sea', 'Suez Canal'],
commodities: ['Crude Oil', 'Natural Gas', 'Gold'],
includeNews: true,
includeCommodityPrices: true,
includePortStatus: true,
maxNewsPerRegion: 15,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const report of items) {
console.log(`${report.region}: ${report.riskLevel}`);
console.log(` Ports: ${report.affectedPorts.map(p => `${p.port} (${p.status})`).join(', ')}`);
console.log(` Headlines: ${report.newsCount}`);
}

Python (Apify Client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("george.the.developer/shipping-disruption-tracker").call(run_input={
"regions": ["Strait of Hormuz", "Red Sea", "Suez Canal"],
"commodities": ["Crude Oil", "Natural Gas", "Gold"],
"includeNews": True,
"includeCommodityPrices": True,
"includePortStatus": True,
"maxNewsPerRegion": 15,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
risk = item["riskLevel"]
region = item["region"]
print(f"{region}: {risk}")
for port in item.get("affectedPorts", []):
print(f" {port['port']} ({port['country']}): {port['status']}")
for headline in item.get("newsHeadlines", []):
print(f" - {headline['title']} [{headline['source']}]")

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/george.the.developer~shipping-disruption-tracker/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"regions": ["Strait of Hormuz", "Red Sea"],
"commodities": ["Crude Oil", "Gold"],
"includeNews": true,
"includeCommodityPrices": true,
"includePortStatus": true,
"maxNewsPerRegion": 10
}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"

Apify MCP Server (Claude / GPT / LangChain)

This actor is compatible with the Apify MCP Server for direct AI agent integration. Connect it to Claude Desktop, GPT-based agents, CrewAI, or LangChain supply chain monitoring workflows.


Pricing

ScopeCost
Per region report$0.008
3 regions (most common)$0.024
All 6 regions (full scan)$0.048
Hourly monitoring, all regions (monthly)~$35/month

Pricing uses Apify's Pay Per Event model. You are charged only for the regions you select. News aggregation, commodity prices, and port status checks are included in the per-region cost.


FAQ

How often should I run this actor? For active conflict zones, every 1-4 hours. For general monitoring, once or twice daily is sufficient. Set up recurring runs from the Apify Console schedules tab.

Which regions are most volatile right now? The actor does not predict the future, but historically the Red Sea, Strait of Hormuz, and Black Sea have the highest frequency of CRITICAL and HIGH_RISK assessments.

Can I monitor just one region? Yes. Pass a single region in the regions array and you will be charged only $0.008 for that run.

Can I add custom regions? Yes. Enter any region name and it will create a search-based monitor using relevant maritime keywords.

How does risk assessment work? Headlines are scanned for conflict-related keywords. Words like "attack", "blockade", or "missile" trigger CRITICAL. Terms like "sanctions" or "threat" produce HIGH_RISK. Lower-severity terms like "tensions" or "delays" result in MODERATE.

How does it determine port status? Port status is assessed by analyzing recent news about each port for disruption keywords (blockade, suspended, closed, military, diversion, etc.). It is news-based intelligence, not direct port authority feeds.

What commodity data is included? Current price, formatted price string, source, and fetch timestamp. Supported commodities: Crude Oil, Natural Gas, Gold, Copper, Wheat, Iron Ore, and LNG.

Can I integrate this with my dashboard or alerting system? Yes. Use the Apify API or webhook integrations to push results to Slack, email, or any HTTP endpoint. The structured JSON output works with any BI tool.

What happens if a news source is unavailable? The actor uses PuppeteerCrawler with retry logic. If a source is temporarily down, it continues with available sources and returns partial results rather than failing.


Built with Crawlee and Apify SDK by george.the.developer