# Leefbaarometer

Een schatting van hoe prettig het wonen is, voor elk bewoond vierkant van 100 bij 100 meter in Nederland, en opgeteld per buurt, wijk, postcodegebied en gemeente. Het model gebruikt 45 kenmerken van de woonomgeving (94 onderliggende variabelen), zoals voorzieningen, geluid en onveiligheid. Metingen voor 2002 tot en met 2024, met vijf deelscores.

- Uitgever: Ministerie van Binnenlandse Zaken en Koninkrijksrelaties
- Gebied: Nederland · Laagste detail: 100 meter
- Periode: 2002 – 2024 · Ververst: elke paar jaar
- Toegang: Open · Licentie: CC0 1.0
- Koppelsleutels: buurtcode (BU), wijkcode (WK), gemeentecode (GM), postcode (PC4), rastercel (100 m)
- Status: ok (2026-07-01) · nieuwste meting: 2024
- URL: https://www.leefbaarometer.nl/page/Opendata

## Wat kun je ermee?
- **Welke buurten gingen erop vooruit?.** De dienst heeft kant-en-klare lagen voor de ontwikkeling tussen een eerder jaar en 2024, per buurt. Zoek de buurten in jouw gemeente met de grootste daling.
- **Gemeenten naast elkaar.** In 2024 scoorde Vlieland het hoogst en Roosendaal het laagst van de 342 gemeenten. Alle gemeenten vielen in klasse 5 tot en met 9.
- **Waar zit het probleem?.** De vijf deelscores (woningvoorraad, fysieke omgeving, voorzieningen, sociale samenhang, overlast en onveiligheid) laten zien welk deel een buurt omlaag trekt. Ze bestaan voor 2014, 2018, 2020, 2022 en 2024.
- **Model naast de meting.** Zet de deelscore voor overlast en onveiligheid naast de geregistreerde overlast van de politie in dezelfde buurt. Waar wijken ze af?

## Zo verwerk je het
1. **Kies een laag.** De WFS heeft 359 lagen, de WMS 430: de 71 extra zijn schaalafhankelijke kaarten zonder niveau in de naam (16 okt 2026). De naam zegt wat erin zit: niveau (clippedgrid, buurt, wijk, pc4, gemeente) + soort (score, afwijking, ontwikkeling) + jaar, soms met een deelscore (_fys, _onv, _soc, _vrz, _won). Bijvoorbeeld buurtscore24 of wijkontwikkeling20_24.
   `https://geo.leefbaarometer.nl/lbm3/ows?service=WFS&version=2.0.0&request=GetCapabilities`
2. **Haal de scores op zonder kaartvormen.** Noem met propertyName alleen de velden die je wilt. Laat je geom weg, dan blijft het antwoord klein. Met outputFormat=csv krijg je een tabel (lbm afgerond op 4 decimalen).
   `https://geo.leefbaarometer.nl/lbm3/ows?request=GetFeature&service=WFS&version=2.0.0&typeNames=lbm3:buurtscore24&outputFormat=csv&propertyName=id,name,gemeente,lbm,kscore`
3. **Lees de velden goed.** lbm is de totaalscore, kscore de klasse op de kaart (hoger is beter). afw is de afwijking van het Nederlandse gemiddelde. fys, onv, soc, vrz en won zijn de deelscores, ook als afwijking van het gemiddelde.
4. **Voor GIS of het hele raster.** De 100-meterlaag van 2024 heeft 382.664 cellen. Download dan liever de Excel-bestanden (zip, 511 MB) en de Geopackage met vormen (zip, 282 MB).
   `https://www.leefbaarometer.nl/resources/open-data-leefbaarometer-meting-2024.zip`

## Interessante koppelingen
- Scoren buurten met lagere inkomens lager op leefbaarheid? → [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md) via buurtcode (BU). Het veld id is de buurtcode (BU00140000). Koppel aan het inkomen uit de kerncijfers van hetzelfde jaar en controleer of de buurtindeling gelijk is.
- Ziet het model overlast waar de politie die registreert? → [politie-overlast](https://www.opendataindex.nl/bron/politie-overlast.md) via buurtcode (BU). Leg de deelscore onv (overlast en onveiligheid) naast het aantal overlastmeldingen per inwoner per buurt.

## Vergelijkbare bronnen
- [cbs-kwb](https://www.opendataindex.nl/bron/cbs-kwb.md): Feitelijke cijfers per buurt (inwoners, inkomen, woningen), geen oordeel over leefbaarheid. Veel van die cijfers zitten in het model van de Leefbaarometer.
- [Atlas Leefomgeving](https://www.atlasleefomgeving.nl): Kaarten van losse milieufactoren (lucht, geluid, groen) op je adres, zonder één totaalscore.

## Waar je op moet letten
- **Een voorspelling, geen enquête.** De score is een statistische schatting op basis van kenmerken van de omgeving. BZK zegt zelf: hoe het ter plekke echt is, vraagt nader onderzoek.
- **Elke twee jaar, met vertraging.** De downloads van de meting 2024 zijn van 1 juli 2026. Wie in 2027 een buurt beschrijft, gebruikt dus cijfers over 2024.
- **Deelscores niet voor alle jaren.** Voor 2002, 2008, 2012 en 2016 zijn er alleen totaalscores. Sinds versie 3.0 (2021) zijn oudere jaren op het nieuwe model aangesloten; vergelijk niet met oude publicaties van versie 2.0.
- **Rasterscores zijn uitgesmeerd.** Het model rekent op 6-positiepostcode. Een cel van 100 meter is een gewogen gemiddelde van de postcodes die erin vallen.

## API (OGC WFS 2.0.0)

- Basis: https://geo.leefbaarometer.nl/lbm3/ows
- Toegang: Geen sleutel. Kosten: ?; gebruiksvoorwaarden: ?. (uit de beschrijving)
- Formaten: application/gml+xml; version=3.2, GML2, KML, SHAPE-ZIP, application/json, application/vnd.google-earth.kml xml, application/vnd.google-earth.kml+xml, csv, gml3, gml32, json, text/csv, text/javascript, text/xml; subtype=gml/2.1.2, text/xml; subtype=gml/3.1.1, text/xml; subtype=gml/3.2
- Omvang: 12147 objecten in lbm3:buurtscore24 (getest)
- Filteren: OGC Filter Encoding (FES 2.0); PropertyIsLessThan, PropertyIsGreaterThan, PropertyIsLessThanOrEqualTo, PropertyIsGreaterThanOrEqualTo, PropertyIsEqualTo, PropertyIsNotEqualTo, PropertyIsLike, PropertyIsBetween, PropertyIsNull, PropertyIsNil, Disjoint, Equals, DWithin, Beyond, Intersects, Touches, Crosses, Within, Contains, Overlaps, BBOX, After, Before, Begins, BegunBy, TContains, During, TEquals, TOverlaps, Meets, OverlappedBy, MetBy, EndedBy

### Endpoints
- `GET ?request=GetCapabilities`: beschrijving van de dienst
- `GET ?request=DescribeFeatureType`: velden van een laag (XSD)
- `GET ?request=GetFeature`: de objecten zelf, met geometrie
- `GET ?request=GetPropertyValue`: alleen de waarden van één veld
- `GET ?request=ListStoredQueries`: opgeslagen zoekvragen
- `GET ?request=DescribeStoredQueries`: uitleg bij opgeslagen zoekvragen
- `GET ?request=CreateStoredQuery`: CreateStoredQuery
- `GET ?request=DropStoredQuery`: DropStoredQuery
- `GET ?request=LockFeature`: LockFeature
- `GET ?request=GetFeatureWithLock`: GetFeatureWithLock
- `GET ?request=Transaction`: Transaction

### Parameters
- `typeNames`: welke laag: lbm3:buurtafwijking02, lbm3:buurtafwijking08, lbm3:buurtafwijking12, lbm3:buurtafwijking14, lbm3:buurtafwijking16, lbm3:buurtafwijking18, lbm3:buurtafwijking20, lbm3:buurtafwijking22, lbm3:buurtafwijking24, lbm3:buurtontwikkeling02_24, lbm3:buurtontwikkeling08_24, lbm3:buurtontwikkeling12_24, lbm3:buurtontwikkeling14_24, lbm3:buurtontwikkeling14_24_fys, lbm3:buurtontwikkeling14_24_onv, lbm3:buurtontwikkeling14_24_soc, lbm3:buurtontwikkeling14_24_vrz, lbm3:buurtontwikkeling14_24_won, lbm3:buurtontwikkeling16_24, lbm3:buurtontwikkeling18_24, lbm3:buurtontwikkeling18_24_fys, lbm3:buurtontwikkeling18_24_onv, lbm3:buurtontwikkeling18_24_soc, lbm3:buurtontwikkeling18_24_vrz, lbm3:buurtontwikkeling18_24_won, lbm3:buurtontwikkeling20_24, lbm3:buurtontwikkeling20_24_fys, lbm3:buurtontwikkeling20_24_onv, lbm3:buurtontwikkeling20_24_soc, lbm3:buurtontwikkeling20_24_vrz, lbm3:buurtontwikkeling20_24_won, lbm3:buurtontwikkeling22_24, lbm3:buurtontwikkeling22_24_fys, lbm3:buurtontwikkeling22_24_onv, lbm3:buurtontwikkeling22_24_soc, lbm3:buurtontwikkeling22_24_vrz, lbm3:buurtontwikkeling22_24_won, lbm3:buurtscore02, lbm3:buurtscore08, lbm3:buurtscore12, lbm3:buurtscore14, lbm3:buurtscore14_fys, lbm3:buurtscore14_onv, lbm3:buurtscore14_soc, lbm3:buurtscore14_vrz, lbm3:buurtscore14_won, lbm3:buurtscore16, lbm3:buurtscore18, lbm3:buurtscore18_fys, lbm3:buurtscore18_onv, lbm3:buurtscore18_soc, lbm3:buurtscore18_vrz, lbm3:buurtscore18_won, lbm3:buurtscore20, lbm3:buurtscore20_fys, lbm3:buurtscore20_onv, lbm3:buurtscore20_soc, lbm3:buurtscore20_vrz, lbm3:buurtscore20_won, lbm3:buurtscore22, lbm3:buurtscore22_fys, lbm3:buurtscore22_onv, lbm3:buurtscore22_soc, lbm3:buurtscore22_vrz, lbm3:buurtscore22_won, lbm3:buurtscore24, lbm3:buurtscore24_fys, lbm3:buurtscore24_onv, lbm3:buurtscore24_soc, lbm3:buurtscore24_vrz, lbm3:buurtscore24_won, lbm3:clippedgridafwijking02, lbm3:clippedgridafwijking08, lbm3:clippedgridafwijking12, lbm3:clippedgridafwijking14, lbm3:clippedgridafwijking16, lbm3:clippedgridafwijking18, lbm3:clippedgridafwijking20, lbm3:clippedgridafwijking22, lbm3:clippedgridafwijking24, lbm3:clippedgridontwikkeling02_24, lbm3:clippedgridontwikkeling08_24, lbm3:clippedgridontwikkeling12_24, lbm3:clippedgridontwikkeling14_24, lbm3:clippedgridontwikkeling14_24_fys, lbm3:clippedgridontwikkeling14_24_onv, lbm3:clippedgridontwikkeling14_24_soc, lbm3:clippedgridontwikkeling14_24_vrz, lbm3:clippedgridontwikkeling14_24_won, lbm3:clippedgridontwikkeling16_24, lbm3:clippedgridontwikkeling18_24, lbm3:clippedgridontwikkeling18_24_fys, lbm3:clippedgridontwikkeling18_24_onv, lbm3:clippedgridontwikkeling18_24_soc, lbm3:clippedgridontwikkeling18_24_vrz, lbm3:clippedgridontwikkeling18_24_won, lbm3:clippedgridontwikkeling20_24, lbm3:clippedgridontwikkeling20_24_fys, lbm3:clippedgridontwikkeling20_24_onv, lbm3:clippedgridontwikkeling20_24_soc, lbm3:clippedgridontwikkeling20_24_vrz, lbm3:clippedgridontwikkeling20_24_won, lbm3:clippedgridontwikkeling22_24, lbm3:clippedgridontwikkeling22_24_fys, lbm3:clippedgridontwikkeling22_24_onv, lbm3:clippedgridontwikkeling22_24_soc, lbm3:clippedgridontwikkeling22_24_vrz, lbm3:clippedgridontwikkeling22_24_won, lbm3:clippedgridscore02, lbm3:clippedgridscore08, lbm3:clippedgridscore12, lbm3:clippedgridscore14, lbm3:clippedgridscore14_fys, lbm3:clippedgridscore14_onv, lbm3:clippedgridscore14_soc, lbm3:clippedgridscore14_vrz, lbm3:clippedgridscore14_won, lbm3:clippedgridscore16, lbm3:clippedgridscore18, lbm3:clippedgridscore18_fys, lbm3:clippedgridscore18_onv, lbm3:clippedgridscore18_soc, lbm3:clippedgridscore18_vrz, lbm3:clippedgridscore18_won, lbm3:clippedgridscore20, lbm3:clippedgridscore20_fys, lbm3:clippedgridscore20_onv, lbm3:clippedgridscore20_soc, lbm3:clippedgridscore20_vrz, lbm3:clippedgridscore20_won, lbm3:clippedgridscore22, lbm3:clippedgridscore22_fys, lbm3:clippedgridscore22_onv, lbm3:clippedgridscore22_soc, lbm3:clippedgridscore22_vrz, lbm3:clippedgridscore22_won, lbm3:clippedgridscore24, lbm3:clippedgridscore24_fys, lbm3:clippedgridscore24_onv, lbm3:clippedgridscore24_soc, lbm3:clippedgridscore24_vrz, lbm3:clippedgridscore24_won, lbm3:gemeenteafwijking02, lbm3:gemeenteafwijking08, lbm3:gemeenteafwijking12, lbm3:gemeenteafwijking14, lbm3:gemeenteafwijking16, lbm3:gemeenteafwijking18, lbm3:gemeenteafwijking20, lbm3:gemeenteafwijking22, lbm3:gemeenteafwijking24, lbm3:gemeenteontwikkeling02_24, lbm3:gemeenteontwikkeling08_24, lbm3:gemeenteontwikkeling12_24, lbm3:gemeenteontwikkeling14_24, lbm3:gemeenteontwikkeling14_24_fys, lbm3:gemeenteontwikkeling14_24_onv, lbm3:gemeenteontwikkeling14_24_soc, lbm3:gemeenteontwikkeling14_24_vrz, lbm3:gemeenteontwikkeling14_24_won, lbm3:gemeenteontwikkeling16_24, lbm3:gemeenteontwikkeling18_24, lbm3:gemeenteontwikkeling18_24_fys, lbm3:gemeenteontwikkeling18_24_onv, lbm3:gemeenteontwikkeling18_24_soc, lbm3:gemeenteontwikkeling18_24_vrz, lbm3:gemeenteontwikkeling18_24_won, lbm3:gemeenteontwikkeling20_24, lbm3:gemeenteontwikkeling20_24_fys, lbm3:gemeenteontwikkeling20_24_onv, lbm3:gemeenteontwikkeling20_24_soc, lbm3:gemeenteontwikkeling20_24_vrz, lbm3:gemeenteontwikkeling20_24_won, lbm3:gemeenteontwikkeling22_24, lbm3:gemeenteontwikkeling22_24_fys, lbm3:gemeenteontwikkeling22_24_onv, lbm3:gemeenteontwikkeling22_24_soc, lbm3:gemeenteontwikkeling22_24_vrz, lbm3:gemeenteontwikkeling22_24_won, lbm3:gemeentescore02, lbm3:gemeentescore08, lbm3:gemeentescore12, lbm3:gemeentescore14, lbm3:gemeentescore14_fys, lbm3:gemeentescore14_onv, lbm3:gemeentescore14_soc, lbm3:gemeentescore14_vrz, lbm3:gemeentescore14_won, lbm3:gemeentescore16, lbm3:gemeentescore18, lbm3:gemeentescore18_fys, lbm3:gemeentescore18_onv, lbm3:gemeentescore18_soc, lbm3:gemeentescore18_vrz, lbm3:gemeentescore18_won, lbm3:gemeentescore20, lbm3:gemeentescore20_fys, lbm3:gemeentescore20_onv, lbm3:gemeentescore20_soc, lbm3:gemeentescore20_vrz, lbm3:gemeentescore20_won, lbm3:gemeentescore22, lbm3:gemeentescore22_fys, lbm3:gemeentescore22_onv, lbm3:gemeentescore22_soc, lbm3:gemeentescore22_vrz, lbm3:gemeentescore22_won, lbm3:gemeentescore24, lbm3:gemeentescore24_fys, lbm3:gemeentescore24_onv, lbm3:gemeentescore24_soc, lbm3:gemeentescore24_vrz, lbm3:gemeentescore24_won, lbm3:pc4afwijking02, lbm3:pc4afwijking08, lbm3:pc4afwijking12, lbm3:pc4afwijking14, lbm3:pc4afwijking16, lbm3:pc4afwijking18, lbm3:pc4afwijking20, lbm3:pc4afwijking22, lbm3:pc4afwijking24, lbm3:pc4ontwikkeling02_24, lbm3:pc4ontwikkeling08_24, lbm3:pc4ontwikkeling12_24, lbm3:pc4ontwikkeling14_24, lbm3:pc4ontwikkeling14_24_fys, lbm3:pc4ontwikkeling14_24_onv, lbm3:pc4ontwikkeling14_24_soc, lbm3:pc4ontwikkeling14_24_vrz, lbm3:pc4ontwikkeling14_24_won, lbm3:pc4ontwikkeling16_24, lbm3:pc4ontwikkeling18_24, lbm3:pc4ontwikkeling18_24_fys, lbm3:pc4ontwikkeling18_24_onv, lbm3:pc4ontwikkeling18_24_soc, lbm3:pc4ontwikkeling18_24_vrz, lbm3:pc4ontwikkeling18_24_won, lbm3:pc4ontwikkeling20_24, lbm3:pc4ontwikkeling20_24_fys, lbm3:pc4ontwikkeling20_24_onv, lbm3:pc4ontwikkeling20_24_soc, lbm3:pc4ontwikkeling20_24_vrz, lbm3:pc4ontwikkeling20_24_won, lbm3:pc4ontwikkeling22_24, lbm3:pc4ontwikkeling22_24_fys, lbm3:pc4ontwikkeling22_24_onv, lbm3:pc4ontwikkeling22_24_soc, lbm3:pc4ontwikkeling22_24_vrz, lbm3:pc4ontwikkeling22_24_won, lbm3:pc4score02, lbm3:pc4score08, lbm3:pc4score12, lbm3:pc4score14, lbm3:pc4score14_fys, lbm3:pc4score14_onv, lbm3:pc4score14_soc, lbm3:pc4score14_vrz, lbm3:pc4score14_won, lbm3:pc4score16, lbm3:pc4score18, lbm3:pc4score18_fys, lbm3:pc4score18_onv, lbm3:pc4score18_soc, lbm3:pc4score18_vrz, lbm3:pc4score18_won, lbm3:pc4score20, lbm3:pc4score20_fys, lbm3:pc4score20_onv, lbm3:pc4score20_soc, lbm3:pc4score20_vrz, lbm3:pc4score20_won, lbm3:pc4score22, lbm3:pc4score22_fys, lbm3:pc4score22_onv, lbm3:pc4score22_soc, lbm3:pc4score22_vrz, lbm3:pc4score22_won, lbm3:pc4score24, lbm3:pc4score24_fys, lbm3:pc4score24_onv, lbm3:pc4score24_soc, lbm3:pc4score24_vrz, lbm3:pc4score24_won, lbm3:referentiekaart_buurten_24, lbm3:referentiekaart_gemeenten_24, lbm3:referentiekaart_pc4_24, lbm3:referentiekaart_wijken_24, lbm3:wijkafwijking02, lbm3:wijkafwijking08, lbm3:wijkafwijking12, lbm3:wijkafwijking14, lbm3:wijkafwijking16, lbm3:wijkafwijking18, lbm3:wijkafwijking20, lbm3:wijkafwijking22, lbm3:wijkafwijking24, lbm3:wijkontwikkeling02_24, lbm3:wijkontwikkeling08_24, lbm3:wijkontwikkeling12_24, lbm3:wijkontwikkeling14_24, lbm3:wijkontwikkeling14_24_fys, lbm3:wijkontwikkeling14_24_onv, lbm3:wijkontwikkeling14_24_soc, lbm3:wijkontwikkeling14_24_vrz, lbm3:wijkontwikkeling14_24_won, lbm3:wijkontwikkeling16_24, lbm3:wijkontwikkeling18_24, lbm3:wijkontwikkeling18_24_fys, lbm3:wijkontwikkeling18_24_onv, lbm3:wijkontwikkeling18_24_soc, lbm3:wijkontwikkeling18_24_vrz, lbm3:wijkontwikkeling18_24_won, lbm3:wijkontwikkeling20_24, lbm3:wijkontwikkeling20_24_fys, lbm3:wijkontwikkeling20_24_onv, lbm3:wijkontwikkeling20_24_soc, lbm3:wijkontwikkeling20_24_vrz, lbm3:wijkontwikkeling20_24_won, lbm3:wijkontwikkeling22_24, lbm3:wijkontwikkeling22_24_fys, lbm3:wijkontwikkeling22_24_onv, lbm3:wijkontwikkeling22_24_soc, lbm3:wijkontwikkeling22_24_vrz, lbm3:wijkontwikkeling22_24_won, lbm3:wijkscore02, lbm3:wijkscore08, lbm3:wijkscore12, lbm3:wijkscore14, lbm3:wijkscore14_fys, lbm3:wijkscore14_onv, lbm3:wijkscore14_soc, lbm3:wijkscore14_vrz, lbm3:wijkscore14_won, lbm3:wijkscore16, lbm3:wijkscore18, lbm3:wijkscore18_fys, lbm3:wijkscore18_onv, lbm3:wijkscore18_soc, lbm3:wijkscore18_vrz, lbm3:wijkscore18_won, lbm3:wijkscore20, lbm3:wijkscore20_fys, lbm3:wijkscore20_onv, lbm3:wijkscore20_soc, lbm3:wijkscore20_vrz, lbm3:wijkscore20_won, lbm3:wijkscore22, lbm3:wijkscore22_fys, lbm3:wijkscore22_onv, lbm3:wijkscore22_soc, lbm3:wijkscore22_vrz, lbm3:wijkscore22_won, lbm3:wijkscore24, lbm3:wijkscore24_fys, lbm3:wijkscore24_onv, lbm3:wijkscore24_soc, lbm3:wijkscore24_vrz, lbm3:wijkscore24_won (uit de beschrijving)
- `outputFormat`: bv. application/json voor GeoJSON (uit de beschrijving)
- `srsName`: projectie, bv. EPSG:4326 voor webkaarten (standaard EPSG:28992, RD) (uit de beschrijving)
- `count / startIndex`: pagineren (uit de beschrijving)
- `filter`: FES-XML-filter op velden of geometrie (uit de beschrijving)
- `bbox`: rechthoek in de gekozen projectie (platform)

### Velden (20)
`fid` int, `geom` geometrie, `id` string, `gemeente` string, `scale` string, `year` int, `lbm` double, `afw` double, `fys` double, `onv` double, `soc` double, `vrz` double, `won` double, `kscore` int, `kafw` int, `kfys` int, `konv` int, `ksoc` int, `kvrz` int, `kwon` int

### Limieten en valkuilen
- Maximaal 1.000.000 objecten per verzoek (CountDefault). (uit de beschrijving)
- Pagineren kan: count en startIndex (ImplementsResultPaging). (uit de beschrijving)
- De 100-meterlaag van 2024 heeft 382.664 cellen. Vraag die in stukken op met count en startIndex, of neem de download. (getest)
- Aantallen in 2024 (resultType=hits): 342 gemeenten, 3.245 wijken, 12.147 buurten, 3.859 postcodegebieden (pc4), 382.664 rastercellen. (getest)
- Een onbekend veld in propertyName geeft 400 met de lijst toegestane velden: fid, geom, id, name, gemeente, scale, year, lbm, afw, fys, onv, soc, vrz, won, kscore, kafw, kfys, konv, ksoc, kvrz, kwon. (getest)
- Standaard in RD (EPSG:28992). Met srsName=EPSG:4326 krijg je lengte- en breedtegraad. (getest)
- Er is ook een WMS voor kaartbeelden: https://geo.leefbaarometer.nl/lbm3/ows?service=WMS&version=1.3.0&request=GetCapabilities (uit de beschrijving)

### Voorbeeld
```
https://geo.leefbaarometer.nl/lbm3/ows?request=GetFeature&service=WFS&version=2.0.0&typeNames=lbm3:buurtscore24&outputFormat=application/json&count=2&propertyName=id,name,gemeente,year,lbm,kscore
```

## Zo haal je het op

### curl
```bash
curl "https://geo.leefbaarometer.nl/lbm3/ows?request=GetFeature&service=WFS&version=2.0.0&typeNames=lbm3:gemeentescore24&outputFormat=csv&propertyName=id,name,lbm,kscore"
```

### python
```python
import requests

r = requests.get("https://geo.leefbaarometer.nl/lbm3/ows", params={
    "request": "GetFeature", "service": "WFS", "version": "2.0.0",
    "typeNames": "lbm3:gemeentescore24", "outputFormat": "application/json",
    "propertyName": "id,name,lbm,kscore"})
gemeenten = sorted((f["properties"] for f in r.json()["features"]), key=lambda p: p["lbm"])
for p in gemeenten[:3] + gemeenten[-3:]:
    print(p["id"], p["name"], round(p["lbm"], 3), "klasse", p["kscore"])
```

## Wat je ermee kunt bouwen
- [Woningmarktdashboard voor je gemeente](https://www.opendataindex.nl/bouwen/woningmarkt-dashboard.md): Eén pagina per gemeente met verkoopprijzen, WOZ-waarde, woningvoorraad, bouwjaren, woninggrootte en leefbaarheid, naast het landelijk gemiddelde. Alles uit open API's zonder sleutel.


## Wat er allemaal in zit: 430 kaartlagen

Alle lagen van de Leefbaarometer, per niveau en jaar, elke nacht uit de WMS en WFS gehaald. Per jaar staan de score, de afwijking van het landelijk gemiddelde, de deelscores en de ontwikkeling sinds dat jaar.

- Soorten: kaartlaag 430
- Met een API-aanroep op de datasetpagina: 430
- Zoeken: https://www.opendataindex.nl/api/catalogus/leefbaarometer?q=… of de MCP-functie zoek_datasets met herkomst=leefbaarometer
- Elke rij heeft een eigen pagina: https://www.opendataindex.nl/dataset/leefbaarometer/<sleutel>

### Mappen
- Buurten (72): 2024 (8), 2022 (13), 2020 (13), 2018 (13), 2016 (3), 2014 (13), 2012 (3), 2008 (3) …
- Gemeenten (72): 2024 (8), 2022 (13), 2020 (13), 2018 (13), 2016 (3), 2014 (13), 2012 (3), 2008 (3) …
- Postcodegebieden (pc4) (72): 2024 (8), 2022 (13), 2020 (13), 2018 (13), 2016 (3), 2014 (13), 2012 (3), 2008 (3) …
- Rastercellen (100 m) (71): 2024 (7), 2022 (13), 2020 (13), 2018 (13), 2016 (3), 2014 (13), 2012 (3), 2008 (3) …
- Schaalafhankelijke kaarten (71): 2024 (7), 2022 (13), 2020 (13), 2018 (13), 2016 (3), 2014 (13), 2012 (3), 2008 (3) …
- Wijken (72): 2024 (8), 2022 (13), 2020 (13), 2018 (13), 2016 (3), 2014 (13), 2012 (3), 2008 (3) …

## Voorbeelden met echte cijfers (2)

Per voorbeeld de bevinding, de peildatum en de aanroep die precies deze cijfers ophaalt.

- **Buurten naar leefbaarheid (Leefbaarometer): goed of zeer goed is het grootste deel, 51% in 2024** (2024). Tabel lbm3:buurtscore24. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/leefbaarometer-buurten-klassen)
  - `https://geo.leefbaarometer.nl/lbm3/ows?request=GetFeature&service=WFS&version=2.0.0&typeNames=lbm3:buurtscore24&resultType=hits&cql_filter=kscore%20IN%20(7%2C8)`
- **Leefbaarheidsscore (Leefbaarometer): het hoogst in Vlieland (4,47 punten), het laagst in Roosendaal (3,97 punten)** (2024). Tabel lbm3:gemeentescore24. [Voorbeeld](https://www.opendataindex.nl/voorbeeld/leefbaarometer-gemeenten)
  - `https://geo.leefbaarometer.nl/lbm3/ows?request=GetFeature&service=WFS&version=2.0.0&typeNames=lbm3:gemeentescore24&outputFormat=application/json&propertyName=id,name,lbm,afw`
