
Fryslân Province geoportal (ArcGIS REST)
The ArcGIS server of the province of Fryslân, with services in the root and in the folders Themas, ProvinciaalGeoRegister, GOG and Basemaps. On 16 October 2026 our index held 563 layers, together almost 9 million features. They include large survey files (3,646,306 water depth measurements in lakes, 2019 to 2021), the nature management plans per year since 2019, nitrogen deposition per hexagon and 6,694 buildings from the inventory of recent architecture (1850-1940). About one in ten layers is also in the National Georegister.

Everything that's in it563
All services and layers on this ArcGIS server, fetched every night. Every layer has its own page with fields, geometry and a query call.
Recent architecture (1850-1940) in Fryslân by category: most houses and housing complexes (3,666 buildings and objects), then farms, mills and businesses and religious buildings
Recent architecture (1850-1940) in Fryslân by category, oktober 2026, in buildings and objects. Total: 6,694; the largest 12 of 12 categories are shown. Houses and housing complexes is 55% of the total. Counted with one statistics query on the layer (field HOOFDCAT). 2 features have no value in this field. Layer from the Provincial GeoRegister (PGR2); the same layer is also in the CHK2 service.
What can you do with it?3 ideas
How deep is the lake?
Waterdieptemetingen meren (folder Themas, service water) has 3,646,306 survey points with depth relative to NAP and a survey date between January 2019 and September 2021. Fetch one lake and draw a depth map.
Heritage from 1850-1940
The layer Jongere bouwkunst 1850-1940 (Provincial GeoRegister) has 6,694 buildings and objects with function, date and address; over half are houses.
Nature management over the years
The natuurbeheerplannen service has the management area, ambition and search areas per year (2019 to 2025); the Provincial GeoRegister already has 2026. Compare years to see where nature was added.
How to process it4 steps
Browse by folder
Themas has one service per theme (general, soil, cultural history, agriculture, environment, nature, water …), each with dozens of layers.
https://geoportaal.fryslan.nl/arcgis/rest/services/Themas?f=json
Fetch features as GeoJSON
Filter with where and request degrees with outSR=4326. maxRecordCount differs per layer (1,000 to 20,000).
https://geoportaal.fryslan.nl/arcgis/rest/services/ProvinciaalGeoRegister/PGR2/MapServer/80/query?where=PLAATS%3D%27Leeuwarden%27&outFields=NAAM,FUNCTIE,DATERING,STRAAT&outSR=4326&resultRecordCount=5&f=geojson
Count per category
Statistics work; one call returns the number of buildings per main category.
https://geoportaal.fryslan.nl/arcgis/rest/services/ProvinciaalGeoRegister/PGR2/MapServer/80/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=HOOFDCAT&f=json
Large layers in chunks
With millions of points (water depth), filter on a waterway or area first and page with resultOffset; only request the fields you need.
https://geoportaal.fryslan.nl/arcgis/rest/services/Themas/water/MapServer/53/query?where=1%3D1&outFields=diepteNAP,peildatum,vaarwegnr&returnGeometry=false&orderByFields=OBJECTID&resultOffset=0&resultRecordCount=5&f=json
Interesting combinations


Which soil sites are there in Fryslân?
The Bodematlas on this server shows information from the Bodemloket per site; the national source has the current state.


Habitat types per Natura 2000 site
The layer Natura 2000 Habitattypen (folder Themas, service natuur) gives habitat type and quality per polygon; aggregate per site.
Similar sources
data.overheid.nlFryslân lists 88 datasets on data.overheid.nl, all public domain, and as many records in the NGR.
North Holland Province geoservices (ArcGIS REST)A larger provincial ArcGIS server, with the same kind of yearly nature management plans.
What to watch out for
- Licence not established
The server says nothing about reuse. Fryslân publishes on data.overheid.nl and in the NGR as public domain, but that is not stated with the layers here.
- Some layers are for internal use
The metadata of the asbestos roofs layer (533,994 polygons, 2019 inventory) says 'for internal use only', while the layer can be queried publicly. Read the metadata before publishing anything.
- Metadata links do not always work
Many layers only have 'Bekijk metadata' with a link as description; the one for the water depth measurements returned 404 (16 Oct 2026).
- Duplicate layers and yearly versions
AFS and AFS_WGS hold the same layers in two projections; nature management plans sit side by side per year. Choose deliberately; layers carry no dates.
APIArcGIS REST · read 16 Oct 2026
No key or token: the directory and all calls below worked anonymously. tested
leaf layers in 39 queryable services (492 unique names), plus 19 raster layers tested
jsongeojsonpbfpng (export, WMS)xml/geojson (WFS)
Base URL
https://geoportaal.fryslan.nl/arcgis/rest/services
Endpoints 9
- 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'. - GET
https://geoportaal.fryslan.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. - GET
https://geoportaal.fryslan.nl/arcgis/services/{map}/{dienst}/MapServer/WFSServer?service=WFS&request=GetCapabilitiesWFS 2.0 of the same MapServer (only if supportedExtensions lists WFSServer); GetFeature with outputFormat=GEOJSON.
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 12 · ProvinciaalGeoRegister/PGR2/MapServer/80 (6.694 gebouwen)
| Name | Type | Meaning |
|---|---|---|
OBJECTID | OID | Objectsleutel |
MIPCODE | String | Code uit het Monumenten Inventarisatie Project (bv. Fr-Bil-70) |
NAAM | String | Naam van het gebouw |
HOOFDCAT | String | Hoofdcategorie (Woningen en woningbouwcomplexen, Boerderij, molen, bedrijf …) |
SUBCAT | String | Subcategorie |
FUNCTIE | String | Oorspronkelijke functie |
DATERING | String | Bouwperiode of jaar, als tekst |
STRAAT | String | Straat |
HUISNR | String | Huisnummer |
POSTCODE | String | Postcode |
PLAATS | String | Plaats |
GEMEENTE | String | Gemeente (indeling van toen: Het Bildt bestaat niet meer) |
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
- 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
- Besides the REST API, PGR2 also has a WFS 2.0 with 81 feature types (PGR:…). Type names differ from layer names: 'Jongere bouwkunst 1850-1940' is PGR:Jongere_bouwkunst_1850-1940. outputFormat=GEOJSON works. tested
- Accented characters are broken in the data itself: FUNCTIE 'café' is stored as 'caf¿', the same in REST and WFS. tested
- The asbestos roofs layer (533,994 polygons) can be queried publicly, but the metadata says 'For internal use only'. Read the layer description before publishing; layer descriptions often only say ' Bekijk metadata '. experience
- Group layers (with subLayerIds) have no query; query the leaf layers below them. Raster layers have no fields and no count. platform
- The server gives no modification date per service or layer (no editingInfo). How current a layer is, is not stated. tested
- maxRecordCount differs per service (1,000 to 20,000); three services only support f=json. experience
Try it HTTP 200 · 329 ms · 16 Oct
https://geoportaal.fryslan.nl/arcgis/rest/services/ProvinciaalGeoRegister/PGR2/MapServer/80/query?where=1%3D1&outStatistics=[{"statisticType"%3A"count"%2C"onStatisticField"%3A"OBJECTID"%2C"outStatisticFieldName"%3A"n"}]&groupByFieldsForStatistics=HOOFDCAT&orderByFields=n DESC&f=json
{
"displayFieldName": "",
"fieldAliases": {
"HOOFDCAT": "Hoofdcat",
"n": "n"
},
"fields": [
{
"name": "HOOFDCAT",
"type": "esriFieldTypeString",
"alias": "Hoofdcat",
"length": 50
},
{
"name": "n",
"type": "esriFieldTypeInteger",
"alias": "n"
}
],
"features": [
{
"attributes": {
"HOOFDCAT": "Woningen en woningbouwcomplexen",
"n": 3666
}
},
{
"attributes": {
"HOOFDCAT": "Boerderij, molen, bedrijf",
"n": 1571
}
}
]
}Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from Directory: 7 folders and 20 services in the root · Layer Jongere bouwkunst 1850-1940: fields and capabilities · 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.fryslan.nl/arcgis/rest/services/ProvinciaalGeoRegister/PGR2/MapServer/80/query?where=PLAATS%3D%27Sneek%27&outFields=NAAM,FUNCTIE,DATERING&outSR=4326&f=geojson"
Used by
- Nationaal GeoregisterMetadata for some of these layers (86 NGR records mention this server)
More from Fryslân in our index
739 datasets in Geoportaal Provincie Fryslân, data.overheid.nl, Nationaal Georegister. These changed most recently.
- Natuurbeheerplan 2026- AgrarischZoekGebied2026-09-09
- INSPIRE AreaManagement - Ontgrondingen2026-08-19
- Snelvaren2026-08-19
- Kwel2026-08-19
- Luchtkwaliteit Provinciale Wegen (prognose 2020)2026-08-19
- INSPIRE Protected Sites - Nationale landschappen2026-08-18
More in this topic
See how this page is built
bron: geoportaal-fryslan
blokken: []
secties:
- ideeen
- verwerken
- koppelingen
- vergelijkbaar
- beperkingen
- code
- gebruiktDoor
cache:
tag: bron:geoportaal-fryslan
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/geoportaal-fryslan.yaml · Markdown


