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.
| Parameter | Type | Description |
|---|---|---|
station | string | Station id, e.g. navtex-tallinn-f (see /api/v1/stations). |
navarea | I … XXI | NAVAREA of the station, as a Roman numeral. |
subject | A … Z | Subject letter (B2), e.g. B for meteorological warnings. |
q | string | Full-text search in the message text (whole words; quotes and -word work). |
ref | string | Warning number, e.g. WZ 641/26 or NAVAREA I 123/26. |
inforce | 1 | Only warnings still in force: leaves out those cancelled by a later broadcast or withdrawn from their official list. |
limit | 1 … 200 | Number of messages. Default 50. |
Example: /feeds/rss.xml?navarea=I&subject=B
GET /feeds/atom.xml
The same as Atom 1.0.
| Parameter | Type | Description |
|---|---|---|
… | Same parameters as /feeds/rss.xml. |
GET /feeds/messages.geojson
Positions found in message texts, one feature per message (Point or MultiPoint). Properties: id, url, title, subject, firstSeen.
| Parameter | Type | Description |
|---|---|---|
station | string | Station id, e.g. navtex-tallinn-f (see /api/v1/stations). |
navarea | I … XXI | NAVAREA of the station, as a Roman numeral. |
subject | A … Z | Subject letter (B2), e.g. B for meteorological warnings. |
q | string | Full-text search in the message text (whole words; quotes and -word work). |
ref | string | Warning number, e.g. WZ 641/26 or NAVAREA I 123/26. |
inforce | 1 | Only warnings still in force: leaves out those cancelled by a later broadcast or withdrawn from their official list. |
limit | 1 … 200 | Messages 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).
| Parameter | Type | Description |
|---|---|---|
station | string | Station id, e.g. navtex-tallinn-f (see /api/v1/stations). |
navarea | I … XXI | NAVAREA of the station, as a Roman numeral. |
subject | A … Z | Subject letter (B2), e.g. B for meteorological warnings. |
q | string | Full-text search in the message text (whole words; quotes and -word work). |
ref | string | Warning number, e.g. WZ 641/26 or NAVAREA I 123/26. |
before | ISO 8601 time | Only messages first received before this time; use the next link to page back. |
inforce | 1 | Only warnings still in force: leaves out those cancelled by a later broadcast or withdrawn from their official list. |
limit | 1 … 200 | Number 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).
| Parameter | Type | Description |
|---|---|---|
id | integer | Message 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 }] }.
| Parameter | Type | Description |
|---|---|---|
station | string | Station id. Required. |
days | 1 … 31 | How 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.