Baltic & Nordic Vessel Tracker — Live AIS for AI Agents avatar

Baltic & Nordic Vessel Tracker — Live AIS for AI Agents

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Baltic & Nordic Vessel Tracker — Live AIS for AI Agents

Baltic & Nordic Vessel Tracker — Live AIS for AI Agents

Track live ships in the Baltic & Nordic seas via AIS. Get real-time vessel positions, speed, course, type, size, IMO/MMSI, flag and destination — filter by area, MMSI or ship type. Real-time maritime grounding for AI agents, logistics & compliance.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

19 hours ago

Last modified

Categories

Features

Limited permissions

Share

Baltic & Nordic Vessel Tracker — Live AIS Ship Positions, Type, Flag & Destination

Apify Actor Maintenance Data Format AIS Protocol Pagination

Track live ships across the Baltic and Nordic seas in real time. This high-performance vessel tracker turns raw maritime AIS (Automatic Identification System) data into a clean, structured feed: give it a sea area, a ship type, a destination, or a list of MMSI numbers and it returns every matching vessel's live position, speed, course, heading, ship type, size, flag, destination and ETA — no login, no coding, no API key. Use it to track ships and scrape AIS vessel data the way you need it.

Export to JSON, CSV, Excel, or API.

Built for AI agents that need real-time maritime grounding, logistics and port-operations teams, compliance and sanctions analysts watching tanker traffic, and researchers studying one of the world's busiest shipping corridors. Extraction is completely unlocked for 1,000+ vessels, scaling across the entire regional fleet.


⚡ At a glance

Metric / FeatureSpecification
Coverage AreaBaltic Sea, Gulf of Finland, Gulf of Bothnia, Baltic Proper, Danish Straits, Kattegat & Skagerrak
Data ProtocolLive terrestrial AIS telemetry combined with static ship registration records
Ship Capacity1,000+ vessels unlocked — processes the entire active regional fleet (1,500–2,500+ ships)
Throughput / Speed~300–500 moving vessels extracted and filtered in under 5 seconds
Recommended Memory512 MB – 1024 MB (lightweight & ultra-fast pure HTTP execution)
Output FormatsJSON, CSV, Excel (XLSX), XML, HTML
Deduplication100% unique records keyed by Maritime Mobile Service Identity (MMSI)
Live TelemetryLatitude, longitude, speed over ground (SOG), course over ground (COG), true heading
Voyage DataReported destination, decoded ISO-8601 ETA, current draught, ship dimensions

🔎 Why scrape Baltic & Nordic AIS vessel data?

AIS (Automatic Identification System) is the VHF transponder signal every commercial ship broadcasts — transmitting its identity, position, speed, course and voyage plan. Those positions change by the minute, so a static snapshot is useless almost immediately. A large language model cannot know where a ship is right now; a logistics dashboard needs the current picture of inbound traffic; a compliance desk needs to see which tankers are moving through a sensitive corridor today.

Collecting this manually is frustrating. Public ship-tracking websites throttle scrapers, hide data behind heavy interactive maps and paywalls, and refuse to provide clean machine-readable exports. Raw government AIS feeds, meanwhile, are split across two separate data streams — live spatial coordinates in one, vessel identity and dimensions in another — and encode ship types, navigation statuses, and ETAs as cryptic integers. This AIS vessel tracker does all of that decoding and joins both feeds into one flat, ready-to-use record per ship.

The Baltic Sea and Gulf of Finland are among the most heavily trafficked and most geopolitically scrutinized waters on Earth — the maritime gateway to St. Petersburg, Ust-Luga, Primorsk, Tallinn, Helsinki, and the Gulf of Bothnia industrial ports. It is also the focal corridor for monitoring "shadow fleet" oil tankers and maritime sanctions compliance. This vessel tracker provides an open, programmable window directly into those waters.

Commercial Marine Platforms vs. This Vessel Tracker

FeatureCommercial Map PortalsBaltic & Nordic Vessel Tracker
API Pricing$300–$2,000/month subscriptionsFraction of a cent per run ($0.001)
Export FormatsRestricted or proprietary UIJSON, CSV, Excel, XML via 1-click or API
Rate LimitingStrict IP throttling & CAPTCHAsDirect keyless open-data pipeline
Data EnrichmentRaw cryptic codes (AIS type 70)Decoded human labels ("Cargo", "Under way")
ETA DecodingOften raw 20-bit integer formatFully normalized ISO-8601 UTC timestamp
AI Agent IntegrationHeavy JavaScript web mapsFlat JSON records ready for MCP tool-calling

High-Value Reasons to Extract AIS Vessel Data

  • Maritime Grounding for AI Agents: Feed real-time spatial reality into LLMs — e.g., "Which crude oil tankers are currently navigating the Gulf of Finland towards Primorsk?"
  • Inbound Port Operations: Monitor approaching traffic, expected times of arrival (ETA), and draught limits to optimize pilotage and berth allocation.
  • Fleet Surveillance: Track an operator's specific fleet across multiple sea sectors by supplying an array of MMSI numbers.
  • Sanctions & Compliance Monitoring: Screen tankers by flag state (Panama, Liberia, Gabon, Marshall Islands) moving through sensitive Baltic export corridors.
  • Maritime Supply Chain Logistics: Detect arrival delays of container ships and dry bulk carriers before they dock.
  • Live Geospatial Mapping: Stream vessel coordinates, courses, and speeds into custom GIS systems or interactive Leaflet/Mapbox visualizations.

✨ Key Features & Capabilities

  • ✅ Full Basin Coverage: Captures the live operational fleet across the Gulf of Finland, Gulf of Bothnia, Baltic Proper, Danish Straits, Kattegat, and Skagerrak.
  • ✅ Custom Geospatial Bounding Box: Define exact rectangular map areas (minLon,minLat,maxLon,maxLat) to focus on a specific strait, anchorage, or harbor approach.
  • ✅ Decoded Vessel Taxonomy: Categorizes raw numeric AIS types into intuitive classifications: Cargo, Tanker, Passenger, Fishing, Tug / Towing, Sailing, Pleasure craft, High-speed craft, and Other.
  • ✅ Specific MMSI Fleet Tracking: Input one or several MMSI transponder IDs to filter the entire fleet and isolate only the ships you care about.
  • ✅ Fuzzy Text Matching: Filter by ship name or reported destination port (case-insensitive substring matching, e.g. "HELSINKI", "ROTTERDAM", "UST-LUGA").
  • ✅ Moving-Only Filter: Eliminate stationary noise by filtering out anchored, moored, or aground ships to focus exclusively on active traffic under way.
  • ✅ Automatic Flag State Resolution: Derives the vessel's national flag registry directly from Maritime Identification Digits (MID), covering 50+ sovereign registries and flags of convenience.
  • ✅ ISO-8601 Decoded ETA: Reconstructs the crew-reported 20-bit ETA broadcast into an absolute UTC timestamp with automated year-rollover protection.
  • ✅ Dimensional Hull Profiles: Extracts vessel length, beam width, and current water draught in meters.
  • ✅ 1,000+ Fleet Scale: Fetches and joins entire regional fleets in a single blazing-fast HTTP pass (< 5 seconds).

🎯 Primary Use Cases

1. Port Authorities & Marine Terminal Operators

Forecast vessel arrival times, manage tug and pilot dispatch schedules, and cross-reference vessel length and draught against berth channel restrictions.

2. Maritime Sanctions & Commodity Traders

Track crude oil and refined product tankers operating in northern European export corridors. Monitor flag hopping and sudden destination changes across the Danish Straits.

3. Freight Forwarders & Supply Chain Teams

Track inbound cargo vessels carrying containerized goods or bulk commodities. Calculate realistic transit times based on real-time speed over ground (SOG).

4. Marine Environmental & Fisheries Researchers

Study commercial fishing vessel density, measure high-speed craft traffic in marine conservation zones, and analyze commercial route compliance.

5. AI Copilots & Autonomous Agents

Empower AI agents with live maritime tool-calling capabilities. Using Apify MCP or REST API, agents can query ship whereabouts and verify shipping claims instantly.


📥 Input Parameters

Configure the actor easily using the visual form in Apify Console or pass a JSON payload via the REST API.

FieldTypeDefaultDescription
regionSelect"all"Sea area: "all", "gulf-of-finland", "gulf-of-bothnia", "baltic-proper", "danish-straits", "kattegat-skagerrak", "custom".
bboxString""Custom bounding box minLon,minLat,maxLon,maxLat (used when region is "custom"), e.g. "22,59,28,61".
shipTypeSelect"all"Filter by vessel classification: "all", "cargo", "tanker", "passenger", "fishing", "tug", "sailing", "pleasure", "high-speed", "other".
movingOnlyBooleanfalseWhen true, hides stopped, anchored, or moored vessels and keeps only ships navigating with speed > 0.5 knots.
nameQueryString""Optional case-insensitive substring to filter vessels by name (e.g. "Maersk", "Baltic").
destinationString""Optional case-insensitive substring to filter by reported destination port (e.g. "HELSINKI", "KLAIPEDA").
mmsiArray[]List of specific 9-digit MMSI transponder numbers to follow.
maxItemsInteger0Maximum vessels to output. Set to 0 for unlimited extraction (entire matching fleet).
proxyConfigurationObject{"useApifyProxy": false}Proxy settings. Public open data source; proxy is off by default.

Input Examples

Example 1: Active Tankers in the Gulf of Finland (Moving Only)
{
"region": "gulf-of-finland",
"shipType": "tanker",
"movingOnly": true,
"maxItems": 200
}
Example 2: Inbound Ships Heading to Helsinki or St. Petersburg
{
"region": "all",
"destination": "HELSINKI",
"maxItems": 500
}
Example 3: Tracking Specific Fleet by MMSI
{
"mmsi": [
"244772000",
"230123456",
"265847000"
],
"movingOnly": false
}
Example 4: Custom Spatial Bounding Box (Stockholm Archipelago)
{
"region": "custom",
"bbox": "18.0,59.0,19.5,59.8",
"shipType": "all",
"maxItems": 0
}

📤 Output Dataset & Field Coverage

The actor outputs flat JSON objects where each record represents a single tracked vessel.

Field Specification & Coverage Indicators

🚢 Vessel Identification
FieldTypeCoverageDescription
mmsiString🟢 High (100%)Unique 9-digit Maritime Mobile Service Identity.
imoString🟡 Conditional (~72%)Permanent 7-digit IMO hull number. Empty for smaller craft.
nameString🟡 Conditional (~75%)Broadcast vessel name.
callSignString🟡 Conditional (~71%)Marine radio call sign assigned by licensing flag.
flagString🟢 High (~87%)Flag state resolved from MMSI maritime identification digits.
shipTypeString🟢 High (100%)Raw numeric AIS ship-type identifier.
shipTypeTextString🟢 High (100%)Human-readable category (e.g. "Cargo", "Tanker").
🌐 Real-Time Telemetry & Navigation
FieldTypeCoverageDescription
latitudeString🟢 High (100%)Current WGS-84 latitude in decimal degrees.
longitudeString🟢 High (100%)Current WGS-84 longitude in decimal degrees.
speedKnotsString🟢 High (100%)Speed over ground in knots (SOG).
courseOverGroundString🟢 High (100%)Course over ground in degrees (COG).
headingString🟢 High (~92%)Compass heading in degrees. Empty if uncalibrated.
navStatusString🟢 High (100%)Raw numeric navigation status code.
navStatusTextString🟢 High (100%)Readable status ("Under way using engine", "At anchor", "Moored").
⚓ Voyage & Port Destination
FieldTypeCoverageDescription
destinationString🟡 Conditional (~70%)Crew-reported destination port string.
etaString🟡 Conditional (~70%)Decoded ISO-8601 UTC timestamp of estimated arrival.
positionTimeString🟢 High (100%)Timestamp of AIS transponder observation.
scrapedAtString🟢 High (100%)ISO 8601 timestamp of extraction.
📏 Vessel Dimensions & Hull Profile
FieldTypeCoverageDescription
draughtMetersString🟡 Conditional (~68%)Current water draught in meters.
lengthMetersString🟡 Conditional (~74%)Total hull length in meters.
widthMetersString🟡 Conditional (~74%)Total hull beam width in meters.

Sample Output Record

{
"mmsi": "244772000",
"imo": "9331361",
"name": "LEONIE",
"callSign": "PHLE",
"shipType": "70",
"shipTypeText": "Cargo",
"flag": "Netherlands",
"latitude": "57.815853",
"longitude": "18.044017",
"speedKnots": "8.6",
"courseOverGround": "210.9",
"heading": "209",
"navStatus": "0",
"navStatusText": "Under way using engine",
"destination": "PLSZZ",
"eta": "2026-11-12T03:00:00Z",
"draughtMeters": "5.5",
"lengthMeters": "90",
"widthMeters": "13",
"positionTime": "2026-11-10T16:15:46Z",
"scrapedAt": "2026-11-10T16:18:00.000Z"
}

🔁 Scale, Architecture & Performance

  • Zero-Pagination Bulk Pipeline: The actor utilizes high-efficiency stream compression to download live AIS position vectors and static metadata in parallel batches, joining thousands of entities in memory in milliseconds.
  • Uncapped Fleet Retrieval: Removing legacy demo caps allows full fleet extractions exceeding 1,000+ active vessels across the entire Baltic basin.
  • Micro-Cost Execution: Because no browser instances or proxy rotation bandwidth are consumed, runs finish in 2–5 seconds with compute costs typically under $0.0005 per run.
  • Strict MMSI Deduplication: Every vessel record is uniquely mapped by transponder ID, guaranteeing 0% duplicates in your downstream datasets.

💻 Programmatic Integration & AI Agent Tool Calling

Node.js (Apify SDK)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/vessel-tracker').call({
region: 'gulf-of-finland',
shipType: 'tanker',
movingOnly: true,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Tracked ${items.length} active tankers navigating the Gulf of Finland.`);

Python (Apify Client)

import os
from apify_client import ApifyClient
client = ApifyClient(os.getenv('APIFY_TOKEN'))
run = client.actor('haketa/vessel-tracker').call(run_input={
'region': 'baltic-proper',
'shipType': 'cargo',
'destination': 'ROTTERDAM',
'maxItems': 50,
})
for ship in client.dataset(run['defaultDatasetId']).list_items().items:
print(f"{ship['name']} ({ship['flag']}) -> SOG: {ship['speedKnots']} kn, ETA: {ship['eta']}")

Direct cURL Request

curl -X POST "https://api.apify.com/v2/acts/haketa~vessel-tracker/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"region": "all",
"shipType": "tanker",
"movingOnly": true,
"maxItems": 250
}'

🗺️ Supported Sea Sectors & Coordinate Boundaries

The actor comes pre-configured with boundary coordinates for the key waterways of Northern Europe:

Region KeyRegion LabelGeographic Boundaries (Lon/Lat)Key Ports & Passages Included
allAll Areas (Baltic & Nordic)Full regional terrestrial AIS coverageComplete Baltic Sea, Kattegat, Skagerrak
gulf-of-finlandGulf of Finland22°E–30.5°E, 59°N–61°NHelsinki, Tallinn, St. Petersburg, Ust-Luga, Primorsk
gulf-of-bothniaGulf of Bothnia17°E–26°E, 60°N–66°NOulu, Vaasa, Rauma, Pori, Luleå, Umeå
baltic-properBaltic Proper12°E–23°E, 54°N–60°NStockholm, Riga, Klaipeda, Gdansk, Gdynia, Kaliningrad
danish-straitsDanish Straits9°E–13°E, 54°N–58°NGreat Belt, Little Belt, The Sound (Øresund), Copenhagen
kattegat-skagerrakKattegat & Skagerrak7°E–13°E, 56°N–59.5°NGothenburg, Oslofjord approaches, Skagen passage
customCustom Map AreaUser-defined minLon,minLat,maxLon,maxLatPinpoint monitoring of harbor berths and pilot stations

⚓ AIS Navigational Status Reference

Every broadcast AIS dynamic message contains a 4-bit navigation status integer. This scraper maps each code to its standardized International Maritime Organization (IMO) definition:

CodeStatus TextMarine Meaning
0Under way using engineVessel is navigating actively under engine power
1At anchorVessel is held in place by anchor equipment
2Not under commandVessel unable to maneuver due to exceptional circumstance
3Restricted manoeuvrabilityVessel restricted in ability to maneuver (dredging, towing)
4Constrained by draughtVessel severely restricted in maneuvering by water depth
5MooredVessel secured to dock, pier, or buoy equipment
6AgroundVessel has touched ground and is stationary
7Engaged in fishingCommercial vessel operating trawls, lines, or nets
8Under way sailingVessel navigating under sail power
14AIS-SART activeSearch and rescue transponder broadcast active
15UndefinedDefault state when transponder status is unassigned

💡 Practical Pro-Tips

  • Filter Anchored Ships: If building a traffic velocity map, set movingOnly: true to avoid cluttering your visualization with hundreds of vessels moored at harbor berths.
  • Monitor Specific Ports: Pass the destination port name (e.g. "KLAIPEDA") into destination to capture vessels approaching that harbor regardless of where they currently are in the Baltic.
  • Geofence Chokepoints: Use region: "custom" with bounding box coordinates around the Fehmarn Belt or Great Belt to track all traffic passing between the North Sea and the Baltic Sea.
  • Automated Alerts via Webhooks: Connect Apify Webhooks to Make or Zapier to trigger SMS or Slack notifications whenever a monitored MMSI enters a specific port.

❓ Frequently Asked Questions (FAQ)

Where does this AIS data come from?

The data is aggregated from official coastal terrestrial AIS sensor networks across the Baltic Sea and Nordic coastlines (Fintraffic / digitraffic.fi), published openly under CC BY 4.0.

Can I track ships outside the Baltic and Nordic region?

No. This specific scraper operates across the Baltic Sea, Gulf of Finland, Gulf of Bothnia, Baltic Proper, Danish Straits, and Kattegat/Skagerrak coastal waters.

Why are some vessel names or IMO numbers blank?

AIS transmits in two channels: dynamic position (every few seconds) and static voyage metadata (every 6 minutes). If a vessel recently turned on its transponder, its static identity packet may not yet have been received.

What does movingOnly do?

It filters out vessels with speed over ground (SOG) below 0.5 knots or reported navigation status of "At anchor", "Moored", or "Aground".


📋 Changelog

v1.2 (2026-11)

  • Unlocked 1,000+ Fleet Scale: Removed pagination and demo limits when explicit maxItems > 200 is requested, allowing extraction of the entire active fleet across the Baltic & Nordic basins.
  • Enhanced ETA ISO Parsing: Decoded 20-bit AIS ETA transmissions into verified UTC ISO-8601 timestamps with year-boundary rollover protection.
  • Expanded Flag State Mapping: Added Maritime Identification Digits (MID) resolution for flags of convenience (Panama, Liberia, Marshall Islands, Gabon, Palau).
  • Optimized Prefill Execution: Runs finish in under 10 seconds on Apify platform.

v1.1 (2026-07)

  • Custom Bounding Box Support: Enabled spatial coordinates filtering (minLon,minLat,maxLon,maxLat) for targeted straits and ports.
  • Moving-Only Filter: Added speed threshold filter to drop anchored and moored vessels.

v1.0 (2026-07)

  • Initial release featuring live AIS position and static metadata join, ship type classification, and multi-format exports.
⌂ 换网址