# Rijkswaterstaat on ArcGIS Online

The services Rijkswaterstaat hosts in its own ArcGIS Online organisation: 474 feature services and a WFS. On 16 October 2026 we tracked 2,120 of their layers (excluding read-only copies ending in _view). Unlike the provincial servers, every layer has a last-modified date: 650 layers were updated in 2026, the newest on 15 October. It holds yearly traffic volumes on national roads (Inweva 2014 to 2025), every sand nourishment along the coast since 1952, climate risks for the main road network, charging stations, truck parkings and many project maps.

- Publisher: Rijkswaterstaat
- Area: Netherlands · Finest detail: feature (national roads, national waters, coast)
- Period: lagen gewijzigd tussen juni 2024 en oktober 2026 · Refreshed: monthly
- Access: Open · Licence: niet vastgesteld (RWS-beleid: open, tenzij)
- Join keys: dienst + laagnaam, OBJECTID, wegvak (Inweva), kustvak en raai (suppleties), RD-coördinaten (EPSG:28992) of WGS84
- Status: ok (2026-10-16) · 473 diensten · ArcGIS 12
- URL: https://rijkswaterstaat.maps.arcgis.com

## What can you do with it?
- **The busiest stretches of motorway.** Inweva2025 gives the average number of motor vehicles per working day per road section, with cars and freight separately (3,851 sections). The busiest section (one direction): A10 Schinkelbrug - Zuiderhof with 114,700 motor vehicles per day.
- **Sand for the coast.** Suppleties_v2 has 537 sand nourishments since 1952 with coastal section, location, type and volume: 674 million cubic metres in total. The largest single one is the Maasvlakte 2 coastal foundation (170 million, 2009).
- **Ten years of traffic on one road section.** There is one Inweva service per year (2014 to 2025). Join them on road section and follow the volume over time, including through the COVID years.
- **Track what changes.** Every layer has editingInfo with its last-modified date. Check weekly which layers are new or updated; that way you see projects (viewers for the A12, A27, A32) appear.

## How to process it
1. **Search the organisation.** The ArcGIS Online search index returns title, modification date and url. Note: many RWS items point to geo.rijkswaterstaat.nl, a different server not included here.
   `https://www.arcgis.com/sharing/rest/search?q=orgid%3A4D1GBrbE6xp1T4YG%20AND%20title%3ASuppleties&f=json`
2. **Look at a layer and its date.** The layer JSON gives fields, maxRecordCount (1,000 or 2,000) and editingInfo.lastEditDate in milliseconds.
   `https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11?f=json`
3. **Fetch GeoJSON.** Filter with where and request degrees with outSR=4326. Here: all nourishments that started in 2024 or later (17).
   `https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11/query?where=JaarMaandBeginUitvoering%3E%3D%27202401%27&outFields=Kustvaknaam,Locatie,Type,Volume__situ_,JaarMaandBeginUitvoering&outSR=4326&f=geojson`
4. **Sum per group.** outStatistics can also sum: the total volume per coastal section in a single call.
   `https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11/query?where=1%3D1&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Volume__situ_%22%2C%22outStatisticFieldName%22%3A%22n%22%7D%5D&groupByFieldsForStatistics=Kustvaknaam&orderByFields=n%20DESC&f=json`

## Interesting combinations
- Does the annual average match today's measurements? → [ndw-verkeer](https://www.opendataindex.nl/en/bron/ndw-verkeer.md) via wegvak en locatie. Put the Inweva volume of a road section next to the current NDW speeds and volumes at the same place.
- Do nourishments keep up with the rising sea? → [rws-waterinfo](https://www.opendataindex.nl/en/bron/rws-waterinfo.md) via kustvak en meetlocatie. Set the nourishment volume per coastal section next to water levels at the nearest stations.

## Similar sources
- [geo.rijkswaterstaat.nl (ArcGIS-server van RWS)](https://geo.rijkswaterstaat.nl/arcgis/rest/services): RWS's own server, which most NGR and data.overheid.nl records point to (2,312 and 2,147). Not yet in our index.
- [rws-waterinfo](https://www.opendataindex.nl/en/bron/rws-waterinfo.md): Measurements of water level, discharge and water quality through its own API; no map layers.
- [ndw-verkeer](https://www.opendataindex.nl/en/bron/ndw-verkeer.md): Traffic data per minute from all road authorities; Inweva gives annual averages on national roads.

## What to watch out for
- **Licence per layer not established.** The services say nothing about reuse (licenseInfo empty on 100 items checked). RWS says on its website that anyone may freely use its open data, 'unless'; whether a layer falls under that is not stated.
- **Many project and temporary services.** Besides stable series there are data rooms, designs ('A2HVKH_Ontwerp_december_2019'), viewers and Survey123 forms. Check whether a layer is an official publication.
- **Copies ending in _view.** 105 services are read-only copies of another service (name ends in _view). We skip them; use the source service.
- **Not all of RWS.** Most RWS open data is on geo.rijkswaterstaat.nl and in the NGR. This organisation is a second, smaller entry point.

## API (ArcGIS REST (ArcGIS Online))

- Base: https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services
- Access: No key or token: the directory and all calls below worked anonymously. (tested)
- Formats: json, geojson, pbf
- Size: 473 services: 472 FeatureServers and 1 WFSServer, of which 105 read-only copies (_view) (tested)
- Filtering: SQL-like where clause on the layer's fields, plus an optional spatial filter (geometry). Group and count with outStatistics.; =, <>, >, >=, <, <=, LIKE, IN, IS NULL, BETWEEN, AND, OR, NOT

### Endpoints
- `GET ?f=json`: Directory: version, folders and services (name + type).
- `GET /{dienst}/FeatureServer?f=json`: Service: layers and tables (id, name, group layer or not), maxRecordCount, capabilities, projection, description.
- `GET /{dienst}/FeatureServer/{laag}?f=json`: Layer: fields (name, type, alias, length), geometry type, maxRecordCount, supportedQueryFormats and advancedQueryCapabilities (pagination, statistics, orderBy, distinct).
- `GET /{dienst}/FeatureServer/{laag}/query`: Query features with a where clause or spatial filter; also count (returnCountOnly) and group (outStatistics). Response in JSON, GeoJSON or PBF.
- `GET /{dienst}/FeatureServer/legend?f=json`: Legend per layer: labels and symbols (PNG as base64).
- `GET /{dienst}/FeatureServer/{laag}/query?…&f=pbf`: Same query as protobuf (application/x-protobuf): compact for large layers.

### Parameters
- `where`: Condition in SQL-92 style: 1=1 for everything, text in single quotes (GEMEENTE='Zwolle'), LIKE with %, AND/OR, dates as DATE 'YYYY-MM-DD'. Required when there is no other filter. (tested)
- `outFields`: Fields in the response, comma-separated, or * for all fields. (tested)
- `returnGeometry`: false = attributes only (much smaller response). (tested)
- `outSR`: Projection of the geometry in the response; 4326 = degrees (WGS84). Default is the layer's projection, here RD (28992). (tested)
- `f`: Format: json (Esri JSON), geojson, pbf (protobuf), pjson (indented) or html (browse in the browser). (tested)
- `resultOffset`: Pagination: number of features to skip (from 0). Use together with orderByFields for a stable order. (tested)
- `resultRecordCount`: Maximum number of features in this response (capped at the layer's maxRecordCount). (tested)
- `orderByFields`: Sort order, e.g. 'OBJECTID' or 'n DESC' (also on a statistics field). (tested)
- `returnCountOnly`: true = only the number of features matching where: {"count": …}. (tested)
- `outStatistics`: Server-side statistics: list of {statisticType, onStatisticField, outStatisticFieldName}; statisticType count, sum, min, max, avg, stddev or var. URL-encode it. (tested)
- `groupByFieldsForStatistics`: Fields to group by with outStatistics (like GROUP BY). (tested)
- `returnDistinctValues`: true with outFields and returnGeometry=false: the unique values of those fields. (tested)
- `geometry`: Spatial filter: a point 'x,y' or envelope 'xmin,ymin,xmax,ymax', with geometryType (esriGeometryPoint, esriGeometryEnvelope), inSR (input projection), spatialRel (esriSpatialRelIntersects) and optionally distance + units (esriSRUnit_Meter) for a radius. (platform)

### Fields of the example layer (10)
`OBJECTID` OID, `KustVakNummer` SmallInteger, `Kustvaknaam` String, `Locatie` String, `Type` String, `Volume__situ_` Double, `JaarBeginUitvoering` Date, `JaarMaandBeginUitvoering` String, `BeginRaai` String, `EindRaai` String

### Limits and pitfalls
- At most 2.000 features per response (the layer's maxRecordCount; varies per layer, see /{layer}?f=json). If there are more, the response has exceededTransferLimit: true: fetch the rest with resultOffset and resultRecordCount. (tested)
- No key and no documented rate limit. Take it easy (a few requests per second) and prefer statistics or counts over fetching all features. (experience)
- Unlike the provincial servers, every layer has editingInfo.lastEditDate and dataLastEditDate in milliseconds (Suppleties: 29 April 2026, Inweva2025: 30 March 2026). Useful for tracking changes. (tested)
- Errors come back with HTTP 200 and a JSON object {"error": {"code": 400, …}} ('Failed to execute query.' for an unknown field in where). Always check for an error field, not just the status code. (tested)
- The directory has no folders: all 473 services are in the root. 105 names end in _view (read-only copy of another service); use the source service. (tested)
- The only WFSServer in the list (TenT_Roads_NL) returns 'Unsupported service type: WFSServer' via the REST path. There is no WMS and no export: these are hosted FeatureServers. (tested)
- Layers are in RD (EPSG:28992); request outSR=4326 for degrees. GeoJSON responses include a crs block. (tested)
- Many RWS items in the ArcGIS Online search index point to geo.rijkswaterstaat.nl (another server), not to these services. (experience)

### Example
```
https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11/query?where=1%3D1&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Volume__situ_%22%2C%22outStatisticFieldName%22%3A%22n%22%7D%5D&groupByFieldsForStatistics=Kustvaknaam&orderByFields=n%20DESC&f=json
```

## How to fetch it

### curl
```bash
curl "https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Inweva2025/FeatureServer/3/query?where=1%3D1&outFields=vbn_oms_tx,al_e_wr,vrpc_e_wr&orderByFields=al_e_wr%20DESC&resultRecordCount=10&returnGeometry=false&f=json"
```

### python
```python
import requests

laag = "https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Inweva2025/FeatureServer/3/query"
r = requests.get(laag, params={"where": "1=1", "outFields": "vbn_oms_tx,al_e_wr",
                               "orderByFields": "al_e_wr DESC", "resultRecordCount": 10,
                               "returnGeometry": "false", "f": "json"})
for f in r.json()["features"]:
    a = f["attributes"]
    print(a["al_e_wr"], a["vbn_oms_tx"])
```

## Who uses it
- [Rijkswaterstaat ArcGIS Online](https://rijkswaterstaat.maps.arcgis.com): Rijkswaterstaat map viewers and dashboards built on these services (including the coastal viewer)


## What is in it: 2,107 map layers

All services and layers on this ArcGIS server, fetched every night. Every layer has its own page with fields, geometry and a query call.

- Kinds: kaartlaag 2,081, tabel 26
- Last changed: 2026-10-31 (163 in the past 30 days)
- With an API call on the dataset page: 2,107
- Search: https://www.opendataindex.nl/api/catalogus/arcgis-rijkswaterstaat?q=… or the MCP function zoek_datasets with herkomst=arcgis-rijkswaterstaat
- Every row has its own page: https://www.opendataindex.nl/en/dataset/arcgis-rijkswaterstaat/<key>

### Folders
- 051225 Viewer A32 A7 N31 WFL1 (4)
- 061225 Viewer A32 A7 N31 WFL1 (4)
- 180325 Online viewer A31N31 WFL1 (4)
- 191131 Storymap telgebieden niet broedvogels (5)
- 191131 Storymaps bemonsteringslocaties (4)
- 191131 Storymaps Broedvogels TZ B 2023 (1)
- 191131 Storymaps Insecten ruwe data (1)
- 191131 Storymaps ruwe data Broedvogels TZ A 2023 (1)
- 191131 strorymap trintelzand 2023 vegetatie (3)
- 191131 strorymap trintelzand 2024 vegetatie (3)
- 191131 vlakken Trintelzand (1)
- 20250908 A15 Energiecorridor Online Viewer WFL1 (6)
- 2026 Juli OER A15 WFL1 (24)
- 220525 Online viewer A28A32 WFL1 (4)
- A12 Juni 2025 WFL1 (8)
- A12 Oktober 2026 2 WFL1 (3)
- A2HVKH Dataroom (59)
- A2HVKH Kabels en Leidingen voorjaar 2021 (52)
- A2HVKH Ontwerp december 2019 (79)
- A2HVKH Ontwerp VO 2 0 (31)
- actueleprojecten (1)
- Afstand tot HWN a (1)
- Afstand tot HWN o (1)
- Afvalbakken IGAdag2025 (1)
- ALKS Aqueduct (1)
- ALKS Aqueduct weergave (1)
- ALKS Convergence point (1)
- ALKS Convergence point weergave (1)
- ALKS Divergence point (1)
- ALKS Divergence point weergave (1)
- ALKS Hard shoulder (1)
- ALKS Hard shoulder running left (1)
- ALKS Hard shoulder running left weergave (1)
- ALKS Hard shoulder running right (1)
- ALKS Hard shoulder running right weergave (1)
- ALKS Hard shoulder weergave (1)
- ALKS Junction (1)
- ALKS Junction weergave (1)
- ALKS Lane reduction (1)
- ALKS Lane reduction weergave (1)
- … and 324 more folders

## Examples with real figures (1)

For each example the finding, the reference date and the call that fetches exactly these figures.

- **Sand nourishments along the coast since 1952, volume by coastal section: most Maasvlakte (189.0 million cubic metres of sand), then Noord-Holland and Delfland** (november 2026). Table https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11. [Example](https://www.opendataindex.nl/en/voorbeeld/arcgis-rijkswaterstaat-suppleties)
  - `https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11/query?where=1%3D1&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22Volume__situ_%22%2C%22outStatisticFieldName%22%3A%22n%22%7D%5D&groupByFieldsForStatistics=Kustvaknaam&orderByFields=n%20DESC&f=json`
  - `https://services-eu1.arcgis.com/4D1GBrbE6xp1T4YG/ArcGIS/rest/services/Suppleties_v2/FeatureServer/11/query?where=1%3D1&returnCountOnly=true&f=json`
