Baltic & Nordic Vessel Tracker — Live AIS for AI Agents
Pricing
from $0.70 / 1,000 results
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.
Track live ships across the Baltic and Nordic seas in real time. Give this Actor a sea area, a ship type, or a list of MMSI numbers and it returns every matching vessel's live position, speed, course, type, size, flag and destination — clean, structured, and ready for an AI agent, a logistics pipeline, or a maritime dashboard.
No API key, no setup. Just current AIS vessel data, filterable the way you need it.
Why this Actor?
A large language model can't know where a ship is right now — AIS positions change by the minute. This Actor is the real-time maritime grounding an agent or app needs: ask "what tankers are in the Gulf of Finland heading to St. Petersburg?" and get back a precise, structured answer with names, flags and destinations.
- AI agents & assistants — a live tool an agent can call to answer maritime questions with real data.
- Logistics & supply chain — see what's moving, where, and toward which port.
- Compliance & risk — watch tanker traffic and flag states in sensitive corridors (the Baltic is a focus area for "shadow fleet" and sanctions monitoring).
- Maritime dashboards & research — feed a live vessel layer into your own map or analysis.
The Baltic and Gulf of Finland are among the busiest and most geopolitically watched waters in the world — this Actor gives you a clean, programmable window into them.
What you get
For every vessel the Actor returns:
| Field | Description |
|---|---|
mmsi | Maritime Mobile Service Identity |
imo | IMO number (permanent hull ID) |
name | Vessel name |
callSign | Radio call sign |
shipTypeText | Cargo / Tanker / Passenger / Fishing / Tug / … |
flag | Flag state, derived from the MMSI |
latitude, longitude | Live position |
speedKnots | Speed over ground |
courseOverGround | Course over ground (degrees) |
heading | True heading (degrees) |
navStatusText | Under way / At anchor / Moored / Fishing / … |
destination | Reported destination |
draughtMeters | Current draught |
lengthMeters, widthMeters | Vessel dimensions |
positionTime | When the AIS feed was last updated |
scrapedAt | Extraction timestamp |
Live position and movement are joined with each ship's identity and dimensions into one flat record — no separate lookups.
Example output
{"mmsi": "219598000","imo": "9692129","name": "NORD SUPERIOR","callSign": "OWPA2","shipTypeText": "Tanker","flag": "Denmark","latitude": "55.770832","longitude": "20.85169","speedKnots": "12.4","courseOverGround": "246.5","heading": "247","navStatusText": "Under way using engine","destination": "NL AMS","draughtMeters": "11.8","lengthMeters": "183","widthMeters": "32","positionTime": "2026-07-06T14:11:51Z","scrapedAt": "2026-07-06T14:12:43.965Z"}
Input
| Field | Type | Default | Description |
|---|---|---|---|
region | string | all | Sea area: all, gulf-of-finland, gulf-of-bothnia, baltic-proper, danish-straits, kattegat-skagerrak, or custom. |
bbox | string | — | Custom bounding box minLon,minLat,maxLon,maxLat (when region = custom). |
mmsi | array | — | Track only these vessels by MMSI. |
shipType | string | all | cargo, tanker, passenger, fishing, tug, sailing, pleasure, high-speed, other. |
nameQuery | string | — | Only vessels whose name contains this text. |
destination | string | — | Only vessels whose destination contains this text. |
movingOnly | boolean | false | Exclude stopped/anchored/moored vessels. |
maxItems | integer | 1000 | Maximum vessels to return. |
Track all tankers heading to a port
{"region": "gulf-of-finland","shipType": "tanker","destination": "PETERSBURG"}
Watch specific vessels
{"mmsi": ["230123456", "265847000"],"movingOnly": false}
A custom area
{"region": "custom","bbox": "18,59,21,60","shipType": "cargo"}
Sea areas
| Area | Roughly covers |
|---|---|
| Gulf of Finland | Helsinki, Tallinn, St. Petersburg approaches |
| Gulf of Bothnia | Between Finland and Sweden |
| Baltic Proper | Central Baltic, Gotland, southern approaches |
| Danish Straits | Øresund, Great Belt — the gateway in/out of the Baltic |
| Kattegat & Skagerrak | Between Denmark, Sweden and Norway |
| All | The full Baltic & Nordic coverage area |
For anything more precise, use a custom bounding box.
Use cases in detail
1. AI agents & real-time tools
Expose this as a tool an assistant can call: "Which cargo ships are near Helsinki?" or "Where is the vessel with MMSI 265847000?" — the agent gets structured data it can reason over, in seconds.
2. Logistics & port operations
See inbound traffic to a port by filtering on destination, or watch a fleet by MMSI. Combine with draught and dimensions to plan berthing and pilotage.
3. Compliance, sanctions & "shadow fleet" monitoring
Filter tankers by area, flag and destination to keep an eye on sensitive corridors. Flag state and destination make it easy to flag traffic worth a closer look — a strong companion to name-based sanctions screening.
4. Maritime dashboards & mapping
Feed a live vessel layer into your own map (each record has latitude/longitude and heading), refreshed on demand.
5. Research & journalism
Study traffic patterns, port calls and flag distributions in one of the world's most closely-watched maritime regions.
How to use it
- Click Try for free.
- Pick a
region(and optionally ashipType,destination, ormmsilist). - Click Start.
- Read the results as JSON, CSV, Excel, or via the Apify API.
Runs finish in seconds — the whole area is fetched and filtered in one pass.
Calling from the API
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "region": "gulf-of-finland", "shipType": "tanker" }'
Then fetch the dataset:
$curl "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs/last/dataset/items?token=YOUR_APIFY_TOKEN"
Works with webhooks, Zapier, Make and n8n so you can pipe a live vessel feed straight into your systems.
Frequently asked questions
What area does it cover? The Baltic Sea and Nordic waters — Gulf of Finland, Gulf of Bothnia, the Baltic Proper, the Danish Straits, and the Kattegat/Skagerrak. This is coastal (terrestrial) AIS, which covers these busy, enclosed seas very well.
How fresh is the data?
Positions are pulled live on each run; positionTime tells you when the feed was last updated.
Can I track a specific ship?
Yes — pass its MMSI (or several) in the mmsi field.
Can I filter by ship type or destination?
Yes — shipType (tanker, cargo, passenger, …) and destination (substring match on the reported destination).
How do I get only moving ships?
Set movingOnly: true to drop anchored, moored and stopped vessels.
What's the flag field?
The flag state, derived from the vessel's MMSI country code — useful for spotting flags of convenience and monitoring specific registries.
Can an AI agent call this automatically? Yes — it's keyless and returns structured JSON, so it works cleanly as an agent/MCP tool.
Notes & responsible use
This Actor surfaces publicly broadcast AIS data for the Baltic and Nordic region for informational, logistics and research purposes. AIS positions are self-reported by vessels and can be delayed, inaccurate, or absent; treat the data as indicative, not authoritative, and don't rely on it for safety-of-navigation or as sole evidence for any decision. Use it in line with applicable laws in your jurisdiction.
Source: official Baltic maritime AIS data (Fintraffic / digitraffic.fi), licensed CC BY 4.0.
Support
Want another sea area, more ship-type detail, or an extra field? Open an issue from the Actor's page. Fair winds.