Navtex Online

Feeds and API

All endpoints are free and need no key while the service is in development. Responses are UTF-8; times are UTC in ISO 8601, for example 2026-01-31T21:00:00Z. Please cache, and poll at most once a minute.

Feeds

GET /feeds/rss.xml

Latest messages as RSS 2.0. Each item has the original text and the readable version.

ParameterTypeDescription
stationstringStation id, e.g. navtex-tallinn-f (see /api/v1/stations).
navareaI … XXINAVAREA of the station, as a Roman numeral.
subjectA … ZSubject letter (B2), e.g. B for meteorological warnings.
qstringFull-text search in the message text (whole words; quotes and -word work).
refstringWarning number, e.g. WZ 641/26 or NAVAREA I 123/26.
inforce1Only warnings still in force: leaves out those cancelled by a later broadcast or withdrawn from their official list.
limit1 … 200Number of messages. Default 50.

Example: /feeds/rss.xml?navarea=I&subject=B

GET /feeds/atom.xml

The same as Atom 1.0.

ParameterTypeDescription
…Same parameters as /feeds/rss.xml.

Example: /feeds/atom.xml?station=navtex-be-oostende-t

GET /feeds/messages.geojson

Positions found in message texts, one feature per message (Point or MultiPoint). Properties: id, url, title, subject, firstSeen.

ParameterTypeDescription
stationstringStation id, e.g. navtex-tallinn-f (see /api/v1/stations).
navareaI … XXINAVAREA of the station, as a Roman numeral.
subjectA … ZSubject letter (B2), e.g. B for meteorological warnings.
qstringFull-text search in the message text (whole words; quotes and -word work).
refstringWarning number, e.g. WZ 641/26 or NAVAREA I 123/26.
inforce1Only warnings still in force: leaves out those cancelled by a later broadcast or withdrawn from their official list.
limit1 … 200Messages to scan. Default 100.

Example: /feeds/messages.geojson?subject=A

GET /live

Server-Sent Events. Sends hello on connect, then a message event ({id, title, url}) for each new message, and a ping every 15 s.

JSON API

GET /api/v1/messages

Messages, newest first. Response: { messages: [...], next }. Each message has id, url, station, header (letter, subject, subjectName, serial), refs, firstSeen, lastSeen, copies, sources, quality, text, plain (title, issued, text), positions, status (in-force, withdrawn, cancelled, unknown) and official (the matching entry of an official warning list: ref, source, url, sameWordingAsBroadcast, withdrawnAt, text).

ParameterTypeDescription
stationstringStation id, e.g. navtex-tallinn-f (see /api/v1/stations).
navareaI … XXINAVAREA of the station, as a Roman numeral.
subjectA … ZSubject letter (B2), e.g. B for meteorological warnings.
qstringFull-text search in the message text (whole words; quotes and -word work).
refstringWarning number, e.g. WZ 641/26 or NAVAREA I 123/26.
beforeISO 8601 timeOnly messages first received before this time; use the next link to page back.
inforce1Only warnings still in force: leaves out those cancelled by a later broadcast or withdrawn from their official list.
limit1 … 200Number of messages. Default 50.

Example: /api/v1/messages?subject=D&limit=5

GET /api/v1/messages/{id}

One message with every received version (versions: source, receivedAt, lastAt, repeats, complete, errorMarks, primary, text).

ParameterTypeDescription
idintegerMessage id (from /api/v1/messages).

GET /api/v1/stations

All NAVTEX stations: id, name, letter, khz, country, navarea, position [lon, lat], rangeNm, language, offAir, lastMessage, messages7d.

Example: /api/v1/stations

GET /api/v1/stations.geojson

The same stations as a GeoJSON FeatureCollection of points.

Example: /api/v1/stations.geojson

GET /api/v1/navareas.geojson

Simplified NAVAREA outlines (MultiPolygon per area) for maps. The legal limits are in IHO S-53.

Example: /api/v1/navareas.geojson

GET /api/v1/coverage

Copies received per 10-minute slot of a station, per source: { station, days, slots: [{ slot_start, source_id, receptions, complete }] }.

ParameterTypeDescription
stationstringStation id. Required.
days1 … 31How far back. Default 7.

Example: /api/v1/coverage?station=navtex-be-oostende-t&days=2

Per message

GET /messages/{id}.txt

The best copy as broadcast, plain text.

GET /messages/{id}/cap.xml

The message as a CAP 1.2 alert (Common Alerting Protocol), with positions as <circle> areas.

Coming

Webhooks (a signed POST per new message matching your filter), CSV export and higher rate limits for Pro accounts.