Berth · ships and port traffic, by AIS

Finnish and Norwegian waters, ship by ship.

Large ships must carry an AIS transponder, and many small craft do: a radio that broadcasts the vessel’s name, position, speed and course every few seconds. Two governments publish what their shore stations hear, free and without a key — Finland, through Fintraffic’s Digitraffic, and Norway, through the Coastal Administration’s Kystdatahuset. This desk reads both and draws every vessel in them. That is the northern Baltic and the Norwegian coast north to Svalbard. It is not the world.

A ship is drawn where it last said it was, and every position carries the age of that report: seconds for most, minutes for some. Under the map, Finland’s ports report their traffic to Portnet: the ships that arrived and departed in the last 24 hours and the ones expected in the next 48.

Reading the two feeds…

The water

Every vessel the two networks heard.

Blue is cargo, orange a tanker, green a passenger ship; every other craft is grey, and the keys below say each kind in words and switch it on or off. An arrow is a vessel under way, pointing along its course; a dot is one that is stopped or sends no course. Press a vessel for its card. The same vessels are a table under the map.

Vessel positions

waiting for the feeds

Finland. Asking Digitraffic…

Norway. Asking Kystdatahuset…

Waters

The page asks again by itself while it is in front of you: Finland’s positions every minute, Norway’s every two, the port lists every five. The relay on this site keeps one copy of each answer for every reader, so a press inside that time brings the same read.

Kinds of vessel — press to hide or show

  • under way, pointing along its course
  • stopped, or no course sent
  • faded: the report is over ten minutes old
  • ringed: the vessel whose card is open

Base map: OpenFreeMap tiles (© OpenMapTiles, data © OpenStreetMap contributors), drawn by MapLibre. Close in, each vessel is labelled with its name and the age of its report. Use two fingers to move the map on a touch screen, and Ctrl or ⌘ with the wheel to zoom.

The list

The same vessels, as a table.

Everything on the map, in rows, with the waters and the kinds chosen above applied. Search by name, MMSI or IMO number, call sign or destination. A destination is whatever the crew typed into the transponder, and is printed as it came.

Vessels in this read

no vessels read yet

Reading the two feeds…

Port traffic · Finland’s ports

Arrived, departed, expected.

Every call at a Finnish port is reported to Portnet, and Digitraffic publishes it: the times are the ones the ship’s agent or the port entered. Three lists: arrived in the last 24 hours, departed in the last 24, expected in the next 48. Times are Helsinki time. This is Finland only — Norway’s open data publishes voyages a day late, so no Norwegian port is listed here.

Portnet port calls

waiting for Portnet

Finnish ports. Asking Digitraffic…

List

Reading Portnet’s port calls…

Method

Two governments’ open feeds. No key, nothing guessed.

Open, live AIS is rare: most of what is published wants a key, a contract or a receiver of your own to trade. These two were checked with real requests on 6 October 2026 and answer anyone. Every figure on this page is one of theirs, printed with its time.

Finland — Fintraffic, Digitraffic marine API

What is read. meri.digitraffic.fi/api/ais/v1/locations, asked for the last hour: the latest position report of every vessel Finland’s shore stations heard. /api/ais/v1/vessels: each vessel’s latest static message — name, type, call sign, destination and the ETA the crew keyed.

Where. The Finnish coast and the sea its stations reach: the Gulf of Finland, the Archipelago and Åland seas, the Gulf of Bothnia and the northern Baltic. A ship out of radio range of those stations is not in it.

How fresh. Digitraffic keeps each answer for a minute; this site’s relay asks it at most once a minute for positions and once every ten minutes for names, and the page asks the relay once a minute while it is in front of you. That is more often than Digitraffic’s own list of update times recommends (every five minutes), and far inside the limit its instructions set (60 requests a minute). The age printed beside a vessel is counted from the report’s own timestamp, so it is the true age whatever the wait.

Source: Fintraffic / digitraffic.fi, licence CC 4.0 BY. Changed here: cut down to the columns shown, coordinates rounded to five decimals.

Norway — Kystverket, Kystdatahuset Open API

What is read. kystdatahuset.kystverket.no/ws/api/ais/realtime/geojson: every ship the Norwegian Coastal Administration’s network heard in about the last ten minutes, each with its name, type, size, destination and a short track. This page keeps the last point of the track. That answer carries no ETA, so the card of a vessel heard by Norway’s network has no ETA line.

Where. The Norwegian coast and the sea areas that network covers, north to Svalbard. BarentsWatch’s developer pages say Kystverket’s open AIS data leaves out fishing vessels under 15 metres and leisure craft under 45 metres; this page cannot see what was left out. Some entries in the feed carry no position, or the 0°, 0° of a set with no fix; the status line counts them and they are not drawn.

How fresh. The relay asks at most once every two minutes, and the page asks the relay every two minutes. A ship that goes quiet for ten minutes drops out of this feed altogether.

Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Norwegian Coastal Administration (Kystverket), through Kystdatahuset. Changed here: each track reduced to its last point, cut down to the columns shown, coordinates rounded to five decimals.

Port traffic — Portnet, through Digitraffic

What is read. meri.digitraffic.fi/api/port-call/v1/port-calls, three times: calls with an actual arrival in the last 24 hours, with an actual departure in the last 24, and with an estimated arrival in the next 48. The relay asks at most every five minutes.

What the times are. Estimates come from the ship’s agent; actual times from the agent or the port, sometimes hours after the event. A call that already carries an arrival time is not listed as expected. Where Portnet writes Ei tiedossa (Finnish for “not known”) for a berth, the page leaves the berth out.

What is left behind. Portnet’s answer also carries crew and passenger counts, agents’ names and fields for the master’s name. The relay drops them; they never reach your browser.

Joining a call to the map. By MMSI where Portnet gives one, otherwise by IMO number. A call whose ship is not in the current AIS read says so. Port names are from the SafeSeaNet location list Digitraffic publishes, in its own spelling.

Source: Fintraffic / digitraffic.fi, licence CC 4.0 BY. Changed here: one row per call, cut down to the columns shown.

What this page does not know

  • The rest of the sea. Sweden’s, Denmark’s, Germany’s, Poland’s and the Baltic states’ coasts appear only where a Finnish or Norwegian station happens to hear them; the open ocean and every other coast do not appear at all.
  • Silent ships. A vessel with its transponder off, a warship that does not broadcast, a small boat that carries no AIS: none is here.
  • Where a ship is now. Only where it last reported, and when. Nothing is predicted or moved forward.
  • Whether a broadcast is true. Name, type, destination and ETA are typed in by the crew and are often stale or abbreviated. The position and the speed are the ship’s own satellite fix: interference with satellite navigation, which has been reported in the Gulf of Finland, can put a ship where it is not — on land, or far from its true place — and the page draws what was broadcast and cannot tell. AIS codes for “not available” are printed as not reported.
  • The flag, strictly. It is read from the first three digits of the MMSI — the country that issued the radio number, by the ITU’s table — which is nearly always the flag state, but is not a registry lookup. In the port lists the flag is Portnet’s own.
  • Cargo, owners, crews, prices. None is in these feeds.

Not for navigation. This is a reading desk. Never use it to steer, to keep a watch, or to decide that a ship is safe or where it is.

What is sent where

The page asks one file on this site, berth/ship-relay.php, six fixed questions; that file asks Fintraffic and Kystverket from the server, says who it is, and keeps one copy of each answer for every reader. Neither source sees your address. When a source is slow, down or rate-limiting, the line for that feed says so in words and the last copy stays up with its age: thirty minutes at most for positions, six hours for port calls, and a day for the names and types of Finland’s vessels (its line says when they come from an earlier copy). An answer that is a list of nothing, where the last one held ships, is treated the same way: the source is silent, not the sea empty.

The base map is the one thing fetched from another server: your browser asks OpenFreeMap (tiles.openfreemap.org) for the tiles of the area you look at, which shows it your IP address. If it does not answer, the vessels are drawn on a plain field and the table is unaffected. The map is drawn by MapLibre GL JS 5.24.0 (BSD 3-Clause); map data © OpenStreetMap contributors, © OpenMapTiles.

Nothing is stored in your browser. The address keeps the vessel you opened (#v= and its MMSI), the waters, the list and the port, so a link opens the same view; the site’s analytics may record the address as it stands. No key is used anywhere: two keyed routes were weighed and left out — BarentsWatch serves the same Norwegian network this page already reads without one, and a world-wide stream such as aisstream.io needs a connection held open that this site’s hosting cannot keep.

The country names behind the MMSI digits are the ITU’s Table of Maritime Identification Digits as reproduced on Wikipedia, read on 6 October 2026. Ship types and navigational statuses are the AIS standard’s own lists (ITU-R M.1371).