303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Climate and environment

Rijnland water authority geoservices (ArcGIS REST)

The ArcGIS server of the Rijnland water authority, hosted by a supplier (enl-mcs.nl). Almost every service is one type of managed asset: valves, culverts, pumping stations, weirs, watercourses, flood defences. On 16 October 2026 our index held 230 layers; the current register of structures alone has 57,032 features and the watercourses 187,861 line segments. Rijnland is not listed as a publisher on data.overheid.nl or in the National Georegister, so this is the only public entry point. On reuse, Rijnland itself says it is not allowed without permission; we only show descriptions and counts.

Climate and environmentHousing and landOpenAPIMap layerNetherlands · feature (Rijnland management area)
Reachable · checked 17:23
rijnland.enl-mcs.nl
Screenshot of rijnland.enl-mcs.nl

Everything that's in it230

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

230in total
224map layers
6rasters
2.6 mfeatures in total

Structures in Rijnland's current register by type: most culverts (34,159 structures), then bridges and weirs

Structures in Rijnland's current register by type, oktober 2026, in structures. Total: 57,032; the largest 12 of 12 categories are shown. Culverts is 60% of the total. Counted with one statistics query on the layer (field KUNSTWERKTYPE). Layer LeggerKunstwerkVigerendPuntSymbool (point symbols); linear structures are in a separate layer.

Source: Hoogheemraadschap van Rijnland, ArcGIS-dienst Leggers/Legger_kunstwerkenVigerend · opgehaald 25 oktober 2026Open the table Single block

What can you do with it?3 ideas

Getting started

What does a water authority actually manage?

The register of structures counts 34,159 culverts, 15,337 bridges, 2,602 weirs and 468 pumping stations. One statistics call shows how many assets lie behind a region's water management.

Getting started

Read the definitions

Most services carry a description with the definition of the asset (what is a culvert, a valve). Useful as a glossary for a story about water.

Advanced

Current versus draft

The Leggers folder has the current register and the draft for consultation side by side (surface water, structures, regional flood defences). Compare the two to see what the authority wants to change.

How to process it4 steps

  1. Browse by folder

    The root holds the current assets (usually one layer per service); Leggers the legal registers; folders with a year are old snapshots.

    https://rijnland.enl-mcs.nl/arcgis/rest/services/Leggers?f=json
  2. Count by type

    Statistics work: a single call returns the number per type of structure.

    https://rijnland.enl-mcs.nl/arcgis/rest/services/Leggers/Legger_kunstwerkenVigerend/MapServer/0/query?where=1%3D1&outStatistics=%5B%7B%22statisticType%22%3A%22count%22%2C%22onStatisticField%22%3A%22OBJECTID%22%2C%22outStatisticFieldName%22%3A%22n%22%7D%5D&groupByFieldsForStatistics=KUNSTWERKTYPE&orderByFields=n%20DESC&f=json
  3. Look at a few features

    With outSR=4326 and f=geojson. maxRecordCount is usually 1,000; keep it to a few features as long as the licence is not open.

    https://rijnland.enl-mcs.nl/arcgis/rest/services/Leggers/Legger_kunstwerkenVigerend/MapServer/0/query?where=KUNSTWERKTYPE%3D%27Gemaal%27&outFields=CODE,NAAM,KUNSTWERKTYPE&outSR=4326&resultRecordCount=5&f=geojson
  4. Just the count

    returnCountOnly gives the number of features in a layer without downloading anything.

    https://rijnland.enl-mcs.nl/arcgis/rest/services/Watergang_as/MapServer/0/query?where=1%3D1&returnCountOnly=true&f=json

Interesting combinations

Similar sources

What to watch out for

  • Not open according to Rijnland

    Two of these services are also items in Rijnland's ArcGIS Online. There it says: copying or sharing materials is not allowed without prior permission. It is the only statement on reuse; ask permission before you publish.

  • Old snapshots next to current layers

    Folders such as EFM2020, EFM2021, KPI2020 and WBP6 hold old versions (e.g. Regionale kering en zone 2018). Choose deliberately; layers carry no dates.

  • Test services

    Pilot_data_portaal_afvalwaterketen is labelled 'Data portaal - test' on the server itself (waste water systems of Alphen aan den Rijn, Bodegraven-Reeuwijk and Waddinxveen). Do not use it as an official source.

  • Server at a supplier

    The address (rijnland.enl-mcs.nl) belongs to a supplier, not to Rijnland itself, and may change with a new contract.

APIArcGIS REST · read 16 Oct 2026

StandardArcGIS RESTdocs
Access no key

No key or token: the directory and all calls below worked anonymously. tested

Size234

leaf layers in 128 queryable services (206 unique names) tested

Formats

jsongeojsonpbfpng (export, WMS)

Base URL

https://rijnland.enl-mcs.nl/arcgis/rest/services

Endpoints 8

  • GET?f=jsonDirectory: version, folders and services (name + type).
  • GET/{map}?f=jsonServices in one folder.
  • GET/{dienst}/MapServer?f=jsonService: layers and tables (id, name, group layer or not), maxRecordCount, capabilities, projection, description.
  • GET/{dienst}/MapServer/{laag}?f=jsonLayer: fields (name, type, alias, length), geometry type, maxRecordCount, supportedQueryFormats and advancedQueryCapabilities (pagination, statistics, orderBy, distinct).
  • GET/{dienst}/MapServer/{laag}/queryQuery features with a where clause or spatial filter; also count (returnCountOnly) and group (outStatistics). Response in JSON, GeoJSON or PBF.
  • GET/{dienst}/MapServer/legend?f=jsonLegend per layer: labels and symbols (PNG as base64).
  • GET/{dienst}/MapServer/export?bbox=…&bboxSR=4326&size=600,400&format=png&f=imageMap image as PNG for a rectangle; with f=json you get a link to the image. Without bbox: error 'bbox must be specified'.
  • GEThttps://rijnland.enl-mcs.nl/arcgis/services/{map}/{dienst}/MapServer/WMSServer?request=GetCapabilities&service=WMSWMS 1.3.0 of the same MapServer: path without /rest/ and with /WMSServer. Only for services whose supportedExtensions lists WMSServer.

Filtering platform

SQL-like where clause on the layer's fields, plus an optional spatial filter (geometry). Group and count with outStatistics.

=<>>>=<<=LIKEINIS NULLBETWEENANDORNOT

Parameters 13

whereCondition 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
outFieldsFields in the response, comma-separated, or * for all fields.tested
returnGeometryfalse = attributes only (much smaller response).tested
outSRProjection of the geometry in the response; 4326 = degrees (WGS84). Default is the layer's projection, here RD (28992).tested
fFormat: json (Esri JSON), geojson, pbf (protobuf), pjson (indented) or html (browse in the browser).tested
resultOffsetPagination: number of features to skip (from 0). Use together with orderByFields for a stable order.tested
resultRecordCountMaximum number of features in this response (capped at the layer's maxRecordCount).tested
orderByFieldsSort order, e.g. 'OBJECTID' or 'n DESC' (also on a statistics field).tested
returnCountOnlytrue = only the number of features matching where: {"count": …}.tested
outStatisticsServer-side statistics: list of {statisticType, onStatisticField, outStatisticFieldName}; statisticType count, sum, min, max, avg, stddev or var. URL-encode it.tested
groupByFieldsForStatisticsFields to group by with outStatistics (like GROUP BY).tested
returnDistinctValuestrue with outFields and returnGeometry=false: the unique values of those fields.tested
geometrySpatial 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 · Leggers/Legger_kunstwerkenVigerend/MapServer/0 (57.032 kunstwerken)

NameTypeMeaning
OBJECTIDOIDObjectsleutel
CODEStringCode van het kunstwerk (bv. 223-033-00058)
NAAMStringNaam (vaak leeg)
KUNSTWERKTYPEStringSoort: Duiker, Brug, Stuw, Gemaal …
STATUSOBJECTStringStatus van het object (gerealiseerd …)
HOOFDFUNCTIEStringHoofdfunctie
BEDIENINGStringWie bedient
GEWOONONDERHOUDStringWie het gewone onderhoud doet
STATUSLEGGERStringStatus in de legger
OBJECTBEGINTIJDDateBegin van het object (vaak leeg)

Limits and pitfalls

  • At most 1.000 (meestal; 29 diensten 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
  • Regarding reuse, Rijnland states in its ArcGIS Online items that copying or sharing without prior permission is not allowed. The API works anonymously, but ask for permission before publishing data; counts and descriptions are safe. experience
  • ArcGIS Server 12.1, the newest of the servers in our index. Almost every service is one kind of managed asset (valves, culverts, pumping stations, watercourses) with a meaningful service description. tested
  • Folders with a year (EFM2020, EFM2021, KPI2020, WBP6) are old snapshots; Leggers/…Vigerend is the current state. experience
  • 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 server gives no modification date per service or layer (no editingInfo). How current a layer is, is not stated. tested
  • Group layers (with subLayerIds) have no query; query the leaf layers below them. Raster layers have no fields and no count. platform

Try it HTTP 200 · 811 ms · 16 Oct

https://rijnland.enl-mcs.nl/arcgis/rest/services/Leggers/Legger_kunstwerkenVigerend/MapServer/0/query?where=1%3D1&outStatistics=[{"statisticType"%3A"count"%2C"onStatisticField"%3A"OBJECTID"%2C"outStatisticFieldName"%3A"n"}]&groupByFieldsForStatistics=KUNSTWERKTYPE&orderByFields=n DESC&f=json
{
  "displayFieldName": "",
  "fieldAliases": {
    "KUNSTWERKTYPE": "Kunstwerk Type",
    "n": "n"
  },
  "fields": [
    {
      "name": "KUNSTWERKTYPE",
      "type": "esriFieldTypeString",
      "alias": "Kunstwerk Type",
      "length": 50
    },
    {
      "name": "n",
      "type": "esriFieldTypeInteger",
      "alias": "n"
    }
  ],
  "features": [
    {
      "attributes": {
        "KUNSTWERKTYPE": "Duiker",
        "n": 34159
      }
    },
    {
      "attributes": {
        "KUNSTWERKTYPE": "Brug",
        "n": 15337
      }
    }
  ]
}

Shortened response, saved at harvest time. Click the URL for the real, current response.

Read from Directory: 10 folders and 96 services in the root · Layer legger kunstwerken (in force): fields · Esri: query operation (all parameters). Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.

How to fetch it

curl "https://rijnland.enl-mcs.nl/arcgis/rest/services/Leggers/Legger_kunstwerkenVigerend/MapServer/0/query?where=1%3D1&returnCountOnly=true&f=json"

Used by

More from Rijnland in our index

230 datasets in Geoservices Hoogheemraadschap van Rijnland. These changed most recently.

    All about Rijnland

    More in this topic

    See how this page is built
    bron: geoservices-rijnland
    blokken: []
    secties:
      - ideeen
      - verwerken
      - koppelingen
      - vergelijkbaar
      - beperkingen
      - code
      - gebruiktDoor
    cache:
      tag: bron:geoservices-rijnland
      ververs: na statuscheck, als de bron nieuwer is
    statuscheck:
      methode: services-directory (?f=json) bereikbaar, aantal diensten als noot; de
        server geeft geen datums
      verwacht: jaarlijks
    

    Source: content/bronnen/geoservices-rijnland.yaml · Markdown