Maritime Warnings
Technical documentation
Introduction
The KNMI publishes public maritime warning datasets that describe hazardous weather conditions for maritime areas in and around the Netherlands. These datasets are intended for professional and semi-professional users such as shipping, offshore operations, water authorities, app developers and other data integrators.
This documentation covers the maritime wind warning datasets for:
- Coastal districts (Kustdistricten)
- North Sea districts (Noordzee districten)
The warnings are published as machine-readable JSON, with geometries describing fixed maritime areas. At this stage, only wind-related warnings are included.
The datasets are authoritative, operational KNMI products and are updated whenever the warning status changes.
Issuance times and validity
A dataset is published whenever the warning status changes.
In addition, a daily automatic heartbeat product is issued every day at approximately 08:30 UTC to confirm that the service is operational, even when no warnings are active.
Each publication represents the current operational state of the warnings at the time of issuance.
All times in the dataset are in UTC.
The start time of a warning is defined by the field onset.
For coastal districts, warnings generally refer to hazardous conditions expected within 6–9 hours ahead.
For North Sea districts, warnings refer to hazardous conditions expected within 9–12 hours ahead.
The field expires is included mainly for administrative and technical purposes. It should not be interpreted as the precise end time of the hazardous conditions and should therefore not be used operationally as the validity end of the warning.
Scope of the datasets
The maritime warning datasets:
- describe forecast-based warnings, not observations
- are issued for predefined, fixed geographical areas
- may contain zero active warnings, which is a valid state
- are independent from CAP and MeteoAlarm, but conceptually aligned
Spatial model
- Spatial mode: fixed-areas
- Areas are predefined and stable over time
- Each area is represented by a
PolygonorMultiPolygon - Coordinates use WGS84 (EPSG:4326) longitude/latitude
This ensures spatial consistency and predictable area identifiers.
Geographical districts
Coastal districts

North Sea districts

How to use this dataset
Important notes:
- An empty
warningsarray means no active warnings - The field
num_warningsshows the total number of active warnings in the dataset - Each publication represents the complete current state of the dataset; consumers should process the entire most recent document rather than assuming incremental updates.
- Area identifiers are stable (fixed areas) and suitable for caching
- A document is published whenever the warning status changes.
- In addition, a daily automatic heartbeat product is issued every day at approximately 08:30 UTC to confirm that the service is operational, even when no warnings are active.
- Each publication represents the current operational state of the warnings at the time of issuance.
- All times in the dataset are in UTC.
- The start time of a warning is defined by the field
onset. - For coastal districts, warnings generally refer to hazardous conditions expected within 6–9 hours ahead.
-
For North Sea districts, warnings refer to hazardous conditions expected within 9–12 hours ahead.
-
The field
expiresis included mainly for administrative and technical purposes. It should not be interpreted as the precise end time of the hazardous conditions and should therefore not be used operationally as the validity end of the warning.
Element description
Below is a description of each element in the JSON document, in the order in which they appear:
| Element | Description |
|---|---|
| metadata | Object containing product-level metadata such as source, product type, schema version and generation timestamp. |
| domain | Indicates the domain of the document. For this dataset, this is always maritime. |
| spatial_mode | Defines how spatial data is represented. In this dataset this is fixed-areas, meaning predefined areas are used. |
| num_warnings | Total number of active warnings (that is, excluding cancelled) present in the dataset at the time of publication. |
| areas | Array containing all predefined maritime areas, each including geometry and associated warnings. |
metadata object
| Field | Description |
|---|---|
| source | Originating organisation of the dataset (i.e. KNMI). |
| product | Name of the product (i.e. Maritime Warnings). |
| schema_version | Version of the JSON schema used for this dataset. |
| generated | Timestamp indicating when the dataset was generated (UTC). |
| publication_type | Value indicating whether the file was created by a meteorologist ("manual") or the timed daily heartbeat trigger ("heartbeat") |
areas object
| Field | Description |
|---|---|
| id | Unique and stable identifier of the area. |
| name_nl | Name of the area in Dutch. |
| name_en | Name of the area in English. |
| area_category | Category of the area (e.g. coastal, north-sea). |
| geometry | GeoJSON geometry defining the spatial extent of the area. |
| warnings | Array of warnings for this area (may be empty). |
warnings object
| Field | Description |
|---|---|
| author | Role or function that issued the warning (e.g. Noordzeemeteoroloog). |
| domain | Domain of the warning (maritime). |
| probability | Probability (%) that the hazardous condition will occur (100 for maritime, used for administrative and technical purposes.). |
| description_nl | Description of the warning in Dutch. |
| description_en | Description of the warning in English. |
| headline_nl | Short headline in Dutch (optional, not used for maritime warnings). |
| headline_en | Short headline in English (optional, not used for maritime warnings). |
| authority | Authority issuing the warning (i.e. KNMI). |
| level | Severity level of the warning (e.g. 1 = potentially dangerous/code yellow, 2 = dangerous/code orange, 3 = very dangerous/code red). |
| phenomenon | Type of hazard (e.g. wind). |
| onset | Start time of the expected hazardous conditions (UTC). |
| expires | Administrative expiration timestamp of the warning (UTC), Included mainly for administrative and technical purposes. It should not be interpreted as the precise end time of the hazardous conditions and should therefore not be used operationally as the validity end of the warning. |
| warning_type | Type of warning (always current for maritime warnings). |
| status | Current status of the warning (e.g. active or cancelled). Warning will be cancelled when the conditions are no longer hazardous. |
| published_warning_uuid | Unique identifier of the published warning instance. |
| event_uuid | Identifier linking different versions of the same warning event. |
| version_id | Incremental version number of the warning. |
| version_dt | Timestamp of the specific version (UTC). |
| area | GeoJSON geometry representing the affected area of the warning (may differ from the full area geometry). |
Dataset structure
{
"areas": [ ... ],
"domain": "maritime",
"metadata": { ... },
"num_warnings": 0,
"spatial_mode": "fixed-areas"
}
See also here for the full schema.
Structural elements
| Element | Description |
|---|---|
| metadata | Product and version metadata |
| domain | Dataset domain (maritime) |
| spatial_mode | Spatial representation mode |
| num_warnings | Total number of active warnings in the dataset |
| areas | List of maritime areas |
Area definition
| Field | Description |
|---|---|
| id | Stable area identifier |
| name_nl | Area name (Dutch) |
| name_en | Area name (English) |
| geometry | GeoJSON geometry |
| warnings | Active warnings (may be empty) |