
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.

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.
What can you do with it?4 ideas
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.
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.
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.
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
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
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
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
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


Trees per resident
Count trees per neighbourhood and divide by population or area from the CBS neighbourhood figures.


How much green do you see from above?
Overlay the trees on a Sentinel-2 NDVI map. Neighbourhoods with many trees but little green may have young plantings.
Similar sources
- BABomen 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-2Shows 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
The description lists oauth2 (oauth2), but this endpoint works without logging in (tested). tested
records tested
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
Parameters 9
_count | Include a count of the total result set and the number of pages.Only works for responses that return a page. | from the description |
_csv_header | Specify type of header for csv file (id, title, none) | from the description |
_csv_separator | Specify type of separator for csv file (,, ;) | from the description |
_expand | Allow to expand relations. | from the description |
_expandScope | Comma separated list of named relations to expand. | from the description |
_fields | Comma-separated list of fields to display | from the description |
_format | Select the export format (json, csv, geojson) | from the description |
_pageSize | Number of results to return per page. | from the description |
_sort | Which field to use when ordering the results. | from the description |
Fields 43
| Name | Type | Meaning and filters |
|---|---|---|
id | integer/int64 | Unieke aanduiding van record eqgtgteinisnullltltenot |
gbdBuurtId | string | Unieke identificatie van een buurt |
geometrie | eqintersectsisnullnotwithin | |
actueleOpkroonhoogte | string | De actuele hoogte van de boom in centimeters vanaf de grond tot aan de eerste tak eqinisemptyisnulllikenot |
typeBeheerder | string | Aanduiding van een publiekrechtelijke instantie of (rechts)persoon die toeziet op de instandhouding van o.a. een object, kunstwerk of waterstaatswerk. De … eqinisemptyisnulllikenot |
typeBeheerderPlus | string | Nadere aanduiding van de beheerder van het beheerobject. eqinisemptyisnulllikenot |
beheergebied | string | Aanduiding van het beheergebied waarbinnen het beheerobject ligt. Indeling in beheergebieden is organisatiespecifiek. eqinisemptyisnulllikenot |
beoogdeOpkroonhoogte | string | De beoogde hoogte van de boom in centimeters vanaf de grond tot aan de eerste tak eqinisemptyisnulllikenot |
boombeeld | string | Onderhoudssituatie van de boom. eqinisemptyisnulllikenot |
boomhoogteklasseActueel | string | Aanduiding van de boomhoogte in meters ingedeeld in vaste klassen. eqinisemptyisnulllikenot |
conditiescore | string | Maat voor het vastleggen van de conditie van een beheerobject op basis van 6 scores. eqinisemptyisnulllikenot |
controlefrequentie | string | Aanduiding van de frequentie van de controle van het beheerobject. eqinisemptyisnulllikenot |
Show all 43
| Name | Type | Meaning and filters |
|---|---|---|
conversieid | string | Uniek kenmerk van een beheerobject uit een oude beheerindeling. eqinisemptyisnulllikenot |
typeEigenaar | string | Aanduiding van een(rechts)persoon die het meest omvattend recht op een beheerobject of een zaak heeft . eqinisemptyisnulllikenot |
typeEigenaarPlus | string | Nadere aanduiding van de eigenaar van het beheerobject. eqinisemptyisnulllikenot |
bgttype | string | Nadere specificatie van het soort object. eqinisemptyisnulllikenot |
gemeente | string | De officieel vastgestelde gemeentenaam eqinisemptyisnulllikenot |
guid | string | Uniek nummer van het IMBOR-object eqinisemptyisnulllikenot |
idOudebeheerindeling | string | Uniek kenmerk van een beheerobject uit een oude Geovisia beheerindeling eqinisemptyisnulllikenot |
idGeovisia | string | Uniek kenmerk van een beheerobject uit een oude Geovisia beheerindeling eqinisemptyisnulllikenot |
jaarVanAanleg | integer/int64 | Jaar waarin het beheerobject is geplaatst eqgtgteinisnullltltenot |
jaarVolgendeInspectie | integer/int64 | Jaar waarin het beheerobject is geplaatst volgens de inspectie. eqgtgteinisnullltltenot |
omgevingsrisicoklasse | string | Aanduiding van het omgevingsrisico van het beheerobject. eqinisemptyisnulllikenot |
openbareRuimte | string | Officiële naam openbare ruimte eqinisemptyisnulllikenot |
snoeifase | string | Omschrijving van de snoeifase van de een vegetatieobject eqinisemptyisnulllikenot |
snoeifrequentie | string | Aanduiding voor het aantal keren dat een vegetatieobject gesnoeid moet worden eqinisemptyisnulllikenot |
soortnaam | string | Aanduiding voor de soortnaam van het natuurobject die binnen het beheerobject voorkomen eqinisemptyisnulllikenot |
stamdiameterklasse | string | Aanduiding van de diameter van de stam in diameterklassen. eqinisemptyisnulllikenot |
standplaats | string | De fysieke locatie waar het beheerobject is geplaatst eqinisemptyisnulllikenot |
standplaatsGedetailleerd | string | Nadere meer gedetailleerde specificatie waar het beheerobject staat eqinisemptyisnulllikenot |
takvrijeStam | string | De benodigde takvrije stam in het eindbeeld, gemeten vanaf maaiveld tot aan de onderste gesteltak. eqinisemptyisnulllikenot |
typeObject | string | Nadere aanduiding van de toestand van een beheerobject. eqinisemptyisnulllikenot |
typeSoortnaam | string | De volledige latijnse benaming van een beheerobject eqinisemptyisnulllikenot |
vrijeDoorrijhoogte | string | De 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 |
vrijeDoorrijhoogtePrimair | string | De 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 |
vrijeDoorrijhoogteSecundair | string | De 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 |
groeiplaatsBoomId | integer/int64 | ID boomgroeiplaats eqgtgteinisnullltltenot |
beschermingsstatusGedetailleerd | string | Details bij speciale status van de boom eqinisemptyisnulllikenot |
beschermingsstatus | string | Speciale status van de boom eqinisemptyisnulllikenot |
geldigVanaf | string | ntb eqinisemptyisnulllikenot |
mutatieDatum | string/date-time | Datum waarop laatste mutatie heeft plaatsgevonden eqgtgteinisnullltltenot |
soortnaamKort | string | Wetenschappelijk naam, afkomstig uit referentietabel eqinisemptyisnulllikenot |
soortnaamTop | string | Nederlandse 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
- Data en informatie AmsterdamThe city's own data portal
More from Amsterdam in our index
234 datasets in data.overheid.nl, dataportaal Amsterdam. These changed most recently.
- Parkeervakken2025-04-23
- Loop- en fietsnetwerk Amsterdam2025-04-23
- Cameragebieden2024-10-07
- Openbaar Subsidieregister Amsterdam2024-03-15
- Explosieven2024-02-23
- Touringcarinfo Halteren en parkeren2024-02-09
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


