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

Amsterdam tree register

Every tree managed by the City of Amsterdam, each as a point on the map: species, height class, planting year, location type and whether it is a monumental tree. On 15 October 2026 it held 326,279, including 42,008 elms.

Climate and environmentHousing and landOpenAPIDownloadMap layerAmsterdam · tree
Up to date · updated 21 hours ago · checked 17:23
api.data.amsterdam.nl
Screenshot of api.data.amsterdam.nl

Amsterdam municipal trees by species: most Iep (Ulmus) (42,020 trees), then Esdoorn (Acer) and Linde (Tilia)

Amsterdam municipal trees by species, oktober 2026, in trees. Total: 326,518; the largest 12 of 159 categories are shown. Iep (Ulmus) is 13% of the total. Species from a sample of 5,000 trees; counts are exact.

Source: Gemeente Amsterdam, Bomenregister (DSO-API) · opgehaald 25 oktober 2026Open the table Single block

What can you do with it?4 ideas

Getting started

Which trees stand in your street?

Find all trees within 250 metres of a point, with species, height and planting year. In Vondelpark this turns up an oak from 1822.

Getting started

The city of the elm

Count by species. The register holds 42,008 elms, 28,493 maples and 28,370 limes. Map them per neighbourhood.

Advanced

How old is the greenery per neighbourhood?

Compute the median planting year per neighbourhood. Leave out trees with planting year 0 or empty, which is over 41,000.

Advanced

Felled and replanted

The kapenherplant table in the same dataset (36,503 rows) tracks felling and replanting per tree. Join on boomId to the main tree data.

How to process it4 steps

  1. Search around a point

    With geometrie[within]=lat,lon,metres you get all trees in a radius. Without Accept-Crs the API tells from the values whether they are degrees or RD coordinates.

    https://api.data.amsterdam.nl/v1/bomen/stamgegevens/?geometrie[within]=52.3580,4.8686,250&jaarVanAanleg[gt]=0&_fields=id,soortnaamTop,jaarVanAanleg,boomhoogteklasseActueel&_sort=jaarVanAanleg&_pageSize=3&_format=json
  2. Everything as CSV

    Pick only the fields you need; then the whole register is a manageable file. There is no ZIP export for trees.

    https://api.data.amsterdam.nl/v1/bomen/stamgegevens/?_format=csv&_fields=id,soortnaamTop,soortnaamKort,jaarVanAanleg,boomhoogteklasseActueel,stamdiameterklasse,gbdBuurtId
  3. Monumental trees on the map

    GeoJSON comes in degrees (WGS84) by default, ready for a web map. 4,146 trees have the status 'Monumentale boom'.

    https://api.data.amsterdam.nl/v1/bomen/stamgegevens/?beschermingsstatus=Monumentale%20boom&_format=geojson&_fields=id,soortnaamTop,jaarVanAanleg
  4. Link neighbourhoods to CBS

    gbdBuurtId points to the gebieden dataset. There each neighbourhood has its CBS code (cbsCode), e.g. BU0363KG03.

    https://api.data.amsterdam.nl/v1/gebieden/buurten/?_fields=identificatie,naam,cbsCode&_format=csv&_pageSize=1000

Interesting combinations

Similar sources

  • Bomen van andere gemeenten not in the index yet

    Utrecht, Rotterdam, Eindhoven, Groningen, Nijmegen and Breda also publish a tree file, each with its own fields.

  • ESA WorldCover

    Tree cover from satellite images, everywhere on earth, but no individual trees or species.

  • Copernicus Sentinel-2

    Shows how green a place is, including gardens and parks not in the register.

What to watch out for

  • Only city-managed trees

    According to the city, Amsterdam has about a million trees, of which it manages around 300,000. Trees in private gardens are missing.

  • Planting year sometimes unknown

    20,829 trees have planting year 0 and 20,758 have none. Filter with jaarVanAanleg[gt]=0.

  • Trunk diameter often empty

    For 231,865 trees the trunk diameter class is empty. The height class is filled more often (empty for 45,769).

  • Street name and condition are restricted

    Fields such as street name, condition score and pruning frequency are for staff only. Filtering on street name gives a 403; search by coordinates or neighbourhood instead.

  • API key will become mandatory

    Amsterdam will make an API key mandatory. On 15 October 2026 it was still optional; request a free one if you use the API often.

APIOpenAPI 3.0.3 · read 16 Oct 2026

StandardOpenAPI 3.0.3docs
Access no key

The description lists oauth2 (oauth2), but this endpoint works without logging in (tested). tested

Size326,324

records tested

Formats

JSONCSVGeoJSON

Base URL

https://api.data.amsterdam.nl/v1/bomen

Endpoints 24

  • GET/gebrekregistratiebevat de actuele gebrekregistratie van de bomen in beheer van gemeente Amsterdam.
  • GET/gebrekregistratie/{id}
  • GET/groeiplaatsboomTabel met gegevens over groeiplaatsen voor bomen in de openbare ruimte, inclusief beheerstatus, locatiegegevens en boomsoorten.
  • GET/groeiplaatsboom/{id}
  • GET/groeiplaatsmedebeheer
  • GET/groeiplaatsmedebeheer/{id}
  • GET/hoofdbomenstructuurbufferdeze tabel bevat de buffer van de hoofdboomstructuur (HBS). Voor bomen in de HBS geldt bij aanplant en vervanging een groeiplaatsverbetering van 25-40m3 …
  • GET/hoofdbomenstructuurbuffer/{id}
  • GET/hoofdbomenstructuurlijnendeze tabel bevat de lijnen van de hoofdboomstructuur (HBS). Voor bomen in de HBS geldt bij aanplant en vervanging een groeiplaatsverbetering van 25-40m3 …
  • GET/hoofdbomenstructuurlijnen/{id}
  • GET/kapenherplantTabel met gegevens over het kappen en herplanten van bomen in de openbare ruimte, conform Handboek Bomen 2022 en IMBOR. Omvat het volledige proces van …
  • GET/kapenherplant/{id}
  • GET/maatregelregistratiebevat de actuele maatregelregistratie van de bomen in beheer van gemeente Amsterdam.
  • GET/maatregelregistratie/{id}
  • GET/ntometingBij een Nader Technisch Onderzoek (NTO meting) wordt aan de hand van metingen bepaald of er sprake is van een verzwakking die gevolgen heeft voor de …
  • GET/ntometing/{id}
  • GET/stamgegevensbevat de actuele stamgegevens van de bomen in beheer van gemeente Amsterdam. In Amsterdam staan ongeveer 1 miljoen bomen. Deze staan in tuinen, (sport)parken, …
  • GET/stamgegevens/{id}
  • GET/stormmeldingenTijdens een storm kan schade ontstaan aan (of door) bomen. Deze tabel bevat storm meldingen met betrekking tot de bomen in beheer van gemeente Amsterdam. …
  • GET/stormmeldingen/{id}
  • GET/veiligheidsinspectiesbevat de veiligheidsinspecties van de bomen in beheer van gemeente Amsterdam. Elke rij in de dataset is 1 inspectie van 1 boom.
  • GET/veiligheidsinspecties/{id}
  • GET/vergunningsplichtigesnoeideze tabel bevat data over vergunningsplichtige snoei.Voor het kappen, rooien, verplanten of vormsnoei van een vergunningplichtige boom of andersoortige …
  • GET/vergunningsplichtigesnoei/{id}

Filtering from the description

per field as query parameter: field=value or field[operator]=value

eqinisemptyisnulllikenotintersectswithingtgteltlte

Parameters 9

_countInclude a count of the total result set and the number of pages.Only works for responses that return a page.from the description
_csv_headerSpecify type of header for csv file (id, title, none)from the description
_csv_separatorSpecify type of separator for csv file (,, ;)from the description
_expandAllow to expand relations.from the description
_expandScopeComma separated list of named relations to expand.from the description
_fieldsComma-separated list of fields to displayfrom the description
_formatSelect the export format (json, csv, geojson)from the description
_pageSizeNumber of results to return per page.from the description
_sortWhich field to use when ordering the results.from the description

Fields 43

NameTypeMeaning and filters
idinteger/int64Unieke aanduiding van record
eqgtgteinisnullltltenot
gbdBuurtIdstringUnieke identificatie van een buurt
geometrie
eqintersectsisnullnotwithin
actueleOpkroonhoogtestringDe actuele hoogte van de boom in centimeters vanaf de grond tot aan de eerste tak
eqinisemptyisnulllikenot
typeBeheerderstringAanduiding van een publiekrechtelijke instantie of (rechts)persoon die toeziet op de instandhouding van o.a. een object, kunstwerk of waterstaatswerk. De …
eqinisemptyisnulllikenot
typeBeheerderPlusstringNadere aanduiding van de beheerder van het beheerobject.
eqinisemptyisnulllikenot
beheergebiedstringAanduiding van het beheergebied waarbinnen het beheerobject ligt. Indeling in beheergebieden is organisatiespecifiek.
eqinisemptyisnulllikenot
beoogdeOpkroonhoogtestringDe beoogde hoogte van de boom in centimeters vanaf de grond tot aan de eerste tak
eqinisemptyisnulllikenot
boombeeldstringOnderhoudssituatie van de boom.
eqinisemptyisnulllikenot
boomhoogteklasseActueelstringAanduiding van de boomhoogte in meters ingedeeld in vaste klassen.
eqinisemptyisnulllikenot
conditiescorestringMaat voor het vastleggen van de conditie van een beheerobject op basis van 6 scores.
eqinisemptyisnulllikenot
controlefrequentiestringAanduiding van de frequentie van de controle van het beheerobject.
eqinisemptyisnulllikenot
Show all 43
NameTypeMeaning and filters
conversieidstringUniek kenmerk van een beheerobject uit een oude beheerindeling.
eqinisemptyisnulllikenot
typeEigenaarstringAanduiding van een(rechts)persoon die het meest omvattend recht op een beheerobject of een zaak heeft .
eqinisemptyisnulllikenot
typeEigenaarPlusstringNadere aanduiding van de eigenaar van het beheerobject.
eqinisemptyisnulllikenot
bgttypestringNadere specificatie van het soort object.
eqinisemptyisnulllikenot
gemeentestringDe officieel vastgestelde gemeentenaam
eqinisemptyisnulllikenot
guidstringUniek nummer van het IMBOR-object
eqinisemptyisnulllikenot
idOudebeheerindelingstringUniek kenmerk van een beheerobject uit een oude Geovisia beheerindeling
eqinisemptyisnulllikenot
idGeovisiastringUniek kenmerk van een beheerobject uit een oude Geovisia beheerindeling
eqinisemptyisnulllikenot
jaarVanAanleginteger/int64Jaar waarin het beheerobject is geplaatst
eqgtgteinisnullltltenot
jaarVolgendeInspectieinteger/int64Jaar waarin het beheerobject is geplaatst volgens de inspectie.
eqgtgteinisnullltltenot
omgevingsrisicoklassestringAanduiding van het omgevingsrisico van het beheerobject.
eqinisemptyisnulllikenot
openbareRuimtestringOfficiële naam openbare ruimte
eqinisemptyisnulllikenot
snoeifasestringOmschrijving van de snoeifase van de een vegetatieobject
eqinisemptyisnulllikenot
snoeifrequentiestringAanduiding voor het aantal keren dat een vegetatieobject gesnoeid moet worden
eqinisemptyisnulllikenot
soortnaamstringAanduiding voor de soortnaam van het natuurobject die binnen het beheerobject voorkomen
eqinisemptyisnulllikenot
stamdiameterklassestringAanduiding van de diameter van de stam in diameterklassen.
eqinisemptyisnulllikenot
standplaatsstringDe fysieke locatie waar het beheerobject is geplaatst
eqinisemptyisnulllikenot
standplaatsGedetailleerdstringNadere meer gedetailleerde specificatie waar het beheerobject staat
eqinisemptyisnulllikenot
takvrijeStamstringDe benodigde takvrije stam in het eindbeeld, gemeten vanaf maaiveld tot aan de onderste gesteltak.
eqinisemptyisnulllikenot
typeObjectstringNadere aanduiding van de toestand van een beheerobject.
eqinisemptyisnulllikenot
typeSoortnaamstringDe volledige latijnse benaming van een beheerobject
eqinisemptyisnulllikenot
vrijeDoorrijhoogtestringDe benodigde vrije ruimte tussen de weg of het fietspad en de onderkant van de boomkroon of van een bouwwerk boven de weg, zoals een viaduct of tunnel.
eqinisemptyisnulllikenot
vrijeDoorrijhoogtePrimairstringDe benodigde vrije ruimte tussen de weg en de onderkant van de boomkroon of van een bouwwerk boven de weg, zoals een viaduct of tunnel
eqinisemptyisnulllikenot
vrijeDoorrijhoogteSecundairstringDe benodigde vrije ruimte tussen het fietspad en de onderkant van de boomkroon of van een bouwwerk boven het fietspad, zoals een viaduct of tunnel
eqinisemptyisnulllikenot
groeiplaatsBoomIdinteger/int64ID boomgroeiplaats
eqgtgteinisnullltltenot
beschermingsstatusGedetailleerdstringDetails bij speciale status van de boom
eqinisemptyisnulllikenot
beschermingsstatusstringSpeciale status van de boom
eqinisemptyisnulllikenot
geldigVanafstringntb
eqinisemptyisnulllikenot
mutatieDatumstring/date-timeDatum waarop laatste mutatie heeft plaatsgevonden
eqgtgteinisnullltltenot
soortnaamKortstringWetenschappelijk naam, afkomstig uit referentietabel
eqinisemptyisnulllikenot
soortnaamTopstringNederlandse soortnaam uit referentietabel
eqinisemptyisnulllikenot

Limits and pitfalls

  • _pageSize=5000 worked (1.3 MB with two fields, 0.7 s). The OpenAPI description of the whole dataset is 1.5 MB (12 tables). tested
  • geometrie[within]=lat,lon,radius in metres. Without Accept-Crs the API guesses from the values whether they are degrees or RD. from the description
  • The groeiplaatsboom table returns 403 anonymously; the other tables (kapenherplant, veiligheidsinspecties, gebrekregistratie …) are open (15 Oct 2026). tested

Try it HTTP 200 · 480 ms · 16 Oct

https://api.data.amsterdam.nl/v1/bomen/stamgegevens/?geometrie[within]=52.3580,4.8686,250&jaarVanAanleg[gt]=0&_fields=id,soortnaamTop,jaarVanAanleg,boomhoogteklasseActueel&_sort=jaarVanAanleg&_pageSize=3&_format=json
{
  "_embedded": {
    "stamgegevens": [
      {
        "id": 996267,
        "soortnaamTop": "Eik (Quercus)",
        "jaarVanAanleg": 1822,
        "boomhoogteklasseActueel": "f. 18 tot 24 m.",
        "_links": {
          "schema": "https://schemas.data.amsterdam.nl/datasets/bomen/stamgegevens/v2",
          "self": {
            "href": "https://api.data.amsterdam.nl/v1/bomen/stamgegevens/996267?_format=json",
            "title": "996267",
            "id": 996267
          }
        }
      },
      {
        "id": 996645,
        "soortnaamTop": "Plataan (Platanus)",
        "jaarVanAanleg": 1887,
        "boomhoogteklasseActueel": "c. 9 tot 12 m.",
        "_links": {
          "schema": "https://schemas.data.amsterdam.nl/datasets/bomen/stamgegevens/v2",
          "self": {
            "href": "https://api.data.amsterdam.nl/v1/bomen/stamgegevens/996645?_format=json",
            "title": "996645",
            "id": 996645
          }
        }
      }
    ]
  },
  "_links": {
    "self": {
      "href": "https://api.data.amsterdam.nl/v1/bomen/stamgegevens/?geometrie[within]=52.3580,4.8686,250&jaarVanAanleg[gt]=0&_fields…"
    },
    "next": {
      "href": "https://api.data.amsterdam.nl/v1/bomen/stamgegevens/?_fields=id%2CsoortnaamTop%2CjaarVanAanleg%2CboomhoogteklasseActu…"
    }

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

Read from OpenAPI description, 24 paths. 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://api.data.amsterdam.nl/v1/bomen/stamgegevens/?geometrie%5Bwithin%5D=52.3580,4.8686,250&_fields=id,soortnaamTop,jaarVanAanleg,boomhoogteklasseActueel&_pageSize=20&_format=json"

Used by

More from Amsterdam in our index

234 datasets in data.overheid.nl, dataportaal Amsterdam. These changed most recently.

All about Amsterdam

More in this topic

See how this page is built
bron: ams-bomen
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
  - gebruiktDoor
cache:
  tag: bron:ams-bomen
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: nieuwste mutatiedatum in de API
  verwacht: dagelijks

Source: content/bronnen/ams-bomen.yaml · Markdown