
Gelderland Province geoportal (ArcGIS REST)
The ArcGIS Enterprise server of the province of Gelderland, with 23 open folders by theme (Infra, Natuur, Milieu_Stikstof, Omgevingsverordening …). On 16 October 2026 our index held 1,027 map layers, from trees along provincial roads and road accidents (BRON, 2017 to 2024) to nitrogen deposition per hexagon. The accompanying Portal (geoportaal.gelderland.nl/portaal) searches 1,011 public services with readable titles and a modification date; the newest item was from 13 October 2026.

Everything that's in it1,033
All services and layers on this ArcGIS server, fetched every night. Every layer has its own page with fields, geometry and a query call.
Registered road accidents in Gelderland (BRON, provincial layer): 15,200 accidents in 2024, 5% less than in 2017
Registered road accidents in Gelderland (BRON, provincial layer), 2017 – 2024, in accidents. The highest point was 2019 (16,512).
Map layers on the Gelderland ArcGIS server by folder: most Hosted (321 layers), then Infra and Overig
Map layers on the Gelderland ArcGIS server by folder, oktober 2026, in layers. Total: 1,023; the largest 12 of 23 categories are shown. Hosted is 31% of the total. Counted in the server's own services directory: 1,023 leaf layers in 261 services with layers, across 23 folders. Group layers, tables, tile services and system folders are not counted. The Hosted folder holds the layers published through Gelderland's own Portal.
What can you do with it?4 ideas
Accidents on your road
The layer Ongevallen registratie (folder Infra) has 119,275 accidents from BRON, 2017 to 2024, with street name, town and road authority. Filter on a street or road number and map them.
Search the Portal, fetch from the server
Layer names on the server are technical; the Portal has titles such as 'Recreatie- Fietspad langs provinciale wegen' with a link to the layer. Search there, then query the REST server for the data.
Oak processionary moth along the roads
Bestrijding eikenprocessierups nesten 2020 - 2024 (folder Infra) tracks per oak along provincial roads whether nests were found. In 2020 10,648 oaks were marked 'EPR aanwezig', in 2023 2,204. Note: in 2024 the layer only says 'inspection carried out'.
Nitrogen per hexagon
The Milieu_Stikstof folder has deposition, critical deposition value and exceedance per hexagon (100,771 cells). Combine with the Natura 2000 areas to see where exceedance is largest.
How to process it4 steps
Find a layer in the Portal
The Portal search API returns title, tags, modification date (modified, in milliseconds) and the layer url.
https://geoportaal.gelderland.nl/portaal/sharing/rest/search?q=ongevallen&f=json
Fetch GeoJSON
With f=geojson and outSR=4326 you get a file that fits a web map directly. maxRecordCount differs per layer (usually 2,000, for this layer 20,000).
https://geoportaal.gelderland.nl/gisserver/rest/services/Infra/Infra/MapServer/229/query?where=jaar%3D%272024%27&outFields=jaar,ong_tot,ong_let,stt_naam,wpsnaamnen&outSR=4326&resultOffset=0&resultRecordCount=5&f=geojson
Let the server count
outStatistics with groupByFieldsForStatistics counts or sums per category in a single call. Here: accidents per year.
https://geoportaal.gelderland.nl/gisserver/rest/services/Infra/Infra/MapServer/229/query?where=1%3D1&outStatistics=%5B%7B%22statisticType%22%3A%22sum%22%2C%22onStatisticField%22%3A%22ong_tot%22%2C%22outStatisticFieldName%22%3A%22n%22%7D%5D&groupByFieldsForStatistics=jaar&f=json
Skip the tile services
Besides queryable layers, the Hosted folder holds tile services (capabilities TilesOnly): you cannot query those, only display map tiles.
https://geoportaal.gelderland.nl/gisserver/rest/services/Hosted?f=json
Interesting combinations


Are busy provincial roads also the unsafe ones?
Count accidents per road number and set them next to NDW traffic volumes on the same road sections.


Where is the critical deposition value exceeded most?
Overlay the hexagons with exceedance on the Natura 2000 sites and aggregate per site.
Similar sources
data.overheid.nlGelderland lists 201 datasets on data.overheid.nl, most under a public domain mark, with titles in the same 'Theme- Name' pattern as the Portal.
- OOverijssel Province geoportal (ArcGIS REST)
Also a provincial ArcGIS server, but without a Portal, without dates and with a proxy that does not allow statistics.
What to watch out for
- Licence not established
Server and Portal say nothing about reuse (licenseInfo empty on 100 items checked). Gelderland itself publishes on data.overheid.nl mostly under a public domain mark.
- Folders behind a token
IMGEO, Intern, Klimaat and Test require a token (499). We skip those; the rest is open.
- Dates only in the Portal
The REST server gives no modification date per layer. The Portal does (modified per item), but not every layer has an item.
- Accident data becomes less complete
According to the accident layer's description, 'in recent years fewer details have been available because of the GDPR'. Compare years with care.
- Weak descriptions
Many services only say 'Geen metadata'. copyrightText is a 32-character code, not a name or licence.
APIArcGIS REST · read 16 Oct 2026
No key for the public folders. Five folders (IMGEO, Intern, Klimaat, Test, Utilities) return 'Token Required' (code 499). tested
leaf layers in 100 queryable services (605 unique names), plus 161 tile services in the Hosted folder tested
jsongeojsonpbfpng (export)
Base URL
https://geoportaal.gelderland.nl/gisserver/rest/services
Endpoints 7
- 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'.
The APIs of this source 1 · from the provider's documentation from the description
Portal-zoekindex (ArcGIS Enterprise)
Better entry point for titles and dates: 1,011 public Feature and Map Service items, with readable title ('Theme- Name'), description, tags, modified and the layer url.
https://geoportaal.gelderland.nl/portaal/sharing/rest- GET
/search?q=ongevallen&f=jsonItems zoeken (q in Lucene-stijl, num, start, sortField=modified, sortOrder=desc) - GET
/content/items/{id}?f=jsonEén item met alle metadata
Filtering platform
SQL-like where clause on the layer's fields, plus an optional spatial filter (geometry). Group and count with outStatistics.
Parameters 13
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 14 · Infra/Infra/MapServer/229 (119.275 locaties, 2017–2024)
| Name | Type | Meaning |
|---|---|---|
objectid | OID | Objectsleutel |
jaar | String | Jaar van het ongeval, als tekst ('2024') |
ong_tot | Integer | Totaal aantal ongevallen op deze plek |
ong_ums | Integer | Ongevallen met uitsluitend materiële schade |
ong_let | Integer | Ongevallen met letsel |
ong_dod | Integer | Ongevallen met een dodelijk slachtoffer |
sla | Integer | Aantal slachtoffers |
dod | Integer | Aantal doden |
wegbehsrt | String | Soort wegbeheerder (R = Rijk, P = provincie, G = gemeente …) |
wegbehnaam | String | Wegbeheerder |
stt_naam | String | Straatnaam |
wpsnaamnen | String | Woonplaats |
Show all 14
| Name | Type | Meaning |
|---|---|---|
latitude | Double · graden | Breedtegraad |
longitude | Double · graden | Lengtegraad |
Limits and pitfalls
- At most 20.000 (deze laag; elders meestal 2.000, soms 1.000 of meer) 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
- 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 MapServers here have no WMS extension (supportedExtensions empty; /WMSServer returns HTTP 400). Map images only via export. tested
- 161 services in the Hosted folder are tile services (TilesOnly): no fields and no query. experience
- The REST server gives no dates. The Gelderland Portal does: /portaal/sharing/rest/search gives per item a title ('Infra- Ongevallen registratie'), description, modified (newest 13 Oct 2026) and the layer url. tested
- Field names are short (ong_let, wpsnaamnen), but the aliases in /{layer}?f=json are readable ('Aantal ongevallen met letsel'). tested
- Connections to this server sometimes failed in earlier harvests with a timeout or SSL error; retry. experience
- 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 · 732 ms · 16 Oct
https://geoportaal.gelderland.nl/gisserver/rest/services/Infra/Infra/MapServer/229/query?where=1%3D1&outStatistics=[{"statisticType"%3A"sum"%2C"onStatisticField"%3A"ong_tot"%2C"outStatisticFieldName"%3A"n"}]&groupByFieldsForStatistics=jaar&orderByFields=jaar&f=json
{
"displayFieldName": "",
"fieldAliases": {
"jaar": "jaar",
"n": "n"
},
"fields": [
{
"name": "jaar",
"type": "esriFieldTypeString",
"alias": "jaar",
"length": 7
},
{
"name": "n",
"type": "esriFieldTypeBigInteger",
"alias": "n"
}
],
"features": [
{
"attributes": {
"jaar": "2017",
"n": 15957
}
},
{
"attributes": {
"jaar": "2018",
"n": 15956
}
}
]
}Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from Directory: 28 folders, no services in the root · Layer Ongevallen registratie: fields with readable aliases · Portal search index: 1,011 public items with title and modification date · 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://geoportaal.gelderland.nl/gisserver/rest/services/Infra/Infra/MapServer/229/query?where=wpsnaamnen%3D%27Arnhem%27&outFields=jaar,ong_tot,stt_naam&outSR=4326&resultRecordCount=100&f=geojson"
Used by
- Geoportaal GelderlandThe province's own Portal, with map viewers and apps built on these services
More from Gelderland in our index
1,223 datasets in Geoportaal Provincie Gelderland, data.overheid.nl. These changed most recently.
- Wegen- gemeentelijke provinciale strooiroutes2026-10-29
- Grenzen- Eigendomsgebied prov. wegen en gronden2026-10-29
- Hoofdfietsnetwerk Gelderland2026-10-27
- Omgevingsverordening- Stikstofreductiegebied2026-10-24
- Omgevingsverordening - Woningbouwregio's2026-10-24
- Omgevingsverordening- Oude bosgroeiplaatsen2026-10-23
More in this topic
See how this page is built
bron: geoportaal-gelderland
blokken: []
secties:
- ideeen
- verwerken
- koppelingen
- vergelijkbaar
- beperkingen
- code
- gebruiktDoor
cache:
tag: bron:geoportaal-gelderland
ververs: na statuscheck, als de bron nieuwer is
statuscheck:
methode: services-directory (?f=json) bereikbaar, aantal diensten als noot;
versheid = nieuwste wijziging in het Portal (sharing/rest/search)
verwacht: maandelijks
Source: content/bronnen/geoportaal-gelderland.yaml · Markdown


