28 sources tracked20,794 datasets indexed185 publishers30 in the queueStatus check 17:05 · 27/28 reachable
BronwijzerThe index of open data about the Netherlands
Sources›Safety

Registered nuisance by neighbourhood

Every month the police count how many nuisance reports came in, per neighbourhood and per type: from confused persons and youth to noise and drugs. Statistics Netherlands (CBS) publishes the figures as an open table, one month after the fact.

SafetyOpenAPIDownloadNetherlands · neighbourhood
Up to date · updated 13 hours ago · latest period: 2026 september · checked 17:05

A growing share of nuisance involves confused persons

Registered nuisance in the Netherlands per month, January 2012 to September 2026. In 2025, 37% of all registrations involved a confused person, up from 16% in 2012.

Source: Politie via CBS, tabel 47024NED · opgehaald 15 oktober 2026

Among large municipalities, Utrecht registers the most nuisance per resident

Registered nuisance per 1,000 residents in 2025, by municipality. National: 25.6. Places with many visitors, such as Zandvoort and Schiermonnikoog, rank high because visitors don't count as residents.

Source: Politie via CBS (47024NED), inwoners CBS · grenzen CBS/Kadaster 2025

What can you do with it?4 ideas

Getting started

Compare your neighbourhood with the rest of your municipality

Divide reports by residents and put your neighbourhood next to others in the same municipality. That's fairer than a national ranking.

Getting started

Find the seasonal rhythm

Nuisance peaks in summer and around New Year. Plot each year as its own line and the pattern jumps out.

Advanced

Fact-check: 'nuisance is rising'

Compare the same months with last year, not the latest month with the previous one. Mind the March 2021 break if you look further back.

Advanced

Confused persons and mental health care

Put reports about confused persons next to mental health care use per neighbourhood. Correct for income and density, or you mostly measure urbanity.

How to process it5 steps

  1. Choose your areas

    Look up codes in the boundary map. Codes have a fixed length: GM + 4 digits, WK + 6, BU + 8.

  2. Fetch the monthly figures

    Filter by area and type of nuisance. Pad keys with spaces to their fixed length and paginate per 10,000 rows.

    https://dataderden.cbs.nl/ODataApi/OData/47024NED/TypedDataSet?$filter=WijkenEnBuurten eq 'BU03630000' &$skip=0
  3. Tidy the table

    Convert Perioden to a date ('2026MM09' becomes 2026-09) and strip spaces from keys. Rows with no reports are missing: count them as zero.

  4. Divide by residents

    Join residents from the key figures on neighbourhood code. Leave out tiny neighbourhoods, where one report becomes an outlier.

  5. Reload everything monthly

    The police revise earlier months. A monthly refresh therefore reloads the full series, not just the newest month.

Interesting combinations

Similar sources

What to watch out for

  • A registration is not an incident

    What nobody reports isn't in the data. How often people call the police differs by neighbourhood and by type of nuisance.

  • Series break in March 2021

    The police changed how reports are recorded. 'Confused person' in particular jumped. Don't compare 2020 with 2022 at face value.

  • Figures are revised later

    Earlier months are revised retroactively. Reload the full series instead of appending only the newest month.

  • Always the latest neighbourhood boundaries

    CBS recalculates the whole series to the most recent boundaries. Codes from old files may no longer exist.

  • API pitfalls

    Keys are padded with spaces ('NL00 '); without them you get nothing back. At most 10,000 rows per request. The Feed endpoint applies only the first filter and silently ignores the rest.

APIOData v3 · read 15 Oct 2026

StandardOData v3docs
Access no key

No key or account; the description and our call work anonymously. tested

Size31,798,062

rows (cells) in TypedDataSet tested

Formats

JSONAtom/XML

Base URL

https://dataderden.cbs.nl/ODataApi/OData/47024NED

Endpoints 8

  • GET/TableInfostitle, summary, period and modification date of the table
  • GET/UntypedDataSetthe figures, all values as text
  • GET/TypedDataSetthe figures, with numbers as numbers
  • GET/DataPropertiesall columns: dimensions and topics with unit
  • GET/CategoryGroupsgrouping of categories
  • GET/Overlastcodes and names of dimension Overlast
  • GET/WijkenEnBuurtencodes and names of dimension WijkenEnBuurten
  • GET/Periodencodes and names of dimension Perioden

Filtering platform

OData expressions in $filter, keys in single quotes

eqnegtgeltleandorsubstringof()startswith()

Parameters 6

$filterselect rows, e.g. WijkenEnBuurten eq 'GM0363 'platform
$selectonly these columnsplatform
$top / $skippagingplatform
$orderbysortingplatform
$formatjson or atomplatform
$countafter a path: count onlyplatform

Dimensions · = space in the key

DimensionCodesExamples
Overlast
Overlast
9
0.0.0· Totaal registraties overlast
E33··· Overlast door verward persoon
E35··· Melding overlast jeugd
WijkenEnBuurten
Wijken en buurten · Wijk- en buurtindeling 2025
18,498
NL00······ Nederland
GM1680···· Aa en Hunze
WK168000·· Wijk 00 Annen
Perioden
Perioden
191
2012MM01 2012 januari
2012MM02 2012 februari
2012MM03 2012 maart

Fields 3

NameTypeMeaning
GeregistreerdeOverlast_1
Geregistreerde overlast
long · aantalTotaal van de geregistreerde overlast. Bron is de politieregistratie Basis Voorziening Informatie (BVI).
Gemeentenaam_2
Gemeentenaam
string · naamDe naam van de bestuurlijke gemeente. Deze naam volgt de officiële schrijfwijze.
SoortRegio_3
Soort regio
string · omschrijvingDe gekozen regioaanduiding betreft: Gemeente, Wijk of Buurt.

Limits and pitfalls

  • At most 10,000 rows per request; page with $skip. experience
  • Keys are padded with spaces to a fixed length: 'GM0363 ', '0.0.0 ', 'E33 '. Without the spaces you get an empty list, not an error. experience
  • The Feed endpoint applies only the first $filter predicate and silently ignores the rest. Use TypedDataSet. experience
  • TableInfos.Modified changes almost daily (metadata). For freshness, look at the highest Perioden key. experience
  • Past months are revised retroactively. Always reload the full series. experience
  • Python urllib (LibreSSL on macOS) fails on cbs.nl's TLS; use curl or Node fetch. experience

Try it HTTP 200 · 58 ms · 15 Oct

https://dataderden.cbs.nl/ODataApi/OData/47024NED/TypedDataSet?$filter=WijkenEnBuurten eq 'GM0363    ' and Overlast eq '0.0.0 '&$top=3
{
  "odata.metadata": "https://dataderden.cbs.nl/ODataApi/OData/47024NED/$metadata#Cbs.OData.WebAPI.TypedDataSet",
  "value": [
    {
      "ID": 223470,
      "Overlast": "0.0.0 ",
      "WijkenEnBuurten": "GM0363    ",
      "Perioden": "2012MM01",
      "GeregistreerdeOverlast_1": 991,
      "Gemeentenaam_2": "Amsterdam                     ",
      "SoortRegio_3": "Gemeente"
    },
    {
      "ID": 223471,
      "Overlast": "0.0.0 ",
      "WijkenEnBuurten": "GM0363    ",
      "Perioden": "2012MM02",
      "GeregistreerdeOverlast_1": 898,
      "Gemeentenaam_2": "Amsterdam                     ",
      "SoortRegio_3": "Gemeente"
    }
  ]
}

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

Read from service document (list of endpoints) · dimensions and topics · full data model (XML). 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 bronwijzer.

How to fetch it

curl "https://dataderden.cbs.nl/ODataApi/OData/47024NED/TypedDataSet?\$filter=WijkenEnBuurten%20eq%20'GM0363%20%20%20%20'%20and%20Overlast%20eq%20'0.0.0%20'"

Used by

Questions this source helps answer

See how this page is built
bron: politie-overlast
blokken:
  - type: lijnreeks
    data: overlast
  - type: choropleth
    data: gemeenten
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
  - gebruiktDoor
cache:
  tag: bron:politie-overlast
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: CBS TableInfos.Modified + nieuwste Perioden-sleutel
  verwacht: maandelijks

Source: content/bronnen/politie-overlast.yaml · Markdown