NS Rail Disruptions
NS disruptions API — current train disruptions and maintenance per station. Dutch train delays API via the NS Open Data API, cached for 5 minutes.
GET /v1/logistics/transit-disruptions
Returns active NS rail disruptions and planned maintenance notices for a given station code, sourced from the NS Open Data API.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
station_code | string | ✓ | NS station code, e.g. ASD, UT, RTD, LLD |
Common station codes
| Code | Station |
|---|---|
ASD | Amsterdam Centraal |
UT | Utrecht Centraal |
RTD | Rotterdam Centraal |
LLD | Den Haag Centraal |
EHV | Eindhoven |
AH | Arnhem Centraal |
ZL | Zwolle |
GD | Gouda |
Example request
curl -H "X-API-Key: YOUR_KEY" \
"https://api.omnizoek.nl/v1/logistics/transit-disruptions?station_code=ASD"Example response — no disruptions
{
"station_code": "ASD",
"disruptions": [],
"retrieved_at": "2026-03-06T14:00:00Z"
}Example response — active disruption
{
"station_code": "ASD",
"disruptions": [
{
"type": "maintenance",
"title": "Werkzaamheden Amsterdam CS – Utrecht",
"cause": "Railvervanging",
"start": "2026-03-07T22:00:00+01:00",
"end": "2026-03-08T06:00:00+01:00",
"impact": "Rijdt niet: IC Amsterdam – Utrecht. Neem de sprinter via Duivendrecht."
}
],
"retrieved_at": "2026-03-06T14:00:00Z"
}Response fields
| Field | Type | Description |
|---|---|---|
station_code | string | Station code as provided (uppercased) |
disruptions | array | List of active disruptions and maintenance notices |
retrieved_at | string | UTC timestamp of the NS API query (ISO 8601) |
Disruption item fields
| Field | Type | Description |
|---|---|---|
type | "disruption" | "maintenance" | Type of notice |
title | string | Short title of the disruption |
cause | string | null | Cause description (e.g. "Sein storing", "Railvervanging") |
start | string | null | Start time (ISO 8601) |
end | string | null | Expected end time (ISO 8601) |
impact | string | null | Traveller advice or affected route |
Error responses
| Status | Cause |
|---|---|
404 | Station code not found in NS |
503 | NS API is unreachable or NS_API_KEY is not configured |
Caching
Disruptions are cached per station code for 5 minutes. This balances freshness (disruptions can appear and resolve quickly) with avoiding rate-limit issues on the NS API.
Notes
- NS uses Dutch type names (
storing,werkzaamheid); the API maps these todisruptionandmaintenancefor consistent English output. - The
impactfield contains NS traveller advice — typically a detour suggestion. It is populated only when NS has issued formal advice for a disruption phase.
ZE Zone Compliance (RDW)
RDW emission zone API — ZE zone licence plate check for fuel type and Euro standard. Check whether a vehicle may enter Zero Emission zones via RDW Open Data.
Voertuighistorie (RDW)
RDW voertuighistorie API — volledig voertuigdossier op kenteken inclusief APK, terugroepacties en CO₂-uitstoot. RDW Open Data vehicle history API.