303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Climate and environment
Provincie Fryslân
Dutch source

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.

Climate and environmentHousing and landTraffic and transportOpenAPIMap layerNetherlands · feature (province of Fryslân)
Reachable · checked 17:23
geoportaal.fryslan.nl
Screenshot of geoportaal.fryslan.nl

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.

563in total
538map layers
19rasters
9 mfeatures in total

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.

Source: Provincie Fryslân, ArcGIS-dienst ProvinciaalGeoRegister/PGR2 (laag Jongere bouwkunst 1850-1940) · opgehaald 25 oktober 2026Open the table Single block

What can you do with it?3 ideas

Getting started

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.

Getting started

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.

Advanced

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

  1. 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
  2. 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
  3. 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
  4. 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

Similar sources

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

StandardArcGIS RESTdocs
Access no key

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

Size581

leaf layers in 39 queryable services (492 unique names), plus 19 raster layers tested

Formats

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'.
  • GEThttps://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.
  • GEThttps://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.

=<>>>=<<=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 12 · ProvinciaalGeoRegister/PGR2/MapServer/80 (6.694 gebouwen)

NameTypeMeaning
OBJECTIDOIDObjectsleutel
MIPCODEStringCode uit het Monumenten Inventarisatie Project (bv. Fr-Bil-70)
NAAMStringNaam van het gebouw
HOOFDCATStringHoofdcategorie (Woningen en woningbouwcomplexen, Boerderij, molen, bedrijf …)
SUBCATStringSubcategorie
FUNCTIEStringOorspronkelijke functie
DATERINGStringBouwperiode of jaar, als tekst
STRAATStringStraat
HUISNRStringHuisnummer
POSTCODEStringPostcode
PLAATSStringPlaats
GEMEENTEStringGemeente (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

More from Fryslân in our index

739 datasets in Geoportaal Provincie Fryslân, data.overheid.nl, Nationaal Georegister. These changed most recently.

All about Fryslân

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